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 void Page1_ManualBuild(object sender, EventArgs e)
{
bool isMulasztasokUjLapon;
Boolean.TryParse(Report.Parameters.FindByName("isMulasztasokUjLapon").Value.ToString(), out isMulasztasokUjLapon);
DataMulasztas.StartNewPage = isMulasztasokUjLapon;
DataMulasztas.FirstRowStartsNewPage = isMulasztasokUjLapon;
bool isVegZaradek = false;
Boolean.TryParse(Report.Parameters.FindByName("TantestuletFeljegyzesei").Value.ToString(), out isVegZaradek);
bool isPHMegjelenites = true;
Boolean.TryParse(Report.Parameters.FindByName("PHMegjelenitese").Value.ToString(), out isPHMegjelenites);
Text25.Visible = isPHMegjelenites;
string FejlecTextFirstPart = "iskolánk <b>[Tanulok.Osztaly]</b> osztályának tanulója, a <b>[Fejlec.Tanev].</b> tanév";
string IdoszakName=null;
string FejlecThirdPart="az alábbiak szerint teljesített:";
string VisszakuldTextFirstPart= "Tisztelt Szülő! Kérem, hogy ";
string VisszakuldName=null;
string VisszakuldThirdPart= " aláírva visszaküldeni szíveskedjen.";
string AlairastextFirstPart= "Aláírásommal igazolom, hogy gyermekem ";
string AlairasName=null;
string AlairasThirdPart= " értesítőjében szereplő értékeléseket megtekintettem és tudomásul vettem.";
string VisszakuldTextFirstPartSajatReszre= "Kérem, hogy ";
string VisszakuldThirdPartSajatReszre= " aláírva visszahozni szíveskedjen.";
string AlairastextFirstPartSajatReszre= "Aláírásommal igazolom, hogy a(z) ";
string AlairasThirdPartSajatReszre= " értesítőben szereplő értékeléseket megtekintettem és tudomásul vettem.";
switch(Report.Parameters.FindByName("Idoszak").Value.ToString())
{
case "1519": IdoszakName=" első félévében ";
VisszakuldName="a(z) félévi értesítőt";
AlairasName="félévi";
ErtekelesCell.Text = "Félévi értékelés";
break;
case "1520": IdoszakName="ben ";
VisszakuldName="a(z) év végi értesítőt";
AlairasName="év végi";
ErtekelesCell.Text = "Év végi értékelés";
break;
case "1522": IdoszakName=" I. negyedévében ";
VisszakuldName="a(z) I. negyedévi értesítőt";
AlairasName="első negyedévi";
ErtekelesCell.Text = "I. negyedévi értékelés";;
break;
case "1524": IdoszakName=" II. negyedévében ";
VisszakuldName="a(z) II. negyedévi értesítőt";
AlairasName="második negyedévi";
ErtekelesCell.Text = "II. negyedévi értékelés";
break;
case "1523": IdoszakName=" III. negyedévében ";
VisszakuldName="a(z) III. negyedévi értesítőt";
AlairasName="III. negyedévi";
ErtekelesCell.Text = "III. negyedévi értékelés";
break;
case "1525": IdoszakName=" IV. negyedévében ";
VisszakuldName="a(z) IV. negyedévi értesítőt";
AlairasName="IV. negyedévi";
ErtekelesCell.Text = "IV. negyedévi értékelés";
break;
}
FejlecText.Text = FejlecTextFirstPart + IdoszakName + FejlecThirdPart;
if(Report.Parameters.FindByName("ErtesitesCimzettje").Value.ToString() == "1")
{
VisszakuldText.Text = VisszakuldTextFirstPart + VisszakuldName + VisszakuldThirdPart;
AlairasText.Text = AlairastextFirstPart + AlairasName + AlairasThirdPart;
}
if(Report.Parameters.FindByName("ErtesitesCimzettje").Value.ToString() == "2")
{
Tajekoztat.Text = "";
VisszakuldText.Text = VisszakuldTextFirstPartSajatReszre + VisszakuldName + VisszakuldThirdPartSajatReszre;
AlairasText.Text = AlairastextFirstPartSajatReszre + AlairasName + AlairasThirdPartSajatReszre;
Text31.Text = "Tanuló aláírása";
}
if(isVegZaradek)
{
DataHeaderVegZaraderk.Visible = true;
DataVegZaradek.Visible = true;
Cell50.Text = "[IIf([Zaradekok.Bejegyzes] != \"\", [Zaradekok.Bejegyzes] + IIf([IsZaradekDatumVisible], \"\\r\\n\" + [Zaradekok.KeltezesHelye] + \", \" + [Zaradekok.KELTEZESDATUMA], \"\"), \"\")]";
}
if(Report.Parameters.FindByName("FelmentesekSzerepeltetese").Value.ToString() == "False")
{
DataHeader3.Visible = false;
dataMentesseg.Visible = false;
}
// Tanulók
DataSourceBase tanuloAlapadatok = Report.GetDataSource("Tanulok");
DataTanuloAlapadatok.DataSource = tanuloAlapadatok;
tanuloAlapadatok.Init();
// 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);
if(Report.Parameters.FindByName("AtlagFeltuntet").Value.ToString() == "True")
{
DataAtlagErtekeles.Visible = true;
Cell42.Text = "[TanuloErtekelesAtlag.ErtekelesAtlag]";
DataSourceBase DsDataAtlagErtekelesek = Report.GetDataSource("TanuloErtekelesAtlag");
DataAtlagErtekeles.DataSource = DsDataAtlagErtekelesek;
Relation rel02 = new Relation();
rel02.Name = "TanuloAtlagErt";
rel02.ParentDataSource = tanuloAlapadatok;
rel02.ChildDataSource = DsDataAtlagErtekelesek;
rel02.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel02.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel02);
DsDataAtlagErtekelesek.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 mentességei
DataSourceBase DsDataMentesseg = Report.GetDataSource("Mentessegek");
dataMentesseg.DataSource = DsDataMentesseg;
Relation rel4 = new Relation();
rel4.Name = "TanuloMen";
rel4.ParentDataSource = tanuloAlapadatok;
rel4.ChildDataSource = DsDataMentesseg;
rel4.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel4.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel4);
DsDataMentesseg.Init(tanuloAlapadatok);
// Tanulók bejegyzései
DataSourceBase DsDatabejegyzesek = Report.GetDataSource("FeljegyzesekHatarozatok");
DataBejegyzesei.DataSource = DsDatabejegyzesek;
Relation rel5 = new Relation();
rel5.Name = "TanuloBej";
rel5.ParentDataSource = tanuloAlapadatok;
rel5.ChildDataSource = DsDatabejegyzesek;
rel5.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel5.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel5);
DsDatabejegyzesek.Init(tanuloAlapadatok);
if (isVegZaradek)
{
// Tanulók végzáradékai
DataSourceBase DsDataVegZaradek = Report.GetDataSource("Zaradekok");
DataVegZaradek.DataSource = DsDataVegZaradek;
Relation rel6 = new Relation();
rel6.Name = "TanuloVegZaradek";
rel6.ParentDataSource = tanuloAlapadatok;
rel6.ChildDataSource = DsDataVegZaradek;
rel6.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel6.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel6);
DsDataVegZaradek.Init(tanuloAlapadatok);
}
// Tanulóhoz tartozó összefüggő szakmai gyakorlat
DataSourceBase tanuloOsszefuggoSzakmaiGyakorlat = Report.GetDataSource("OsszefuggoSzakmaiGyakorlat");
DataOsszefuggoSzakmaiGyakorlat.DataSource = tanuloOsszefuggoSzakmaiGyakorlat;
Relation rel4784 = new Relation();
rel4784.ParentDataSource = tanuloAlapadatok;
rel4784.ChildDataSource = tanuloOsszefuggoSzakmaiGyakorlat;
rel4784.ParentColumns = new string[] { "tanuloID", "TanuloCsoportId" };
rel4784.ChildColumns = new string[] { "tanuloID", "TanuloCsoportId" };
Report.Dictionary.Relations.Add(rel4784);
tanuloOsszefuggoSzakmaiGyakorlat.Init(tanuloAlapadatok);
int fontSizeDifference = (int)Report.GetParameterValue("FontSizeDifference");
SetChildObjects(Page1.PageHeader.Objects, fontSizeDifference);
SetChildObjects(DataTanuloAlapadatok.Objects, fontSizeDifference);
SetCellsFont(Table0.Rows, fontSizeDifference);
SetCellsFont(Table6.Rows, fontSizeDifference);
SetCellsFont(Table8.Rows, fontSizeDifference);
SetCellsFont(Table9.Rows, fontSizeDifference);
SetCellsFont(Table10.Rows, fontSizeDifference);
SetCellsFont(Table11.Rows, fontSizeDifference);
SetCellsFont(Table12.Rows, fontSizeDifference);
SetCellsFont(Table13.Rows, fontSizeDifference);
SetCellsFont(Table14.Rows, fontSizeDifference);
SetCellsFont(Table15.Rows, fontSizeDifference);
SetCellsFont(Table16.Rows, fontSizeDifference);
SetCellsFont(Atlag.Rows, fontSizeDifference);
SetChildObjects(Data1.Objects, fontSizeDifference);
string tagintezmenyCim = (string)Report.GetParameterValue("TagintezmenyCim");
if(!string.IsNullOrWhiteSpace(tagintezmenyCim))
{
Text24.Text = tagintezmenyCim + Environment.NewLine + "[Kelt]";
}
}
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 Cell8_BeforePrint(object sender, EventArgs e)
{
if (Report.GetColumnValue("Ertekeles.ErtekelesValue").ToString() == "0"
&& int.Parse(Report.GetColumnValue("Ertekeles.TantargyId").ToString()) > 0)
{
Cell8.HorzAlign = HorzAlign.Justify;
}
else
{
Cell8.HorzAlign = HorzAlign.Center;
}
}
float firstColumnWidth = 0.0F;
private void Cell7_AfterData(object sender, EventArgs e)
{
if (Engine.FirstPass)
{
float calculatedWidth = Cell7.CalcWidth();
if (calculatedWidth > firstColumnWidth)
{
firstColumnWidth = calculatedWidth;
}
}
if (Engine.FinalPass)
{
float secondColumnWidthDiff = (firstColumnWidth-Column7.Width);
Column8.Width = Column8.Width - secondColumnWidthDiff;
Column7.Width = firstColumnWidth;
}
}
private void Cell3_AfterData(object sender, EventArgs e)
{
if (Engine.FinalPass)
{
float secondColumnWidthDiff = (firstColumnWidth-Column4.Width);
Column4.Width = Column4.Width - secondColumnWidthDiff;
Column3.Width = firstColumnWidth;
}
}
private void Cell15_AfterData(object sender, EventArgs e)
{
if (Engine.FinalPass)
{
float secondColumnWidthDiff = (firstColumnWidth-Column16.Width);
Column16.Width = Column16.Width - secondColumnWidthDiff;
Column15.Width = firstColumnWidth;
}
}
private void Cell13_AfterData(object sender, EventArgs e)
{
if (Engine.FinalPass)
{
float secondColumnWidthDiff = (firstColumnWidth-Column14.Width);
Column14.Width = Column14.Width - secondColumnWidthDiff;
Column13.Width = firstColumnWidth;
}
}
}
}