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;
}
}
}
}
}
}
}
}