init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,268 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Resources;
|
||||
using OfficeOpenXml;
|
||||
using OfficeOpenXml.Style;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
|
||||
{
|
||||
public class HianyzokEsJelenlevokSzama : BaseNyomtatvanyExcel
|
||||
{
|
||||
private readonly CellStyle OsztalyHeaderStyle;
|
||||
private readonly CellStyle DarabSzamaHeaderStyle;
|
||||
private readonly CellStyle StartSzamHeaderStyle;
|
||||
private readonly CellStyle SzamHeaderStyle;
|
||||
private readonly CellStyle EndSzamHeaderStyle;
|
||||
private readonly CellStyle TopRightDoubleStyle;
|
||||
private readonly CellStyle TopLeftDoubleStyle;
|
||||
private readonly CellStyle TopDoubleStyle;
|
||||
private readonly CellStyle LeftDoubleStyle;
|
||||
private readonly CellStyle RightDoubleStyle;
|
||||
private readonly CellStyle ThinStyle;
|
||||
|
||||
private const string Gray = "#AAAAAA";
|
||||
|
||||
public HianyzokEsJelenlevokSzama(IConnectionType connectionType) : base(connectionType)
|
||||
{
|
||||
StoredProcedure = "uspGetHianyzokEsJelenlevokSzama";
|
||||
ExcelPackage = new ExcelPackage();
|
||||
|
||||
//Stílusok
|
||||
NamedCellStyles.Add(nameof(OsztalyHeaderStyle), OsztalyHeaderStyle =
|
||||
new CellStyle(nameof(OsztalyHeaderStyle))
|
||||
{
|
||||
FontBold = true,
|
||||
RightBorder = ExcelBorderStyle.Double,
|
||||
BottomBorder = ExcelBorderStyle.Double,
|
||||
HorizontalAlignment = ExcelHorizontalAlignment.Center,
|
||||
VerticalAlignment = ExcelVerticalAlignment.Center
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(DarabSzamaHeaderStyle), DarabSzamaHeaderStyle =
|
||||
new CellStyle(nameof(DarabSzamaHeaderStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Double,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Double,
|
||||
TopBorder = ExcelBorderStyle.Thin,
|
||||
HorizontalAlignment = ExcelHorizontalAlignment.Center
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(StartSzamHeaderStyle), StartSzamHeaderStyle =
|
||||
new CellStyle(nameof(StartSzamHeaderStyle))
|
||||
{
|
||||
FontBold = true,
|
||||
BgColorHex = Gray,
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Double,
|
||||
LeftBorder = ExcelBorderStyle.Double,
|
||||
TopBorder = ExcelBorderStyle.Thin,
|
||||
HorizontalAlignment = ExcelHorizontalAlignment.Center,
|
||||
VerticalAlignment = ExcelVerticalAlignment.Center
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(SzamHeaderStyle), SzamHeaderStyle = new CellStyle(nameof(SzamHeaderStyle))
|
||||
{
|
||||
FontBold = true,
|
||||
BgColorHex = Gray,
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Double,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Thin,
|
||||
HorizontalAlignment = ExcelHorizontalAlignment.Center,
|
||||
VerticalAlignment = ExcelVerticalAlignment.Center
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(EndSzamHeaderStyle), EndSzamHeaderStyle =
|
||||
new CellStyle(nameof(EndSzamHeaderStyle))
|
||||
{
|
||||
FontBold = true,
|
||||
BgColorHex = Gray,
|
||||
RightBorder = ExcelBorderStyle.Double,
|
||||
BottomBorder = ExcelBorderStyle.Double,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Thin,
|
||||
HorizontalAlignment = ExcelHorizontalAlignment.Center,
|
||||
VerticalAlignment = ExcelVerticalAlignment.Center
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(TopRightDoubleStyle), TopRightDoubleStyle =
|
||||
new CellStyle(nameof(TopRightDoubleStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Double,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Double,
|
||||
WrapText = true
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(TopLeftDoubleStyle), TopLeftDoubleStyle =
|
||||
new CellStyle(nameof(TopLeftDoubleStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Double,
|
||||
TopBorder = ExcelBorderStyle.Double
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(TopDoubleStyle), TopDoubleStyle = new CellStyle(nameof(TopDoubleStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Double
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(LeftDoubleStyle), LeftDoubleStyle = new CellStyle(nameof(LeftDoubleStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Double,
|
||||
TopBorder = ExcelBorderStyle.Thin
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(RightDoubleStyle), RightDoubleStyle = new CellStyle(nameof(RightDoubleStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Double,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Thin,
|
||||
WrapText = true
|
||||
});
|
||||
|
||||
NamedCellStyles.Add(nameof(ThinStyle), ThinStyle = new CellStyle(nameof(ThinStyle))
|
||||
{
|
||||
RightBorder = ExcelBorderStyle.Thin,
|
||||
BottomBorder = ExcelBorderStyle.Thin,
|
||||
LeftBorder = ExcelBorderStyle.Thin,
|
||||
TopBorder = ExcelBorderStyle.Thin
|
||||
});
|
||||
|
||||
//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();
|
||||
|
||||
var table = DataSet.Tables[0];
|
||||
|
||||
var rows = table.Rows.Cast<DataRow>();
|
||||
|
||||
var groupByHonapRows = rows.GroupBy(g => g["Honap"])
|
||||
.Select(s =>
|
||||
new
|
||||
{
|
||||
Honap = SDAConvert.ToString(s.Key),
|
||||
Data = s
|
||||
}).ToList();
|
||||
|
||||
var index = 1;
|
||||
|
||||
foreach (var honapGroup in groupByHonapRows)
|
||||
{
|
||||
// Munkalap összeállítása
|
||||
var worksheet = CreateSheet(honapGroup.Honap, index, eOrientation.Landscape, true, 2);
|
||||
|
||||
worksheet.Row(2).Height = 30;
|
||||
worksheet.Column(1).Width = 35;
|
||||
|
||||
// headers
|
||||
AddLabelRange(worksheet, 1, 1, 2, 1, ExcelNyomtatvanyResource.Osztaly, OsztalyHeaderStyle);
|
||||
AddLabelRange(worksheet, 1, 2, 1, 32, ExcelNyomtatvanyResource.HianyzoTanulokSzama,
|
||||
DarabSzamaHeaderStyle);
|
||||
AddLabelRange(worksheet, 1, 2 + 31, 1, 32 + 31, ExcelNyomtatvanyResource.JelenlevoTanulokSzama,
|
||||
DarabSzamaHeaderStyle);
|
||||
|
||||
// subheaders
|
||||
for (var i = 1; i < 32; i++)
|
||||
{
|
||||
worksheet.Column(1 + i).Width = 6;
|
||||
worksheet.Column(1 + i + 31).Width = 6;
|
||||
|
||||
AddLabelCell(worksheet, 2, 1 + i, i.ToString(),
|
||||
i == 1 ? StartSzamHeaderStyle : i == 31 ? EndSzamHeaderStyle : SzamHeaderStyle);
|
||||
AddLabelCell(worksheet, 2, 1 + i + 31, i.ToString(),
|
||||
i == 1 ? StartSzamHeaderStyle : i == 31 ? EndSzamHeaderStyle : SzamHeaderStyle);
|
||||
}
|
||||
|
||||
var rowIndex = 3;
|
||||
|
||||
var groupByOsztalyRows = honapGroup.Data.GroupBy(g => g["OsztalyNev"])
|
||||
.Select(s =>
|
||||
new
|
||||
{
|
||||
Osztaly = SDAConvert.ToString(s.Key),
|
||||
Data = s
|
||||
}).ToList();
|
||||
|
||||
foreach (var osztalyGroup in groupByOsztalyRows)
|
||||
{
|
||||
var firstRow = rowIndex == 3;
|
||||
|
||||
AddLabelCell(worksheet, rowIndex, 1, SDAConvert.ToString(osztalyGroup.Osztaly),
|
||||
firstRow ? TopRightDoubleStyle : RightDoubleStyle);
|
||||
|
||||
for (var j = 1; j < 32; j++)
|
||||
{
|
||||
var value = osztalyGroup.Data.Where(x =>
|
||||
SDAConvert.ToBooleanFromTF(x["IsTanitasiNap"]) && SDAConvert.ToInt32(x["Nap"]) == j)
|
||||
.Select(s =>
|
||||
new
|
||||
{
|
||||
Hianyzas = SDAConvert.ToNullableInt32(s["Hianyzas"]),
|
||||
Letszam = SDAConvert.ToNullableInt32(s["Letszam"])
|
||||
}).FirstOrDefault();
|
||||
|
||||
var hianyzo = value?.Letszam == null ? null : value.Hianyzas;
|
||||
|
||||
var jelenlevo = hianyzo == null
|
||||
? null
|
||||
: value.Letszam - hianyzo;
|
||||
|
||||
var style = j == 1
|
||||
? firstRow ? TopLeftDoubleStyle : LeftDoubleStyle
|
||||
: j == 31
|
||||
? firstRow ? TopRightDoubleStyle : RightDoubleStyle
|
||||
: firstRow
|
||||
? TopDoubleStyle
|
||||
: ThinStyle;
|
||||
|
||||
AddNumberCell(worksheet, rowIndex, 1 + j, hianyzo, style);
|
||||
|
||||
AddNumberCell(worksheet, rowIndex, 1 + j + 31, jelenlevo, style);
|
||||
}
|
||||
|
||||
rowIndex++;
|
||||
}
|
||||
|
||||
AddLabelCell(worksheet, rowIndex, 1, AdatszolgaltatasokResource.Osszesen, RightDoubleStyle);
|
||||
|
||||
// szumma
|
||||
for (var k = 1; k < 32; k++)
|
||||
{
|
||||
var style = k == 1
|
||||
? LeftDoubleStyle
|
||||
: k == 31
|
||||
? RightDoubleStyle
|
||||
: ThinStyle;
|
||||
|
||||
AddAggregateFormulaCell(worksheet, rowIndex, 1 + k, "SUM", 3, 1 + k, rowIndex - 1, 1 + k, true,
|
||||
style);
|
||||
|
||||
AddAggregateFormulaCell(worksheet, rowIndex, 1 + k + 31, "SUM", 3, 1 + k + 31, rowIndex - 1,
|
||||
1 + k + 31, true, style);
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue