74 lines
4 KiB
C#
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 });
|
|
}
|
|
}
|
|
}
|