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 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 { 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 }); } } }