using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
namespace FastReport
{
public class ReportScript
{
private bool isJelenletAdatokTablakkal;
private void Page1_ManualBuild(object sender, EventArgs e)
{
bool isLezartNaplo;
Boolean.TryParse(Report.Parameters.FindByName("isLezartNaplo").Value.ToString(), out isLezartNaplo);
if (isLezartNaplo)
{
OsztalyozoLezaras.Visible = true;
}
// Napló
DataSourceBase NaptariHetek = Report.GetDataSource("NaptariHetek");
Data5.DataSource = NaptariHetek;
NaptariHetek.Init();
DataSourceBase Naplo = Report.GetDataSource("Naplo");
Data7.DataSource = Naplo;
Relation rel2 = new Relation();
rel2.Name = "Naplo";
rel2.ParentDataSource = NaptariHetek;
rel2.ChildDataSource = Naplo;
rel2.ParentColumns = new string[] { "Het" };
rel2.ChildColumns = new string[] { "Het" };
Report.Dictionary.Relations.Add(rel2);
Naplo.Init(NaptariHetek);
//Napló adatok
DataSourceBase NaploAdatok = Report.GetDataSource("NaploAdatok");
Relation rel4 = new Relation();
rel4.Name = "Naplo";
rel4.ParentDataSource = Naplo;
rel4.ChildDataSource = NaploAdatok;
rel4.ParentColumns = new string[] { "Datum" };
rel4.ChildColumns = new string[] { "Datum" };
Report.Dictionary.Relations.Add(rel4);
NaploAdatok.Init(Naplo);
//Napló mulasztások
DataSourceBase NaploMulasztas = Report.GetDataSource("NaploMulasztas");
DataMulasztasPentek.DataSource = NaploMulasztas;
NaploMulasztas.Init();
Relation rel3 = new Relation();
rel3.Name = "NaploMulasztas";
rel3.ParentDataSource = NaptariHetek;
rel3.ChildDataSource = NaploMulasztas;
rel3.ParentColumns = new string[] { "Het" };
rel3.ChildColumns = new string[] { "c_hetsorszama" };
Report.Dictionary.Relations.Add(rel3);
NaploMulasztas.Init(NaptariHetek);
//--------------------------------------------------
// Tanulók
DataSourceBase tanuloAlapadatok = Report.GetDataSource("TanuloAlapAdatok");
DataTanuloAlapadatok.DataSource = tanuloAlapadatok;
tanuloAlapadatok.Init();
DataSourceBase tanuloPerOsztaly = Report.GetDataSource("TanuloPerOsztaly");
DataTanuloPerOsztaly.DataSource = tanuloPerOsztaly;
tanuloPerOsztaly.Init();
// Tanulók elérhetőségei
DataSourceBase tanuloElerhetosegei = Report.GetDataSource("TanuloElerhetosegei");
DataTanuloElerhetosegei.DataSource = tanuloElerhetosegei;
Relation rel27 = new Relation();
rel27.Name = "TanuloEler";
rel27.ParentDataSource = tanuloAlapadatok;
rel27.ChildDataSource = tanuloElerhetosegei;
rel27.ParentColumns = new string[] { "tanuloID" };
rel27.ChildColumns = new string[] { "tanuloID" };
Report.Dictionary.Relations.Add(rel27);
tanuloElerhetosegei.Init(tanuloAlapadatok);
// Tanulók gondviselői
DataSourceBase tanuloGonviselokAdatai = Report.GetDataSource("TanuloGonviselokAdatai");
DataTanuloGondviselo.DataSource = tanuloGonviselokAdatai;
Relation rel37 = new Relation();
rel37.Name = "TanuloGondviselo";
rel37.ParentDataSource = tanuloAlapadatok;
rel37.ChildDataSource = tanuloGonviselokAdatai;
rel37.ParentColumns = new string[] { "tanuloID" };
rel37.ChildColumns = new string[] { "tanuloId" };
Report.Dictionary.Relations.Add(rel37);
tanuloGonviselokAdatai.Init(tanuloAlapadatok);
// Tanuló szöveges értékelések
DataSourceBase tanuloSzoveges = Report.GetDataSource("TanuloSzoveges");
Data10.DataSource = tanuloSzoveges;
Relation rel172 = new Relation();
rel172.Name = "TanuloSzoveges";
rel172.ParentDataSource = tanuloAlapadatok;
rel172.ChildDataSource = tanuloSzoveges;
rel172.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel172.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel172);
tanuloSzoveges.Init(tanuloAlapadatok);
// Tanuló mulasztott órái
DataSourceBase tanuloMulasztasai = Report.GetDataSource("TanuloMulasztasai");
DataTanuloMulasztottOrak.DataSource = tanuloMulasztasai;
Relation rel5 = new Relation();
rel5.Name = "TanuloMulasztasai";
rel5.ParentDataSource = tanuloAlapadatok;
rel5.ChildDataSource = tanuloMulasztasai;
rel5.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel5.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel5);
tanuloMulasztasai.Init(tanuloAlapadatok);
// Tanulóhoz tartozó értékelések
DataSourceBase tanuloErtekelesek = Report.GetDataSource("TanuloTantargyiErtekelesei");
DataTanuloErtekelesei.DataSource = tanuloErtekelesek;
Relation rel47 = new Relation();
rel47.Name = "TanuloErtekelesek";
rel47.ParentDataSource = tanuloAlapadatok;
rel47.ChildDataSource = tanuloErtekelesek;
rel47.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel47.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel47);
tanuloErtekelesek.Init(tanuloAlapadatok);
// Tanulóhoz értékeléseihez tartozó megjegyzések 1 félév
DataSourceBase tanuloErtekeleseihezTartozoMegjegyzes1Felev = Report.GetDataSource("ErtekelesFeljegyzesei");
DataErtekelesMegjegyzes.DataSource = tanuloErtekeleseihezTartozoMegjegyzes1Felev;
Relation rel4781 = new Relation();
rel4781.ParentDataSource = tanuloAlapadatok;
rel4781.ChildDataSource = tanuloErtekeleseihezTartozoMegjegyzes1Felev;
rel4781.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel4781.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel4781);
tanuloErtekeleseihezTartozoMegjegyzes1Felev.Init(tanuloAlapadatok);
// Tanulóhoz tartozó záradék
DataSourceBase zaradekok = Report.GetDataSource("TanuloZaradekok");
DataZaradek.DataSource = zaradekok;
Relation relZaradek = new Relation();
relZaradek.ParentDataSource = tanuloAlapadatok;
relZaradek.ChildDataSource = zaradekok;
relZaradek.ParentColumns = new string[] {"TanuloId"};
relZaradek.ChildColumns = new string[] {"TanuloId"};
Report.Dictionary.Relations.Add(relZaradek);
zaradekok.Init(tanuloAlapadatok);
}
private void FejlecOldal_StartPage(object sender, EventArgs e)
{
string alulirottMegnevezese = Report.Parameters.FindByName("AlulirottMegnevezese").Value.ToString();
int index = alulirottMegnevezese.IndexOf(" - ");
string nev = alulirottMegnevezese.Substring(0, index).Trim();
string beosztas = alulirottMegnevezese.Substring(index + " - ".Length).Trim();
Text16.Text = nev + "\r\n" + beosztas;
Text86.Text = Text16.Text;
isJelenletAdatokTablakkal = Boolean.Parse(Report.Parameters.FindByName("isJelenletAdatokTablakkal").Value.ToString());
if (isJelenletAdatokTablakkal)
{
DataMulasztasPentek.Delete();
DataMulasztasSzombat.Delete();
DataMulasztasVasarnap.Delete();
}
else
{
DataJelenlet.Delete();
DataFelevEvvegeJelenlet.Delete();
}
}
private void SzovegesDataTable_ManualBuild(object sender, EventArgs e)
{
string ertekeles = Report.GetColumnValue("TanuloSzoveges.Ertekeles").ToString();
string[] darabok = ertekeles.Split("|".ToCharArray());
Cell610.RowSpan = darabok.Length;
Cell612.RowSpan = darabok.Length;
Cell613.RowSpan = darabok.Length;
for (int i = 0; i < darabok.Length; i++)
{
SzovegesDataTable.PrintRow(0);
SzovegesDataTable.PrintColumn(0);
SzovegesDataTable.PrintColumn(1);
SzovegesDataTable.PrintColumn(2);
Match match = Regex.Match(darabok[i], "^sz\\<sup\\>\\d+\\</sup\\> +", RegexOptions.None);
if (match.Success)
{
Cell100067.Text = darabok[i].Substring(0, match.Length);
Cell100067.ColSpan = 1;
Cell100067.Border.Lines = BorderLines.Left;
Cell652.Border.Lines = BorderLines.Right;
if (i == 0)
{
Cell100067.Border.Lines |= BorderLines.Top;
Cell652.Border.Lines |= BorderLines.Top;
}
if (i == (darabok.Length - 1))
{
Cell100067.Border.Lines |= BorderLines.Bottom;
Cell652.Border.Lines |= BorderLines.Bottom;
}
Cell652.Text = darabok[i].Substring(match.Length);
}
else
{
Cell100067.Text = darabok[i];
Cell100067.ColSpan = 2;
Cell100067.Border.Lines = BorderLines.All;
Cell652.Text = "";
Cell652.Border.Lines = BorderLines.None;
}
SzovegesDataTable.PrintColumn(3);
SzovegesDataTable.PrintColumn(4);
}
}
private void JelenletTable_ManualBuild(object sender, EventArgs e)
{
int jelenletTablazatElrendezese = int.Parse(Report.Parameters.FindByName("JelenletTablazatElrendezese").Value.ToString());
int jelenletAdatokOsszesitese = int.Parse(Report.Parameters.FindByName("JelenletAdatokOsszesitese").Value.ToString());
string sorszam = jelenletAdatokOsszesitese == 0
? Report.GetColumnValue("NaptariHetek.Het").ToString()
: DateTime.Parse(Report.GetColumnValue("NaptariHetek.HetEleje").ToString()).Month.ToString();
DataSourceBase jelenlet = Report.GetDataSource("Jelenlet" + sorszam);
if (jelenlet == null)
{
return;
}
jelenlet.Init();
JelenletTable.PrintRow(0);
for (int i = 0; i < jelenlet.Columns.Count; i++)
{
if (i == 1) continue;
if (i == 0)
{
JelenletFejlecNev.Text = "";
JelenletTable.PrintColumn(0);
}
if (i > 0)
{
if (jelenletTablazatElrendezese != 0)
{
JelenletFejlecKeskeny.Text = jelenlet.Columns[i].Name;
JelenletTable.PrintColumn(2);
}
else
{
JelenletFejlec.Text = jelenlet.Columns[i].Name;
JelenletTable.PrintColumn(1);
}
}
}
while(jelenlet.HasMoreRows)
{
JelenletTable.PrintRow(0);
for (int i = 0; i < jelenlet.Columns.Count; i++)
{
if (i == 1) continue;
if (i == 0)
{
JelenletAdatNev.Text = Report.GetColumnValue("Jelenlet" + sorszam + "." + jelenlet.Columns[i].Name).ToString();
JelenletTable.PrintColumn(3);
}
else
{
if (jelenletTablazatElrendezese != 0)
{
JelenletAdatKeskeny.Text = Report.GetColumnValue("Jelenlet" + sorszam + "." + jelenlet.Columns[i].Name).ToString();
JelenletTable.PrintColumn(5);
}
else
{
JelenletAdat.Text = Report.GetColumnValue("Jelenlet" + sorszam + "." + jelenlet.Columns[i].Name).ToString();
JelenletTable.PrintColumn(4);
}
}
}
jelenlet.Next();
}
}
private void DataFelevEvvegeJelenlet_BeforePrint(object sender, EventArgs e)
{
int hetsorszam = int.Parse(Report.GetColumnValue("NaptariHetek.Het").ToString());
int felevHetsorszam = int.Parse(Report.Parameters.FindByName("FelevHetsorszam").Value.ToString());
int evvegeHetsorszam = int.Parse(Report.Parameters.FindByName("UtolsoTanitasiNapHetsorszam").Value.ToString());
DataFelevEvvegeJelenlet.Visible = (hetsorszam == felevHetsorszam) || (hetsorszam == evvegeHetsorszam);
if (hetsorszam == felevHetsorszam)
{
CellFelevEvvegeText.Text = "Féléves jelenlét adatok";
}
if (hetsorszam == evvegeHetsorszam)
{
CellFelevEvvegeText.Text = "Évvégi jelenlét adatok";
}
}
private void JelenletFelevEvvegeTable_ManualBuild(object sender, EventArgs e)
{
DataSourceBase jelenlet;
int hetsorszam = int.Parse(Report.GetColumnValue("NaptariHetek.Het").ToString());
int felevHetsorszam = int.Parse(Report.Parameters.FindByName("FelevHetsorszam").Value.ToString());
int evvegeHetsorszam = int.Parse(Report.Parameters.FindByName("UtolsoTanitasiNapHetsorszam").Value.ToString());
string tartomany = null;
if(hetsorszam == felevHetsorszam)
{
tartomany = "Felev";
}
if(hetsorszam == evvegeHetsorszam)
{
tartomany = "Evvege";
}
if (string.IsNullOrWhiteSpace(tartomany))
{
return;
}
jelenlet = Report.GetDataSource("Jelenlet" + tartomany);
jelenlet.Init();
JelenletFelevEvvegeTable.PrintRow(0);
for (int i = 0; i < jelenlet.Columns.Count; i++)
{
if (i == 0)
{
FejlecJH.Text = "";
JelenletFelevEvvegeTable.PrintColumn(0);
}
else
{
FejlecOrak.Text = jelenlet.Columns[i].Name;
JelenletFelevEvvegeTable.PrintColumn(1);
}
}
while(jelenlet.HasMoreRows)
{
JelenletFelevEvvegeTable.PrintRow(0);
for (int i = 0; i < jelenlet.Columns.Count; i++)
{
if (i == 0)
{
JHAdat.Text = Report.GetColumnValue("Jelenlet" + tartomany + "." + jelenlet.Columns[i].Name).ToString() == "J" ? "jelenlévők" : "hiányzók";
JelenletFelevEvvegeTable.PrintColumn(2);
}
else
{
OraJHAdat.Text = Report.GetColumnValue("Jelenlet" + tartomany + "." + jelenlet.Columns[i].Name).ToString();
JelenletFelevEvvegeTable.PrintColumn(3);
}
}
jelenlet.Next();
}
}
private void DataJelenlet_BeforePrint(object sender, EventArgs e)
{
int jelenletAdatokOsszesitese = int.Parse(Report.Parameters.FindByName("JelenletAdatokOsszesitese").Value.ToString());
if (jelenletAdatokOsszesitese == 0)
{
DateTime datum = DateTime.Parse(Report.GetColumnValue("Naplo.Datum").ToString());
DateTime vizsgalt = DateTime.Parse(Report.GetColumnValue("NaptariHetek.HetVege").ToString());
DataJelenlet.Visible = datum == vizsgalt;
}
else
{
bool honaputolsonaplozottnapja = Boolean.Parse(Report.GetColumnValue("NaploAdatok.IsHonapUtolsoNaplozottNapja_BOOL").ToString());
DataJelenlet.Visible = honaputolsonaplozottnapja;
}
}
private void Data7_BeforePrint(object sender, EventArgs e)
{
Data7.Visible = Report.GetColumnValue("NaploAdatok.KezdetVeg").ToString() != "";
}
}
}