using System; using System.Collections.Generic; using System.Data; using System.IO; using Kreta.Core.ConnectionType; using OfficeOpenXml; namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel { public class OsztalyokCsoportokTantargyiStatisztika : BaseNyomtatvanyExcel { public OsztalyokCsoportokTantargyiStatisztika(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel) { StoredProcedure = "sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika"; 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; dbParameters.TryGetValue("pErtekelestipusaId", out string ertekelesTipusaId); if (string.IsNullOrWhiteSpace(ertekelesTipusaId)) ertekelesTipusaId = Convert.ToString(Enums.ErtekelesTipusEnum.evvegi_jegy_ertekeles); // Adatforrás összeállítása SetExcelDataSet(); DataTable ocsDt = DataSet.Tables[0]; DataTable tantargyDt = DataSet.Tables[1]; DataTable tantargyiAtlagDt = DataSet.Tables[2]; DataAccessManual.Util.DataAccessBase.SetBoolFields(DataSet.Tables[3], "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram"); DataAccessManual.Util.DataAccessBase.SetBoolFields(DataSet.Tables[4], "OJCSJKeresztfeleves,CSJVegzosEvfolyamu"); //Munkalap összeállítása ExcelWorksheet worksheet = CreateSheet(Resources.ExcelNyomtatvanyResource.ResourceManager.GetString("OsztalyokCsoportokTantargyiStatisztikaMunkalapnev_" + ertekelesTipusaId), sheetIndex, eOrientation.Landscape, true, 2); worksheet.Row(1).Height = 120; worksheet.Column(1).Width = 30; worksheet.Column(2).Width = 3; worksheet.View.FreezePanes(2, 3); for (int col = 3; col <= tantargyDt.Rows.Count + 3; col++) worksheet.Column(col).Width = 7; string[] adatMezo = { "ATLAG" }; int[] retDimErtekeles = AddDataTablePivotTable(worksheet, 1, 1, tantargyDt, "TANTARGYID", "TANTARGY_NEV", ocsDt, "TECHNIKAIID", new[] { "OSZTALYCSOPORTNEV", "AKTUALISLETSZAM" }, tantargyiAtlagDt, Numeric2StyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, new[] { "AVERAGE" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyCsoportStatisztikaCsoportAtlag }, new[] { Numeric2BoldStyleBottomBordered }, new[] { "AVERAGE" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag }, new[] { Numeric2BoldStyleBottomBordered }); AddLabelCell(worksheet, 1, 1, Resources.ExcelNyomtatvanyResource.OsztalyCsoportStatisztikaCsoportNevek, HeaderStyleBottomBordered); AddLabelCell(worksheet, 1, 2, Resources.ExcelNyomtatvanyResource.OsztalyCsoportStatisztikaCsoportAktualisLetszam, HeaderStyle90BottomBordered); } } }