193 lines
15 KiB
C#
193 lines
15 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Resources;
|
|
using OfficeOpenXml;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
|
|
{
|
|
public class TanulokBejegyzeseiExcel : BaseNyomtatvanyExcelWithDataSet
|
|
{
|
|
public TanulokBejegyzeseiExcel(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
|
|
{
|
|
FileInfo exFile = null;
|
|
if (templateFilename != null)
|
|
{
|
|
exFile = new FileInfo(templateFilename);
|
|
}
|
|
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
|
|
SetWorkbookProperties();
|
|
}
|
|
|
|
public override void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1)
|
|
{
|
|
SetExcelDataSet(ds);
|
|
DataTable fejlecDt = DataSet.Tables[0];
|
|
int startRow = 11;
|
|
|
|
string[] columns = new string[]
|
|
{
|
|
"Tipus"
|
|
,"Szeptember"
|
|
,"Oktober"
|
|
,"November"
|
|
,"December"
|
|
,"Januar"
|
|
,"Februar"
|
|
,"Marcius"
|
|
,"Aprilis"
|
|
,"Majus"
|
|
,"Junius"
|
|
,"Felev"
|
|
,"Ossz"
|
|
};
|
|
|
|
var tanuloList = DataSet.Tables[1].AsEnumerable().GroupBy(r => r.Field<string>("OktAzon"));
|
|
|
|
foreach (var tanulo in tanuloList)
|
|
{
|
|
bool first = true;
|
|
ExcelWorksheet worksheet = null;
|
|
startRow = 11;
|
|
foreach (var tanuloDataRow in tanulo)
|
|
{
|
|
var tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
|
|
var tanuloId = Convert.ToInt32(tanuloDataRow["TanuloId"]);
|
|
var cellStyles = new CellStyle[]
|
|
{
|
|
NormalStyleWrapText
|
|
};
|
|
if (first)
|
|
{
|
|
worksheet = CreateSheet($"{tanuloDataRow["TanuloNeve"]} ({tanuloDataRow["OktAzon"]})", sheetIndex, eOrientation.Landscape, true);
|
|
//Fejléc
|
|
AddLabelRange(worksheet, 1, 1, 1, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 1, 6, 1, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 1, 8, 1, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 1, 10, 1, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalynaploSorszama, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 1, 12, 1, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTorzslapszama, DocheaderStyleMergedUpperCell);
|
|
|
|
AddLabelRange(worksheet, 2, 1, 2, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 2, 6, 2, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 2, 8, 2, 9, fejlecDt.Rows[0]["OsztalyNev"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 2, 10, 2, 11, tanuloDataRow["Sorszam"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 2, 12, 2, 13, tanuloDataRow["TorzslapSzam"].ToString(), DocheaderStyleMergedLowerCell);
|
|
|
|
AddLabelRange(worksheet, 3, 1, 3, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiAnyjaSzuleteskoriNeve, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 3, 3, 3, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiHely, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 3, 6, 3, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiIdo, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 3, 8, 3, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiAllampolgarsaga, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 3, 12, 3, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTajSzama, DocheaderStyleMergedUpperCell);
|
|
|
|
AddLabelRange(worksheet, 4, 1, 4, 2, tanuloDataRow["AnyjaNeve"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 4, 3, 4, 5, tanuloDataRow["SzulHely"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 4, 6, 4, 7, tanuloDataRow["SzulIdo"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 4, 8, 4, 11, tanuloDataRow["Allampolgarsaga"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 4, 12, 4, 13, tanuloDataRow["TajSzam"].ToString(), DocheaderStyleMergedLowerCell);
|
|
|
|
AddLabelRange(worksheet, 5, 1, 5, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiKepzes, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 5, 6, 5, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiDiakigazolvanySzama, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 5, 10, 5, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiBeirasiNaploSzama, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, 5, 12, 5, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
|
|
|
|
AddLabelRange(worksheet, 6, 1, 6, 5, tanuloDataRow["Kepzes"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 6, 6, 6, 9, tanuloDataRow["DiakIgazolvanySzam"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 6, 10, 6, 11, tanuloDataRow["BeirasiNaploSorszam"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, 6, 12, 6, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
|
|
|
|
AddLabelRange(worksheet, 7, 1, 7, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzocialisEsTanugyiAdatok, DocheaderStyleMergedUpperCell);
|
|
|
|
AddLabelRange(worksheet, 8, 1, 8, 13, tanuloDataRow["SocAdat"].ToString(), DocheaderStyleMergedLowerCell);
|
|
|
|
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
|
|
{
|
|
AddLabelRange(worksheet, 10, 1, 10, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiBejegyzesekSzamaATanevFolyaman, DocheaderStyle1);
|
|
AddLabelCell(worksheet, 10, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, 10, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
|
|
|
|
//Adatok
|
|
foreach (var column in DataSet.Tables[2].Columns)
|
|
{
|
|
tanuloTable.Columns.Add(column.ToString());
|
|
}
|
|
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
|
|
{
|
|
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
|
|
{
|
|
tanuloTable.ImportRow(bejegyzesDataRow);
|
|
}
|
|
}
|
|
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
|
|
startRow += tanuloTable.Rows.Count + 2;
|
|
}
|
|
worksheet.Column(1).AutoFit(35);
|
|
for (var i = 2; i <= columns.Length; ++i)
|
|
{
|
|
worksheet.Column(i).AutoFit(15);
|
|
}
|
|
first = false;
|
|
sheetIndex++;
|
|
}
|
|
else
|
|
{
|
|
AddLabelRange(worksheet, startRow, 1, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, startRow, 6, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, startRow, 8, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
|
|
AddLabelRange(worksheet, startRow, 10, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
|
|
startRow++;
|
|
AddLabelRange(worksheet, startRow, 1, startRow, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, startRow, 6, startRow, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, startRow, 8, startRow, 9, tanuloDataRow["AktualisOsztaly"].ToString(), DocheaderStyleMergedLowerCell);
|
|
AddLabelRange(worksheet, startRow, 10, startRow, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
|
|
startRow += 2;
|
|
|
|
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
|
|
{
|
|
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiBejegyzesekSzamaATanevFolyaman, DocheaderStyle1);
|
|
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
|
|
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
|
|
startRow++;
|
|
//Adatok
|
|
foreach (var column in DataSet.Tables[2].Columns)
|
|
{
|
|
tanuloTable.Columns.Add(column.ToString());
|
|
}
|
|
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
|
|
{
|
|
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
|
|
{
|
|
tanuloTable.ImportRow(bejegyzesDataRow);
|
|
}
|
|
}
|
|
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
|
|
startRow += tanuloTable.Rows.Count + 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|