249 lines
14 KiB
C#
249 lines
14 KiB
C#
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using Kreta.Core.ConnectionType;
|
|
using OfficeOpenXml;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
|
|
{
|
|
public class TanulokMulasztasaiExcel : BaseNyomtatvanyExcelWithDataSet
|
|
{
|
|
private bool _elmeletGyakorlat = false;
|
|
public TanulokMulasztasaiExcel(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null, bool elmeletGyakorlat = false) : base(connectionType, isMultisheetExcel)
|
|
{
|
|
FileInfo exFile = null;
|
|
if (templateFilename != null)
|
|
{
|
|
exFile = new FileInfo(templateFilename);
|
|
}
|
|
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
|
|
_elmeletGyakorlat = elmeletGyakorlat;
|
|
//Munkalap tulajdonságok beállítása
|
|
SetWorkbookProperties();
|
|
}
|
|
|
|
public override void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1)
|
|
{
|
|
// Adatforrás összeállítása
|
|
SetExcelDataSet(ds);
|
|
DataTable fejlecDt = DataSet.Tables[0];
|
|
var dv = DataSet.Tables[1].DefaultView;
|
|
dv.Sort = "OsztalyNev ASC,TanuloNev ASC";
|
|
DataTable mulasztasokDt = dv.ToTable(DataSet.Tables[1].TableName);
|
|
|
|
//Munkalap összeállítása
|
|
string osztalyNev = fejlecDt.Rows.Cast<DataRow>().First(x => (int)x["OsztalyId"] == osztalyId)["OsztalyNev"].ToString();
|
|
ExcelWorksheet worksheet;
|
|
int startRow = 2;
|
|
if (ExcelPackage.Workbook.Worksheets.All(x => x.Name != osztalyNev))
|
|
{
|
|
if (_elmeletGyakorlat)
|
|
{
|
|
worksheet = CreateSheet(osztalyNev, sheetIndex, eOrientation.Landscape, true);
|
|
worksheet.Row(1).Height = 15;
|
|
worksheet.Row(2).Height = 15;
|
|
worksheet.Row(3).Height = 15;
|
|
worksheet.View.FreezePanes(4, 2);
|
|
|
|
//Fejléc kialakítása
|
|
AddLabelRange(worksheet, 1, 1, 3, 1, "Tanuló neve", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 2, 3, 2, "Oktatási azonosító", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 3, 3, 3, "Osztály", DocheaderStyleSideBordered);
|
|
|
|
AddLabelRange(worksheet, 1, 4, 1, 18, "Gyakorlati", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 19, 1, 37, "Elméleti", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 38, 2, 48, "Igazolások típusa", DocheaderStyleSideBordered);
|
|
|
|
AddLabelRange(worksheet, 2, 4, 2, 6, "Tanórai hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 7, 2, 9, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 10, 2, 12, "Tanórai késések száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 13, 2, 15, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 16, 2, 18, "Tanóráról késett órák", DocheaderStyleSideBordered);
|
|
|
|
AddLabelRange(worksheet, 2, 19, 2, 21, "Tanórai hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 22, 2, 24, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 25, 2, 27, "Tanórai késések száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 28, 2, 30, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 31, 2, 33, "Tanóráról késett órák", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 34, 2, 35, "Hozott hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 2, 36, 2, 37, "Hozott késett perc", DocheaderStyleSideBordered);
|
|
|
|
for (int i = 0; i < 10; ++i)
|
|
{
|
|
AddLabelCell(worksheet, 3, 4 + (i * 3), "Igazolandó", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 5 + (i * 3), "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 6 + (i * 3), "Igazolatlan", DocheaderStyleSideBordered);
|
|
}
|
|
AddLabelCell(worksheet, 3, 34, "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 35, "Igazolatlan", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 36, "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 37, "Igazolatlan", DocheaderStyleSideBordered);
|
|
|
|
AddLabelCell(worksheet, 3, 38, "Orvosi igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 39, "Gondviselői igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 40, "Hivatalos távollét", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 41, "Iskolaérdekű távollét", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 42, "Szolgáltatói igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 43, "Iskolai engedély", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 44, "Pályaválasztási célú igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 45, "Kikérő", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 46, "Táppénz", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 47, "Hatósági házi karantén", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 3, 48, "Egyéb", DocheaderStyleSideBordered);
|
|
|
|
}
|
|
else
|
|
{
|
|
worksheet = CreateSheet(osztalyNev, sheetIndex, eOrientation.Landscape, true);
|
|
worksheet.Row(1).Height = 15;
|
|
worksheet.Row(2).Height = 15;
|
|
worksheet.View.FreezePanes(3, 2);
|
|
|
|
//Fejléc kialakítása
|
|
AddLabelRange(worksheet, 1, 1, 2, 1, "Tanuló neve", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 2, 2, 2, "Oktatási azonosító", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 3, 2, 3, "Osztály", DocheaderStyleSideBordered);
|
|
|
|
AddLabelRange(worksheet, 1, 4, 1, 6, "Tanórai hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 7, 1, 9, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 10, 1, 12, "Tanórai késések száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 13, 1, 15, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 16, 1, 18, "Tanóráról késett órák", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 19, 1, 20, "Hozott hiányzás", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 21, 1, 22, "Hozott késett perc", DocheaderStyleSideBordered);
|
|
AddLabelRange(worksheet, 1, 23, 1, 33, "Igazolások típusa", DocheaderStyleSideBordered);
|
|
|
|
for (int i = 0; i < 5; ++i)
|
|
{
|
|
AddLabelCell(worksheet, 2, 4 + (i * 3), "Igazolandó", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 5 + (i * 3), "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 6 + (i * 3), "Igazolatlan", DocheaderStyleSideBordered);
|
|
}
|
|
AddLabelCell(worksheet, 2, 19, "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 20, "Igazolatlan", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 21, "Igazolt", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 22, "Igazolatlan", DocheaderStyleSideBordered);
|
|
|
|
AddLabelCell(worksheet, 2, 23, "Orvosi igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 24, "Gondviselői igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 25, "Hivatalos távollét", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 26, "Iskolaérdekű távollét", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 27, "Szolgáltatói igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 28, "Iskolai engedély", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 29, "Pályaválasztási célú igazolás", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 30, "Kikérő", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 31, "Táppénz", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 32, "Hatósági házi karantén", DocheaderStyleSideBordered);
|
|
AddLabelCell(worksheet, 2, 33, "Egyéb", DocheaderStyleSideBordered);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
worksheet = ExcelPackage.Workbook.Worksheets.Single(x => x.Name == osztalyNev);
|
|
}
|
|
|
|
startRow = worksheet.Dimension.End.Row + 1;
|
|
string[] columns;
|
|
if (_elmeletGyakorlat)
|
|
{
|
|
columns = new string[]
|
|
{
|
|
"TanuloNev"
|
|
, "TanuloOktAzon"
|
|
, "OsztalyNev"
|
|
, "TanoraiHianyzasIgazolandoGyakorlati"
|
|
, "TanoraiHianyzasIgazoltGyakorlati"
|
|
, "TanoraiHianyzasIgazolatlanGyakorlati"
|
|
, "TanoranKivuliHianyzasIgazolandoGyakorlati"
|
|
, "TanoranKivuliHianyzasIgazoltGyakorlati"
|
|
, "TanoranKivuliHianyzasIgazolatlanGyakorlati"
|
|
, "TanoraiKesesDarabszamIgazolandoGyakorlati"
|
|
, "TanoraiKesesDarabszamIgazoltGyakorlati"
|
|
, "TanoraiKesesDarabszamIgazolatlanGyakorlati"
|
|
, "TanoraiKesesIgazolandoGyakorlatiPerc"
|
|
, "TanoraiKesesIgazoltGyakorlatiPerc"
|
|
, "TanoraiKesesIgazolatlanGyakorlatiPerc"
|
|
, "SzamitottKesesIgazolandoGyakorlati"
|
|
, "SzamitottKesesIgazoltGyakorlati"
|
|
, "SzamitottKesesIgazolatlanGyakorlati"
|
|
, "TanoraiHianyzasIgazolandoElmeleti"
|
|
, "TanoraiHianyzasIgazoltElmeleti"
|
|
, "TanoraiHianyzasIgazolatlanElmeleti"
|
|
, "TanoranKivuliHianyzasIgazolandoElmeleti"
|
|
, "TanoranKivuliHianyzasIgazoltElmeleti"
|
|
, "TanoranKivuliHianyzasIgazolatlanElmeleti"
|
|
, "TanoraiKesesDarabszamIgazolandoElmeleti"
|
|
, "TanoraiKesesDarabszamIgazoltElmeleti"
|
|
, "TanoraiKesesDarabszamIgazolatlanElmeleti"
|
|
, "TanoraiKesesIgazolandoElmeletiPerc"
|
|
, "TanoraiKesesIgazoltElmeletiPerc"
|
|
, "TanoraiKesesIgazolatlanElmeletiPerc"
|
|
, "SzamitottKesesIgazolandoElmeleti"
|
|
, "SzamitottKesesIgazoltElmeleti"
|
|
, "SzamitottKesesIgazolatlanElmeleti"
|
|
, "HozottIgazoltHianyzas"
|
|
, "HozottIgazolatlanHianyzas"
|
|
, "HozottIgazoltHianyzasPerc"
|
|
, "HozottIgazolatlanKesesPerc"
|
|
, "OrvosiIgazolas"
|
|
, "SzuloiIgazolas"
|
|
, "HivatalosTavolletIgazolas"
|
|
, "IskolaerdekuTavolletIgazolas"
|
|
, "SzolgaltatoiIgazolas"
|
|
, "IskolaiEngedelyIgazolas"
|
|
, "PalyavalasztasiCeluIgazolas"
|
|
, "KikeroIgazolas"
|
|
, "TappenzIgazolas"
|
|
, "HatosagiHaziKaranten"
|
|
, "EgyebIgazolas"
|
|
};
|
|
}
|
|
else
|
|
{
|
|
columns = new string[]
|
|
{
|
|
"TanuloNev"
|
|
, "TanuloOktAzon"
|
|
, "OsztalyNev"
|
|
, "TanoraiHianyzasIgazolando"
|
|
, "TanoraiHianyzasIgazolt"
|
|
, "TanoraiHianyzasIgazolatlan"
|
|
, "TanoranKivuliHianyzasIgazolando"
|
|
, "TanoranKivuliHianyzasIgazolt"
|
|
, "TanoranKivuliHianyzasIgazolatlan"
|
|
, "TanoraiKesesDarabszamIgazolando"
|
|
, "TanoraiKesesDarabszamIgazolt"
|
|
, "TanoraiKesesDarabszamIgazolatlan"
|
|
, "TanoraiKesesIgazolandoPerc"
|
|
, "TanoraiKesesIgazoltPerc"
|
|
, "TanoraiKesesIgazolatlanPerc"
|
|
, "SzamitottKesesIgazolando"
|
|
, "SzamitottKesesIgazolt"
|
|
, "SzamitottKesesIgazolatlan"
|
|
, "HozottIgazoltHianyzas"
|
|
, "HozottIgazolatlanHianyzas"
|
|
, "HozottIgazoltHianyzasPerc"
|
|
, "HozottIgazolatlanKesesPerc"
|
|
, "OrvosiIgazolas"
|
|
, "SzuloiIgazolas"
|
|
, "HivatalosTavolletIgazolas"
|
|
, "IskolaerdekuTavolletIgazolas"
|
|
, "SzolgaltatoiIgazolas"
|
|
, "IskolaiEngedelyIgazolas"
|
|
, "PalyavalasztasiCeluIgazolas"
|
|
, "KikeroIgazolas"
|
|
, "TappenzIgazolas"
|
|
, "HatosagiHaziKaranten"
|
|
, "EgyebIgazolas"
|
|
};
|
|
}
|
|
|
|
AddDataTable(worksheet, startRow, 1, mulasztasokDt, "OsztalyId=" + osztalyId, NormalStyle, HeaderStyle, dtCols: columns);
|
|
worksheet.Column(1).AutoFit(18);
|
|
for (var i = 2; i <= mulasztasokDt.Columns.Count; ++i)
|
|
{
|
|
worksheet.Column(i).AutoFit(11);
|
|
}
|
|
}
|
|
}
|
|
}
|