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() != ""; } } }