kreta/Kreta.BusinessLogic/Helpers/Nyomtatvanyok/Excel/OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika.cs
2024-03-13 00:33:46 +01:00

74 lines
4 KiB
C#

using System.Collections.Generic;
using System.Data;
using System.IO;
using Kreta.Core.ConnectionType;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika : BaseNyomtatvanyExcel
{
public OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
{
StoredProcedure = "sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika";
FileInfo exFile = null;
if (templateFilename != null)
{
exFile = new FileInfo(templateFilename);
}
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
//Munkalap tulajdonságok beállítása
SetWorkbookProperties();
}
public override void CreateSheet(Dictionary<string, string> dbParameters, int sheetIndex = 1)
{
DbParameters = dbParameters;
// Adatforrás összeállítása
SetExcelDataSet();
DataAccessManual.Util.DataAccessBase.SetBoolFields(DataSet.Tables[4], "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram");
DataTable tanulosDt = DataSet.Tables[0];
DataTable tantargyDt = DataSet.Tables[1];
DataTable mulasztasSzazalekDt = DataSet.Tables[2];
DataTable mulasztasGyakSzazalekDt = DataSet.Tables[3];
DataTable osztalyDt = DataSet.Tables[4];
//Munkalap összeállítása
ExcelWorksheet worksheet = CreateSheet((isMultisheetExcel) ? osztalyDt.Rows[0]["Osztalynev"].ToString() : Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztikaMunkalapnev, sheetIndex, eOrientation.Landscape, true, 2);
worksheet.Row(1).Height = 120;
worksheet.Column(1).Width = 30;
worksheet.Column(2).Width = 13;
worksheet.View.FreezePanes(2, 2);
for (int col = 2; col <= tantargyDt.Columns.Count; col++)
worksheet.Column(col + 1).Width = 7;
int[] retDim = AddDataTablePivotTable(worksheet, 1, 1,
tantargyDt, "TANTARGYID", "TANTARGY_NEV",
tanulosDt, "TANULOID", new[] { "TANULONEV", "OKTATASIAZONOSITO" },
mulasztasSzazalekDt, PercentStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "MulasztasArany" },
new[] { "Info" },
new[] { "AVERAGE" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztikaTanuloiAtlag }, new[] { PercentBoldStyleBottomBordered },
new[] { "AVERAGE" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztikaTantargyiAtlag }, new[] { PercentBoldStyleBottomBordered });
var osszesitettGyakorlatiDtCreatorArray = new List<string[]>
{
new[] { "id", "name", "gyakorlati" },
new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztikaOsszesitett, "T" }
};
//Hiányzó fejlécek beállítása
AddTanuloAdatokFejlec(worksheet, 1);
retDim = AddDataTablePivotTable(worksheet, 1, retDim[1] + 1,
CreateDataTable(osszesitettGyakorlatiDtCreatorArray), "gyakorlati", "name",
tanulosDt, "TANULOID", null,
mulasztasGyakSzazalekDt, PercentStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "MulasztasArany" },
new[] { "Info" },
null, null, null,
new[] { "AVERAGE" }, new[] { "" }, new[] { PercentBoldStyleBottomBordered });
}
}
}