using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; 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 const int margo=20; private void Page2_ManualBuild(object sender, EventArgs e) { bool isMulasztasokUjLapon; Boolean.TryParse(Report.Parameters.FindByName("isMulasztasokUjLapon").Value.ToString(), out isMulasztasokUjLapon); DataMulasztas.StartNewPage = isMulasztasokUjLapon; DataMulasztas.FirstRowStartsNewPage = isMulasztasokUjLapon; bool isFeljegyzesekMegjelenitese; Boolean.TryParse(Report.Parameters.FindByName("isFeljegyzesekMegjelenitese").Value.ToString(), out isFeljegyzesekMegjelenitese); if (!isFeljegyzesekMegjelenitese) { DataFeljegyzesek.Delete(); } bool isFelmentesekMegjelenitese; Boolean.TryParse(Report.Parameters.FindByName("isFelmentesekMegjelenitese").Value.ToString(), out isFelmentesekMegjelenitese); if (!isFelmentesekMegjelenitese) { DataFelmentesek.Delete(); } bool KozossegiSzolgalat; Boolean.TryParse(Report.Parameters.FindByName("KozossegiSzolgalat").Value.ToString(), out KozossegiSzolgalat); if (!KozossegiSzolgalat) { DataTanuloKozossegiSz.Delete(); DataFeljegyzesKozossegiSzolgalat.Delete(); } DataSourceBase osztalyDS = Report.GetDataSource("Osztaly"); Data6.DataSource = osztalyDS; osztalyDS.Init(); DataSourceBase fejlecDS = Report.GetDataSource("Fejlec"); Data1.DataSource = fejlecDS; Relation relOF = new Relation(); relOF.ParentDataSource = osztalyDS; relOF.ChildDataSource = fejlecDS; relOF.ParentColumns = new string[] {"OsztalyId"}; relOF.ChildColumns = new string[] {"OsztalyId"}; Report.Dictionary.Relations.Add(relOF); fejlecDS.Init(osztalyDS); // Tanulók DataSourceBase tanuloAlapadatok = Report.GetDataSource("Tanulok"); DataTanuloAlapadatok.DataSource = tanuloAlapadatok; Relation relOT = new Relation(); relOT.ParentDataSource = osztalyDS; relOT.ChildDataSource = tanuloAlapadatok; relOT.ParentColumns = new string[] {"OsztalyId"}; relOT.ChildColumns = new string[] {"OsztalyId"}; Report.Dictionary.Relations.Add(relOT); tanuloAlapadatok.Init(osztalyDS); // Tanulók értékelései DataSourceBase DsDataErtekelesek = Report.GetDataSource("Ertekeles"); DataErtekelesek.DataSource = DsDataErtekelesek; Relation rel2 = new Relation(); rel2.Name = "TanuloErt"; rel2.ParentDataSource = tanuloAlapadatok; rel2.ChildDataSource = DsDataErtekelesek; rel2.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel2.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel2); DsDataErtekelesek.Init(tanuloAlapadatok); // Tanulók mulasztésai DataSourceBase DsDataMulasztas = Report.GetDataSource("Mulasztasok"); DataMulasztas.DataSource = DsDataMulasztas; Relation rel3 = new Relation(); rel3.Name = "TanuloMul"; rel3.ParentDataSource = tanuloAlapadatok; rel3.ChildDataSource = DsDataMulasztas; rel3.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel3.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel3); DsDataMulasztas.Init(tanuloAlapadatok); // Tanulók határozatai DataSourceBase DsDataHatarozatok = Report.GetDataSource("Hatarozat"); DataHatarozatok.DataSource = DsDataHatarozatok; Relation rel5 = new Relation(); rel5.Name = "TanuloHatatozatok"; rel5.ParentDataSource = tanuloAlapadatok; rel5.ChildDataSource = DsDataHatarozatok; rel5.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel5.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel5); DsDataHatarozatok.Init(tanuloAlapadatok); // Tanulók feljegyzései DataSourceBase DsDataFeljegyzesek = Report.GetDataSource("Feljegyzesek"); DataFeljegyzesek.DataSource = DsDataFeljegyzesek; Relation rel6 = new Relation(); rel6.Name = "TanuloFeljegyzeseik"; rel6.ParentDataSource = tanuloAlapadatok; rel6.ChildDataSource = DsDataFeljegyzesek; rel6.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel6.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel6); DsDataFeljegyzesek.Init(tanuloAlapadatok); // Tanulók felmentései DataSourceBase DsDataFelmentesek = Report.GetDataSource("Felmentesek"); DataFelmentesek.DataSource = DsDataFelmentesek; Relation rel60 = new Relation(); rel60.Name = "TanuloFelmentesei"; rel60.ParentDataSource = tanuloAlapadatok; rel60.ChildDataSource = DsDataFelmentesek; rel60.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel60.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel60); DsDataFelmentesek.Init(tanuloAlapadatok); // Tanulóhoz tartozó közösségi szolgálat DataSourceBase tanuloKozossegiSzolgalat = Report.GetDataSource("TanuloKozossegiSzolgalat"); DataTanuloKozossegiSz.DataSource = tanuloKozossegiSzolgalat; Relation rel478 = new Relation(); rel478.Name = "TanuloKozossegiSz"; rel478.ParentDataSource = tanuloAlapadatok; rel478.ChildDataSource = tanuloKozossegiSzolgalat; rel478.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel478.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel478); tanuloKozossegiSzolgalat.Init(tanuloAlapadatok); // Feljegyzls a Tanulóhoz tartozó közösségi szolgálathoz DataSourceBase tanuloKozossegiSzolgalatFeljegyzesei = Report.GetDataSource("FeljegyzesKozossegiSzolgalat"); DataFeljegyzesKozossegiSzolgalat.DataSource = tanuloKozossegiSzolgalatFeljegyzesei; Relation rel4787 = new Relation(); rel4787.Name = "TanuloKozossegiSza"; rel4787.ParentDataSource = tanuloAlapadatok; rel4787.ChildDataSource = tanuloKozossegiSzolgalatFeljegyzesei; rel4787.ParentColumns = new string[] { "TanuloId", "TanuloCsoportId" }; rel4787.ChildColumns = new string[] { "TanuloId", "TanuloCsoportId" }; Report.Dictionary.Relations.Add(rel4787); tanuloKozossegiSzolgalatFeljegyzesei.Init(tanuloAlapadatok); if (Report.Parameters.FindByName("OraEvesSorszamMegjelenjen").Value.ToString() == "False") { CellOraszam.Text = ""; } if (Report.Parameters.FindByName("FejlecMegjelenites").Value.ToString() == "False") { FejlecTable.Visible = false; } if (Report.Parameters.FindByName("AdatokMegjelenites").Value.ToString() == "False") { Page1.Visible = false; Page3.Visible = false; ErtekelesFejlecTable.Visible = false; ErtekelesTable.Visible = false; MulasztasokTable.Visible = false; CellHatarozat.Text = ""; HatarozatFejlecTable.Visible = false; HatarozatTable.Visible = false; FeljegyzesekFejlecTable.Visible = false; FeljegyzesekTable.Visible = false; KozossegiSzolgalatFejlecTable.Visible = false; KozossegiSzolgalatTable.Visible = false; Table25.Visible = false; FelmenesekFejlecTable.Visible = false; Table22.Visible = false; Table23.Visible = false; Table24.Visible = false; Table27.Visible = false; Table26.Visible = false; } if (Report.Parameters.FindByName("FejlecMegjelenites").Value.ToString() == "False" && Report.Parameters.FindByName("AdatokMegjelenites").Value.ToString() == "False") { Page1.Visible = false; Page2.Visible = false; Page3.Visible = false; } if (Report.Parameters.FindByName("FejlecMegjelenites").Value.ToString() == "False" && Report.Parameters.FindByName("AdatokMegjelenites").Value.ToString() == "True") { foreach(ReportComponentBase a in Page4.PageHeader.ChildObjects) { a.Visible = false; } } if (Report.Parameters.FindByName("OraEvesSorszamMegjelenjen").Value.ToString() == "True") { Cell165.Text = "Number of classes (lessons) during the academic year:"; CellOraszam.Text = "[Ertekeles.Oraszam]"; } if (Report.Parameters.FindByName("GondviseloAdatok").Value.ToString() == "False") { CellGondviselo.Visible = false; } // Tanulólista DataSourceBase DsDataTanuloLista = Report.GetDataSource("TanuloLista"); DataTanuloLista.DataSource = DsDataTanuloLista; Relation relOTL = new Relation(); relOTL.ParentDataSource = osztalyDS; relOTL.ChildDataSource = DsDataTanuloLista; relOTL.ParentColumns = new string[] {"OsztalyId"}; relOTL.ChildColumns = new string[] {"OsztalyId"}; Report.Dictionary.Relations.Add(relOTL); DsDataTanuloLista.Init(osztalyDS); // Hitelesítés DataSourceBase hitelesitesDS = Report.GetDataSource("Fejlec"); Data2.DataSource = hitelesitesDS; Relation relOH = new Relation(); relOH.ParentDataSource = osztalyDS; relOH.ChildDataSource = hitelesitesDS; relOH.ParentColumns = new string[] {"OsztalyId"}; relOH.ChildColumns = new string[] {"OsztalyId"}; Report.Dictionary.Relations.Add(relOH); hitelesitesDS.Init(osztalyDS); int fontSizeDifference = (int)Report.GetParameterValue("FontSizeDifference"); SetCellsFont(Table7.Rows, fontSizeDifference); SetCellsFont(Table5.Rows, fontSizeDifference); SetCellsFont(Table3.Rows, fontSizeDifference); SetCellsFont(FejlecTable.Rows, fontSizeDifference); SetCellsFont(ErtekelesFejlecTable.Rows, fontSizeDifference); SetCellsFont(ErtekelesTable.Rows, fontSizeDifference); SetCellsFont(MulasztasokTable.Rows, fontSizeDifference); SetCellsFont(HatarozatFejlecTable.Rows, fontSizeDifference); SetCellsFont(HatarozatTable.Rows, fontSizeDifference); SetCellsFont(FelmenesekFejlecTable.Rows, fontSizeDifference); SetCellsFont(Table22.Rows, fontSizeDifference); SetCellsFont(FeljegyzesekFejlecTable.Rows, fontSizeDifference); SetCellsFont(FeljegyzesekTable.Rows, fontSizeDifference); SetCellsFont(KozossegiSzolgalatFejlecTable.Rows, fontSizeDifference); SetCellsFont(KozossegiSzolgalatTable.Rows, fontSizeDifference); SetCellsFont(Table27.Rows, fontSizeDifference); SetCellsFont(Table24.Rows, fontSizeDifference); SetCellsFont(Table28.Rows, fontSizeDifference); SetCellsFont(Table4.Rows, fontSizeDifference); SetCellsFont(Table2.Rows, fontSizeDifference); SetCellsFont(Table6.Rows, fontSizeDifference); 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(); Cell851.Text = nev + "\r\n" + beosztas; Cell854.Text = Cell851.Text; Cell219.Text = beosztas; } private void SetCellsFont(TableRowCollection rows, int fontSizeDifference) { foreach(TableRow row in rows) { foreach(TableCell cell in row.ChildObjects) { SetTextFont(cell, fontSizeDifference); } } } private void SetChildObjects(ReportComponentCollection collection, int fontSizeDifference) { foreach(ReportComponentBase text in collection) { if (text is TextObject) { SetTextFont((TextObject)text, fontSizeDifference); } } } private void SetTextFont(TextObject text, int fontSizeDifference) { int fontSizeCorrection = ((fontSizeDifference != 0) && (text.Font.Size > 14)) ? 1 : 0; Font font = new Font(text.Font.FontFamily, text.Font.Size - (fontSizeDifference + fontSizeCorrection), text.Font.Style); text.Font = font; } private void _StartReport(object sender, EventArgs e) { bool isCsakTorzslapOldal = (bool)Report.Parameters.FindByName("isCsakTorzslapOldal").Value; Subreport1.Visible = !isCsakTorzslapOldal; Subreport2.Visible = !isCsakTorzslapOldal; Subreport3.Visible = !isCsakTorzslapOldal; if (isCsakTorzslapOldal) { DataTanuloAlapadatok.FirstRowStartsNewPage = false; } int kotesMargoTipus = (int)Report.Parameters.FindByName("KotesMargoTipus").Value; if (kotesMargoTipus > 0) { SetKotesMargohoz(kotesMargoTipus > 1, kotesMargoTipus == 3); } } private void SetKotesMargohoz(bool isKetoldalas, bool isForditottKetoldalas) { foreach(ReportPage page in Report.Pages) { if (!isForditottKetoldalas) { page.LeftMargin = margo; } else { page.RightMargin = margo; } page.MirrorMargins = isKetoldalas; foreach(Object obj in page.AllObjects) { if (obj is TableObject) { TableObject table = obj as TableObject; table.Width -= (margo * 2); float szumColWidth = 0; for(int i = 0; i < table.ColumnCount; i++) { TableColumn column = table.Columns[i]; if (i < (table.ColumnCount - 1)) { column.Width -= (margo * 2)/table.ColumnCount; szumColWidth += column.Width; } else { column.Width = table.Width - szumColWidth; } } } } } } } }