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);
if(isMulasztasokUjLapon)
{
DataHeader5.StartNewPage = true;
}
// Tanulók
DataSourceBase tanuloAlapadatok = Report.GetDataSource("Tanulok");
DataTanuloAlapadatok.DataSource = tanuloAlapadatok;
tanuloAlapadatok.Init();
// 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 értékelései
DataSourceBase DsDataErtekelesek = Report.GetDataSource("Ertekeles");
DataErtekelesek.DataSource = DsDataErtekelesek;
DataErtekelesekFolyamatos.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);
bool isEvesOraszamMegjelenjen;
Boolean.TryParse(Report.Parameters.FindByName("OraEvesSorszamMegjelenjen").Value.ToString(), out isEvesOraszamMegjelenjen);
if(int.Parse(Report.Parameters.FindByName("NyomtatvanyErtekelesMegjelenitesId").Value.ToString()) == 1)
{
DataErtekelesekFolyamatos.Delete();
}
else
{
DataErtekelesek.Delete();
}
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 határozatai
DataSourceBase DsDataHatarozatok = Report.GetDataSource("FeljegyzesekHatarozatok");
DataHatarozatok.DataSource = DsDataHatarozatok;
Relation rel6 = new Relation();
rel6.Name = "TanuloHatatozatok";
rel6.ParentDataSource = tanuloAlapadatok;
rel6.ChildDataSource = DsDataHatarozatok;
rel6.ParentColumns = new string[] { "tanuloID" };
rel6.ChildColumns = new string[] { "tanuloID" };
Report.Dictionary.Relations.Add(rel6);
DsDataHatarozatok.Init(tanuloAlapadatok);
int fontSizeDifference = (int)Report.GetParameterValue("FontSizeDifference");
SetChildObjects(DataTanuloAlapadatok.Objects, fontSizeDifference);
SetCellsFont(Table5.Rows, fontSizeDifference);
SetChildObjects(DataHeader3.Objects, fontSizeDifference);
SetCellsFont(Table5F.Rows, fontSizeDifference);
SetChildObjects(DataHeader2.Objects, fontSizeDifference);
SetCellsFont(Table7.Rows, fontSizeDifference);
SetCellsFont(Table6.Rows, fontSizeDifference);
SetChildObjects(DataHeader5.Objects, fontSizeDifference);
SetChildObjects(DataHatarozatok.Objects, fontSizeDifference);
SetChildObjects(DataHeader1.Objects, fontSizeDifference);
SetChildObjects(Data9.Objects, fontSizeDifference);
string tagintezmenyCim = (string)Report.GetParameterValue("TagintezmenyCim");
if(!string.IsNullOrWhiteSpace(tagintezmenyCim))
{
Text126.Text = tagintezmenyCim + Environment.NewLine + "[KeltIdegenNyelv]";
}
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();
Text125.Text = nev + "\r\n" + 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;
}
}
}