This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,998 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using Kreta.Core.ConnectionType;
using Kreta.Resources;
using OfficeOpenXml;
using OfficeOpenXml.Style;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public abstract class BaseNyomtatvanyExcel : IDisposable
{
private const string ConstFontName = "Calibri";
protected class CellStyle
{
public string Name { get; set; }
/// integer (not really needed unless you need to round numbers, Excel with use default cell properties) --> "0"
/// integer without displaying the number 0 in the cell --> "#"
/// number with 1 decimal place --> "0.0"
/// number with 2 decimal places --> "0.00"
/// number with 2 decimal places and thousand separator --> "#,##0.00"
/// number with 2 decimal places and thousand separator and money symbol --> "€#,##0.00"
/// percentage (1 = 100%, 0.01 = 1%) --> "0%"
public string Numberformat { get; set; } = "0";
public string BgColorHex { get; set; } = "transparent";
public bool FontBold { get; set; }
public int FontSize { get; set; } = 11;
public string FontName { get; set; } = ConstFontName;
public string FontColorHex { get; set; } = "automatic";
public int TextRotation { get; set; }
public bool WrapText { get; set; }
public ExcelBorderStyle LeftBorder { get; set; } = ExcelBorderStyle.None;
public ExcelBorderStyle RightBorder { get; set; } = ExcelBorderStyle.None;
public ExcelBorderStyle TopBorder { get; set; } = ExcelBorderStyle.None;
public ExcelBorderStyle BottomBorder { get; set; } = ExcelBorderStyle.None;
public ExcelHorizontalAlignment HorizontalAlignment { get; set; } = ExcelHorizontalAlignment.Left;
public ExcelVerticalAlignment VerticalAlignment { get; set; } = ExcelVerticalAlignment.Center;
public CellStyle()
{ }
public CellStyle(string Name)
{
this.Name = Name;
}
public CellStyle(BaseNyomtatvanyExcel.CellStyle prevCellStyle)
{
Numberformat = prevCellStyle.Numberformat;
BgColorHex = prevCellStyle.BgColorHex;
FontBold = prevCellStyle.FontBold;
FontSize = prevCellStyle.FontSize;
FontName = prevCellStyle.FontName;
FontColorHex = prevCellStyle.FontColorHex;
TextRotation = prevCellStyle.TextRotation;
WrapText = prevCellStyle.WrapText;
LeftBorder = prevCellStyle.LeftBorder;
RightBorder = prevCellStyle.RightBorder;
TopBorder = prevCellStyle.TopBorder;
BottomBorder = prevCellStyle.BottomBorder;
HorizontalAlignment = prevCellStyle.HorizontalAlignment;
VerticalAlignment = prevCellStyle.VerticalAlignment;
}
}
protected string Author = "";
protected ExcelPackage ExcelPackage;
protected DataSet DataSet;
protected string StoredProcedure = null;
protected Dictionary<string, string> DbParameters = new Dictionary<string, string>();
protected Dictionary<string, CellStyle> NamedCellStyles = new Dictionary<string, CellStyle>();
protected CellStyle NormalStyle = null;
protected CellStyle NormalStyleWrapText = null;
protected CellStyle HeaderStyle = null;
protected CellStyle HeaderStyle90 = null;
protected CellStyle IntegerStyle = null;
protected CellStyle IntegerBoldStyle = null;
protected CellStyle Numeric2Style = null;
protected CellStyle Numeric2BoldStyle = null;
protected CellStyle NormalStyleBottomBordered = null;
protected CellStyle NormalStyleCentered = null;
protected CellStyle HeaderStyleBottomBordered = null;
protected CellStyle HeaderStyle90BottomBordered = null;
protected CellStyle IntegerStyleBottomBordered = null;
protected CellStyle IntegerBoldStyleBottomBordered = null;
protected CellStyle Numeric2StyleBottomBordered = null;
protected CellStyle Numeric2BoldStyleBottomBordered = null;
protected CellStyle HeaderStyleBottomBorderedBGGray = null;
protected CellStyle HeaderStyle90BottomBorderedBGGray = null;
protected CellStyle DocnameStyle = null;
protected CellStyle DocheaderStyle1 = null;
protected CellStyle DocheaderStyle2 = null;
protected CellStyle DocheaderStyleSideBordered = null;
protected CellStyle DocheaderStyleMergedUpperCell = null;
protected CellStyle DocheaderStyleMergedLowerCell = null;
protected CellStyle DocheaderStyleCenteredWithoutBorder = null;
protected CellStyle Numeric2BoldBigerStyleBottomBordered = null;
protected CellStyle PercentStyleBottomBordered = null;
protected CellStyle PercentBoldStyleBottomBordered = null;
protected bool isMultisheetExcel;
private IConnectionType _connectionType;
public DataSet GetSheetDataSet()
=> DataSet;
protected BaseNyomtatvanyExcel(IConnectionType connectionType, bool isMultisheetExcel = false)
{
_connectionType = connectionType;
this.isMultisheetExcel = isMultisheetExcel;
NamedCellStyles.Add("NormalStyle", NormalStyle = new CellStyle("NormalStyle"));
NamedCellStyles.Add("NormalStyleWrapText", NormalStyleWrapText = new CellStyle(NamedCellStyles["NormalStyle"]) { Name = "NormalStyleWrapText", WrapText = true });
NamedCellStyles.Add("HeaderStyle", HeaderStyle = new CellStyle("HeaderStyle") { FontBold = true, WrapText = true });
NamedCellStyles.Add("HeaderStyle90", HeaderStyle90 = new CellStyle(NamedCellStyles["HeaderStyle"]) { Name = "HeaderStyle90", TextRotation = 90, HorizontalAlignment = ExcelHorizontalAlignment.Center, VerticalAlignment = ExcelVerticalAlignment.Bottom });
NamedCellStyles.Add("IntegerStyle", IntegerStyle = new CellStyle("IntegerStyle") { Numberformat = "0", HorizontalAlignment = ExcelHorizontalAlignment.Center });
NamedCellStyles.Add("IntegerBoldStyle", IntegerBoldStyle = new CellStyle(NamedCellStyles["IntegerStyle"]) { Name = "IntegerBoldStyle", FontBold = true });
NamedCellStyles.Add("Numeric2Style", Numeric2Style = new CellStyle("Numeric2Style") { Numberformat = "0.00", HorizontalAlignment = ExcelHorizontalAlignment.Center });
NamedCellStyles.Add("Numeric2BoldStyle", Numeric2BoldStyle = new CellStyle(NamedCellStyles["Numeric2Style"]) { Name = "Numeric2BoldStyle", FontBold = true });
NamedCellStyles.Add("NormalStyleBottomBordered", NormalStyleBottomBordered = new CellStyle("NormalStyleBottomBordered")
{
TopBorder = ExcelBorderStyle.None,
LeftBorder = ExcelBorderStyle.None,
BottomBorder = ExcelBorderStyle.Thin,
RightBorder = ExcelBorderStyle.None,
});
NamedCellStyles.Add("NormalStyleCentered", NormalStyleCentered = new CellStyle("NormalStyleCentered")
{
HorizontalAlignment = ExcelHorizontalAlignment.Center,
VerticalAlignment = ExcelVerticalAlignment.Center,
WrapText = true
});
NamedCellStyles.Add("HeaderStyleBottomBordered", HeaderStyleBottomBordered = new CellStyle(NamedCellStyles["NormalStyleBottomBordered"]) { Name = "HeaderStyleBottomBordered", FontBold = true, WrapText = true });
NamedCellStyles.Add("HeaderStyle90BottomBordered", HeaderStyle90BottomBordered = new CellStyle(NamedCellStyles["HeaderStyleBottomBordered"]) { Name = "HeaderStyle90BottomBordered", TextRotation = 90, HorizontalAlignment = ExcelHorizontalAlignment.Center, VerticalAlignment = ExcelVerticalAlignment.Bottom });
NamedCellStyles.Add("IntegerStyleBottomBordered", IntegerStyleBottomBordered = new CellStyle(NamedCellStyles["NormalStyleBottomBordered"]) { Name = "IntegerStyleBottomBordered", Numberformat = "0", HorizontalAlignment = ExcelHorizontalAlignment.Center });
NamedCellStyles.Add("IntegerBoldStyleBottomBordered", IntegerBoldStyleBottomBordered = new CellStyle(NamedCellStyles["IntegerStyleBottomBordered"]) { Name = "IntegerBoldStyleBottomBordered", FontBold = true });
NamedCellStyles.Add("Numeric2StyleBottomBordered", Numeric2StyleBottomBordered = new CellStyle(NamedCellStyles["NormalStyleBottomBordered"]) { Name = "Numeric2StyleBottomBordered", Numberformat = "0.00", HorizontalAlignment = ExcelHorizontalAlignment.Center });
NamedCellStyles.Add("Numeric2BoldStyleBottomBordered", Numeric2BoldStyleBottomBordered = new CellStyle(NamedCellStyles["Numeric2StyleBottomBordered"]) { Name = "Numeric2BoldStyleBottomBordered", FontBold = true });
NamedCellStyles.Add("HeaderStyleBottomBorderedBGGray", HeaderStyleBottomBorderedBGGray = new CellStyle(NamedCellStyles["HeaderStyleBottomBordered"]) { Name = "HeaderStyleBottomBorderedBGGray", BgColorHex = "#AAAAAA" });
NamedCellStyles.Add("HeaderStyle90BottomBorderedBGGray", HeaderStyle90BottomBorderedBGGray = new CellStyle(NamedCellStyles["HeaderStyle90BottomBordered"]) { Name = "HeaderStyle90BottomBorderedBGGray", BgColorHex = "#AAAAAA" });
NamedCellStyles.Add("DocnameStyle", DocnameStyle = new CellStyle(NamedCellStyles["HeaderStyle"]) { Name = "DocnameStyle", FontSize = 16 });
NamedCellStyles.Add("DocheaderStyle1", DocheaderStyle1 = new CellStyle(NamedCellStyles["HeaderStyle"])
{
Name = "DocheaderStyle1",
FontColorHex = "#FFFFFF",
BgColorHex = "#18A0C8",
HorizontalAlignment = ExcelHorizontalAlignment.Left,
VerticalAlignment = ExcelVerticalAlignment.Center
});
NamedCellStyles.Add("DocheaderStyleSideBordered", DocheaderStyleSideBordered = new CellStyle(NamedCellStyles["HeaderStyle"])
{
Name = "DocheaderStyleSideBordered",
FontColorHex = "#FFFFFF",
BgColorHex = "#18A0C8",
HorizontalAlignment = ExcelHorizontalAlignment.Center,
VerticalAlignment = ExcelVerticalAlignment.Center,
LeftBorder = ExcelBorderStyle.Thin,
RightBorder = ExcelBorderStyle.Thin,
BottomBorder = ExcelBorderStyle.Thin
});
NamedCellStyles.Add("DocheaderStyleMergedUpperCell", DocheaderStyleMergedUpperCell = new CellStyle(NamedCellStyles["HeaderStyle"])
{
Name = "DocheaderStyleMergedUpperCell",
FontColorHex = "#FFFFFF",
BgColorHex = "#18A0C8",
HorizontalAlignment = ExcelHorizontalAlignment.Left,
VerticalAlignment = ExcelVerticalAlignment.Center,
TopBorder = ExcelBorderStyle.Thin,
LeftBorder = ExcelBorderStyle.Thin,
RightBorder = ExcelBorderStyle.Thin
});
NamedCellStyles.Add("DocheaderStyleMergedLowerCell", DocheaderStyleMergedLowerCell = new CellStyle(NamedCellStyles["HeaderStyle"])
{
Name = "DocheaderStyleMergedLowerCell",
HorizontalAlignment = ExcelHorizontalAlignment.Left,
VerticalAlignment = ExcelVerticalAlignment.Center,
LeftBorder = ExcelBorderStyle.Thin,
RightBorder = ExcelBorderStyle.Thin,
BottomBorder = ExcelBorderStyle.Thin
});
NamedCellStyles.Add("DocheaderStyleCenteredWithoutBorder", DocheaderStyleCenteredWithoutBorder = new CellStyle(NamedCellStyles["DocheaderStyle1"])
{
Name = "DocheaderStyleCenteredWithoutBorder",
HorizontalAlignment = ExcelHorizontalAlignment.Center,
VerticalAlignment = ExcelVerticalAlignment.Center,
LeftBorder = ExcelBorderStyle.None,
RightBorder = ExcelBorderStyle.None,
TopBorder = ExcelBorderStyle.None,
BottomBorder = ExcelBorderStyle.None
});
NamedCellStyles.Add("DocheaderStyle2", DocheaderStyle2 = new CellStyle(NamedCellStyles["DocheaderStyle1"]) { Name = "DocheaderStyle2", BgColorHex = "#5D5D5D" });
NamedCellStyles.Add("Numeric2BoldBigerStyleBottomBordered", Numeric2BoldBigerStyleBottomBordered = new CellStyle(NamedCellStyles["Numeric2BoldStyleBottomBordered"]) { Name = "Numeric2BoldBigerStyleBottomBordered", FontSize = 14 });
NamedCellStyles.Add("PercentStyleBottomBordered", PercentStyleBottomBordered = new CellStyle(NamedCellStyles["NormalStyleBottomBordered"]) { Name = "PercentStyleBottomBordered", Numberformat = "0%", HorizontalAlignment = ExcelHorizontalAlignment.Center });
NamedCellStyles.Add("PercentBoldStyleBottomBordered", PercentBoldStyleBottomBordered = new CellStyle(NamedCellStyles["PercentStyleBottomBordered"]) { Name = "PercentBoldStyleBottomBordered", FontBold = true });
}
protected DataTable CreateDataTable(List<string[]> list)
{
var dataTable = new DataTable();
var firstRow = true;
foreach (var listRow in list)
{
if (firstRow)
{
foreach (var hcol in listRow)
dataTable.Columns.Add(hcol);
firstRow = false;
}
else
{
int col = 0;
var dataRow = dataTable.NewRow();
foreach (DataColumn dataColumn in dataTable.Columns)
dataRow[dataColumn.ToString()] = listRow[col++];
dataTable.Rows.Add(dataRow);
}
}
return dataTable;
}
protected void SetExcelDataSet(DataSet ds = null)
{
if (ds == null)
{
if (DbParameters == null || StoredProcedure == null)
{
throw new NullReferenceException("DB Parameterek nincsenek beallitva");
}
DataSet = new NyomtatvanyokHelper(_connectionType).GetNyomtatvanyStoredProcedureDataSet(StoredProcedure, DbParameters);
if (DataSet == null)
{
throw new NoNullAllowedException(StoredProcedure + " SP has no result!");
}
}
else
{
DataSet = ds;
}
}
public abstract void CreateSheet(Dictionary<string, string> dbParameters, int sheetIndex = 1);
public MemoryStream ExcelNyomtatas()
{
return new MemoryStream(ExcelPackage.GetAsByteArray());
}
public MemoryStream ExcelNyomtatas(Dictionary<string, string> dbParameters)
{
if (!isMultisheetExcel)
{
if (dbParameters == null)
{
throw new ApplicationException("Egy lapos excel munkafüzet nyomtatásához az adatbázis paraméterek kötelezőek.");
}
if (ExcelPackage.Workbook.Worksheets.Count > 0)
{
GenerateNewExcelPackage();
SetWorkbookProperties();
}
CreateSheet(dbParameters);
}
return ExcelNyomtatas();
}
protected void SetWorkbookProperties()
{
ExcelPackage.Workbook.Properties.Author = "";
ExcelPackage.Workbook.Properties.Title = "";
ExcelPackage.Workbook.Properties.Company = "";
foreach (KeyValuePair<string, CellStyle> style in NamedCellStyles)
ChangeStyle(ExcelPackage.Workbook.Styles.CreateNamedStyle(style.Key), style.Value);
}
protected void AddNamedStyle(string styleName, CellStyle cellStyle)
=> ChangeStyle(ExcelPackage.Workbook.Styles.CreateNamedStyle(styleName), cellStyle);
protected ExcelWorksheet CreateSheet(string sheetName, int position = 1, eOrientation orientation = eOrientation.Portrait, bool fitToPage = false, int fitToWidth = 1, int fitToHeight = 1, int fontSize = 11, string fontName = ConstFontName)
{
if (sheetName.Length > 31)
{
sheetName = sheetName.Substring(0, 31);
}
ExcelWorksheet worksheet = ExcelPackage.Workbook.Worksheets[sheetName];
if (worksheet == null)
{
worksheet = ExcelPackage.Workbook.Worksheets.Add(sheetName);
worksheet.Cells.Style.Font.Size = fontSize;
worksheet.Cells.Style.Font.Name = fontName;
if (fitToPage)
{
worksheet.PrinterSettings.FitToPage = true;
worksheet.PrinterSettings.FitToWidth = fitToWidth;
worksheet.PrinterSettings.FitToHeight = fitToHeight;
}
worksheet.PrinterSettings.Orientation = orientation;
}
return worksheet;
}
public string ColumnLabel(int col)
{
var dividend = col;
var columnLabel = string.Empty;
while (dividend > 0)
{
var modulo = (dividend - 1) % 26;
columnLabel = Convert.ToChar(65 + modulo) + columnLabel;
dividend = (dividend - modulo) / 26;
}
return columnLabel;
}
protected void AddComment(ExcelWorksheet worksheet, int row, int col, string comment)
{
if (comment != null)
{
var commentCell = worksheet.Cells[row, col];
AddComment(commentCell, comment);
}
}
protected void AddComment(ExcelRange cell, string comment)
{
if (!string.IsNullOrWhiteSpace(comment))
{
cell.AddComment(comment, Author);
cell.Comment.AutoFit = true;
}
}
private ExcelRange AddValueCell(ExcelWorksheet worksheet, int row, int col, object value)
{
if (row < 1 || col < 1)
return null;
var cell = worksheet.Cells[row, col];
cell.Value = value;
return cell;
}
private ExcelRange AddValueRange(ExcelWorksheet worksheet, int startRow, int startCol, int endRow, int endCol, object value)
{
if (startRow < 1 || startCol < 1 || endRow < 1 || endCol < 1)
return null;
var cell = worksheet.Cells[startRow, startCol, endRow, endCol];
cell.Value = value;
worksheet.Cells[startRow, startCol, endRow, endCol].Merge = true;
return cell;
}
private ExcelRange AddFormulaCell(ExcelWorksheet worksheet, int row, int col, string value)
{
if (row < 1 || col < 1)
return null;
worksheet.Workbook.CalcMode = ExcelCalcMode.Automatic;
var cell = worksheet.Cells[row, col];
cell.Formula = value;
return cell;
}
private ExcelRange AddFormulaRange(ExcelWorksheet worksheet, int startRow, int startCol, int endRow, int endCol, string value)
{
if (startRow < 1 || startCol < 1 || endRow < 1 || endCol < 1)
return null;
worksheet.Workbook.CalcMode = ExcelCalcMode.Automatic;
var cell = worksheet.Cells[startRow, startCol, endRow, endCol];
cell.Formula = value;
worksheet.Cells[startRow, startCol, endRow, endCol].Merge = true;
return cell;
}
protected void AddTanuloAdatokFejlec(ExcelWorksheet worksheet, int fejlecRow)
{
var tanuloNevCell = worksheet.Cells[fejlecRow, 1];
tanuloNevCell.Value = TanuloResource.TanuloNeve;
ChangeStyle(tanuloNevCell, HeaderStyleBottomBordered);
var oktatasiAzonositoCell = worksheet.Cells[fejlecRow, 2];
oktatasiAzonositoCell.Value = TanuloResource.OktatasiAzonosito;
ChangeStyle(oktatasiAzonositoCell, HeaderStyleBottomBordered);
}
private void ChangeStyle(ExcelRange cell, CellStyle cellStyle)
=> cell.StyleName = cellStyle.Name;
private void ChangeStyle(OfficeOpenXml.Style.XmlAccess.ExcelNamedStyleXml excelNamedStyleXml, CellStyle cellStyle)
{
excelNamedStyleXml.Style.Numberformat.Format = cellStyle.Numberformat;
excelNamedStyleXml.Style.Font.Bold = cellStyle.FontBold;
excelNamedStyleXml.Style.TextRotation = cellStyle.TextRotation;
excelNamedStyleXml.Style.HorizontalAlignment = cellStyle.HorizontalAlignment;
excelNamedStyleXml.Style.VerticalAlignment = cellStyle.VerticalAlignment;
excelNamedStyleXml.Style.WrapText = cellStyle.WrapText;
var excelStyleBorder = excelNamedStyleXml.Style.Border;
if (cellStyle.BottomBorder != ExcelBorderStyle.None)
excelStyleBorder.Bottom.Style = cellStyle.BottomBorder;
if (cellStyle.TopBorder != ExcelBorderStyle.None)
excelStyleBorder.Top.Style = cellStyle.TopBorder;
if (cellStyle.LeftBorder != ExcelBorderStyle.None)
excelStyleBorder.Left.Style = cellStyle.LeftBorder;
if (cellStyle.RightBorder != ExcelBorderStyle.None)
excelStyleBorder.Right.Style = cellStyle.RightBorder;
ChangeFontColor(excelNamedStyleXml.Style, cellStyle.FontColorHex);
ChangeBgColor(excelNamedStyleXml.Style, cellStyle.BgColorHex);
}
private void ChangeFontColor(ExcelStyle excelStyle, string fontColorHex = "automatic")
{
if (fontColorHex?.Equals("automatic", StringComparison.OrdinalIgnoreCase) == false)
excelStyle.Font.Color.SetColor(System.Drawing.ColorTranslator.FromHtml(fontColorHex));
}
private void ChangeBgColor(ExcelStyle excelStyle, string bgColorHex = "transparent")
{
if (bgColorHex?.Equals("transparent", StringComparison.OrdinalIgnoreCase) == false)
{
excelStyle.Fill.PatternType = ExcelFillStyle.Solid;
excelStyle.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml(bgColorHex));
}
}
private bool AddCellWithTypeCheck(ExcelWorksheet worksheet, int row, int col, object dtvalue, CellStyle cellStyle = null, string comment = null)
{
var aggregatedValues = true;
switch (dtvalue)
{
case int _:
case double _:
AddNumberCell(worksheet, row, col, dtvalue, cellStyle, comment);
break;
case string _ when int.TryParse((string)dtvalue, out int intDtvalue):
AddNumberCell(worksheet, row, col, intDtvalue, cellStyle, comment);
break;
case string _ when double.TryParse((string)dtvalue, out double doubleDtValue):
AddNumberCell(worksheet, row, col, doubleDtValue, cellStyle, comment);
break;
default:
AddLabelCell(worksheet, row, col, dtvalue.ToString(), cellStyle, comment);
aggregatedValues = false;
break;
}
return aggregatedValues;
}
protected void AddLabelCell(ExcelWorksheet worksheet, int row, int col, string value, CellStyle cellStyle = null, string comment = null)
{
var cell = AddValueCell(worksheet, row, col, value);
ChangeStyle(cell, cellStyle ?? new CellStyle("NormalStyle"));
AddComment(cell, comment);
}
protected void AddNumberCell(ExcelWorksheet worksheet, int row, int col, object value, CellStyle cellStyle = null, string comment = null)
{
var cell = AddValueCell(worksheet, row, col, value);
ChangeStyle(cell, cellStyle ?? NamedCellStyles["IntegerStyle"]);
AddComment(cell, comment);
}
protected void AddFormulaCell(ExcelWorksheet worksheet, int row, int col, string value, CellStyle cellStyle, string comment = null)
{
var cell = AddFormulaCell(worksheet, row, col, value);
ChangeStyle(cell, cellStyle ?? NamedCellStyles["IntegerStyle"]);
AddComment(cell, comment);
}
protected void AddAggregateFormulaCell(ExcelWorksheet worksheet, int row, int col, string aggrfunctionname, int startRow, int startCol, int endRow, int endCol, bool errorCheck = false, CellStyle cellStyle = null)
{
var aggregateCondition = "";
if (aggrfunctionname.StartsWith("COUNTIF"))
{
var rx = new System.Text.RegularExpressions.Regex("[,]");
var array = rx.Split(aggrfunctionname);
aggrfunctionname = array[0];
aggregateCondition = "," + array[1];
}
if (aggrfunctionname.StartsWith("IF"))
{
//IF,#<offset a pillanatnyi oszloptól>=<feltétel értéke>,#<offset a pillanatnyi oszloptól>,<hamis érték>
var rx = new System.Text.RegularExpressions.Regex("[,]");
var array = rx.Split(aggrfunctionname);
rx = new System.Text.RegularExpressions.Regex("=");
var condarray = rx.Split(array[1]);
var form = string.Format("{0}({1}{2}{3},{4}{5},{6})", array[0], ColumnLabel(col + int.Parse(condarray[0].Substring(1))), row, "=" + condarray[1], ColumnLabel(col + int.Parse(array[2].Substring(1))), row, array[3]);
if (errorCheck)
form = "IF(ISERROR(" + form + "),\"\"," + form + ")";
AddFormulaCell(worksheet, row, col, "=" + form, cellStyle);
return;
}
string value = null;
if (startCol <= endCol)
{
string formula = aggrfunctionname + "(" + ColumnLabel(startCol) + startRow + ":" + ColumnLabel(endCol) + endRow + aggregateCondition + ")";
if (errorCheck)
{
formula = "IF(ISERROR(" + formula + "),\"\"," + formula + ")";
}
value = "=" + formula;
}
AddFormulaCell(worksheet, row, col, value, cellStyle);
}
protected void AddLabelRange(ExcelWorksheet worksheet, int startRow, int startCol, int endRow, int endCol, string value, CellStyle cellStyle = null, string comment = null)
{
var cell = AddValueRange(worksheet, startRow, startCol, endRow, endCol, value);
ChangeStyle(cell, cellStyle ?? new CellStyle());
AddComment(cell, comment);
}
protected void AddNumberRange(ExcelWorksheet worksheet, int startRow, int startCol, int endRow, int endCol, object value, CellStyle cellStyle = null, string comment = null)
{
var cell = AddValueRange(worksheet, startRow, startCol, endRow, endCol, value);
ChangeStyle(cell, cellStyle ?? NamedCellStyles["IntegerStyle"]);
AddComment(cell, comment);
}
protected void AddFormulaRange(ExcelWorksheet worksheet, int startRow, int startCol, int endRow, int endCol, string value, CellStyle cellStyle, string comment = null)
{
var cell = AddFormulaRange(worksheet, startRow, startCol, endRow, endCol, value);
ChangeStyle(cell, cellStyle ?? NamedCellStyles["IntegerStyle"]);
AddComment(cell, comment);
}
protected int AddDataTableCol(ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, int dtCol, CellStyle cellStyle, string customheader = null, CellStyle headerCellStyle = null, string aggregateFunc = null, CellStyle formulaCellStyle = null)
{
return AddDataTableCol(worksheet, trow, tcol, dataTable, dataTable.Columns[dtCol].ToString(), cellStyle, customheader, headerCellStyle, aggregateFunc, formulaCellStyle);
}
protected int AddDataTableCol(ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, string dtCol, CellStyle cellStyle, string customHeader = null, CellStyle headerCellStyle = null, string aggregateFunc = null, CellStyle formulaCellStyle = null)
{
if (trow < 1 || tcol < 1)
return 0;
var row = 0;
var rowOffset = 0;
DataColumnCollection columns = dataTable.Columns;
if (columns.Contains(dtCol))
{
bool aggregatedValues = false;
if (customHeader != null)
{
AddLabelCell(worksheet, trow, tcol, customHeader, headerCellStyle);
rowOffset++;
}
for (; row < dataTable.Rows.Count; row++)
aggregatedValues = AddCellWithTypeCheck(worksheet, trow + rowOffset + row, tcol, dataTable.Rows[row][dtCol], cellStyle);
if (aggregatedValues && row > 0 && aggregateFunc != null)
AddFormulaCell(worksheet, trow + rowOffset + row++, tcol, "=" + aggregateFunc + "(" + ColumnLabel(tcol) + (trow + rowOffset) + ":" + ColumnLabel(tcol) + (trow + rowOffset + row - 2) + ")", formulaCellStyle);
else if (!aggregatedValues && row > 0 && aggregateFunc != null)
row++;
}
return row + rowOffset;
}
protected int AddDataTableColTransponalt(ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, string dtCol, CellStyle cellStyle, string customHeader = null, CellStyle headerCellStyle = null, string aggregateFunc = null, CellStyle formulaCellStyle = null)
{
if (trow < 1 || tcol < 1)
return 0;
var rowColl = 0;
var collOffset = 0;
DataColumnCollection columns = dataTable.Columns;
if (columns.Contains(dtCol))
{
bool aggregatedValues = false;
if (customHeader != null)
{
AddLabelCell(worksheet, trow, tcol, customHeader, headerCellStyle);
collOffset++;
}
for (; rowColl < dataTable.Rows.Count; rowColl++)
aggregatedValues = AddCellWithTypeCheck(worksheet, trow, tcol + collOffset + rowColl, dataTable.Rows[rowColl][dtCol], cellStyle);
if (aggregatedValues && rowColl > 0 && aggregateFunc != null)
AddFormulaCell(worksheet, trow, tcol + collOffset + rowColl++, "=" + aggregateFunc + "(" + ColumnLabel(tcol + collOffset) + trow + ":" + ColumnLabel(tcol + collOffset + rowColl - 2) + trow + ")", formulaCellStyle);
else if (!aggregatedValues && rowColl > 0 && aggregateFunc != null)
rowColl++;
}
return rowColl + collOffset;
}
protected int[] AddDataTableRow(ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, string criteria, CellStyle cellStyle, string[] dtCols = null, string aggregateFunc = null, CellStyle formulaCellStyle = null)
{
int[] insertDim = { 0/*rows*/, 0 /*cols*/};
if (trow < 1 || tcol < 1)
return insertDim;
DataRow[] filteredRows = dataTable.Select(criteria);
DataColumnCollection columns = dataTable.Columns;
if (dtCols == null)
dtCols = columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
if (filteredRows.Length > 0)
{
bool aggregatedValues = false;
insertDim[0] = filteredRows.Length;
var col = 0;
for (int row = 0; row < filteredRows.Length; row++)
{
col = 0;
foreach (string dtCol in dtCols)
{
if (columns.Contains(dtCol))
{
aggregatedValues = AddCellWithTypeCheck(worksheet, trow + row, tcol + col, filteredRows[row][dtCol], cellStyle);
col++;
}
}
if (aggregatedValues && aggregateFunc != null)
{
AddFormulaCell(worksheet, trow + row, tcol + dtCols.Length, "=" + aggregateFunc + "(" + ColumnLabel(tcol) + (trow + row) + ":" + ColumnLabel(tcol + dtCols.Length - 1) + (trow + row) + ")", formulaCellStyle);
insertDim[1]++;
}
}
insertDim[1] = col;
}
return insertDim;
}
protected int[] AddDataTable
(
ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, string criteria,
CellStyle cellDefaultStyle, CellStyle headerDefaultStyle, CellStyle[] cellStyles = null, CellStyle[] headerStyles = null,
string[] dtCols = null,
string rowAggregateFunc = null, CellStyle rowFormulaCellStyle = null,
int rowHeaderOffset = 0, string[] columnAggregateFuncs = null, string[] columnAggregateFuncHeaderCol = null, CellStyle[] columnFormulaCellStyles = null, CellStyle columnFormulaCellHeaderStyles = null //ColumnAggregates
)
{
int[] insertDim = { 0/*rows*/, 0 /*cols*/};
if (trow < 1 || tcol < 1)
return insertDim;
DataRow[] filteredRows = dataTable.Select(criteria);
DataColumnCollection columns = dataTable.Columns;
int headerCount = 0;
if (dtCols == null)
{
dtCols = columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
headerCount = 1;
int tHeaderColNum = tcol;
foreach (var col in dtCols)
{
AddLabelCell(worksheet, trow, tHeaderColNum, col.IndexOf("COLUMN", StringComparison.OrdinalIgnoreCase) >= 0 ? Resources.ExcelNyomtatvanyResource.ResourceManager.GetString(col.ToUpper()) : col, (headerStyles?.Length ?? 0) > (tHeaderColNum - tcol) ? headerStyles[tHeaderColNum - tcol] : headerDefaultStyle);
tHeaderColNum++;
}
}
if (filteredRows.Length > 0)
{
bool aggregatedValues = false;
insertDim[0] = headerCount + filteredRows.Length + (columnAggregateFuncs?.Length ?? 0);
var col = 0;
int row = 0;
for (; row < filteredRows.Length; row++)
{
col = 0;
int currentRowNum = trow + headerCount + row;
foreach (string dtCol in dtCols)
{
if (columns.Contains(dtCol))
{
aggregatedValues = AddCellWithTypeCheck(worksheet, currentRowNum, tcol + col, filteredRows[row][dtCol], (cellStyles?.Length ?? 0) > col ? cellStyles[col] : cellDefaultStyle);
col++;
}
}
if (aggregatedValues && rowAggregateFunc != null)
{
AddFormulaCell(worksheet, currentRowNum, tcol + dtCols.Length, "=" + rowAggregateFunc + "(" + ColumnLabel(tcol) + currentRowNum + ":" + ColumnLabel(tcol + dtCols.Length - 1) + currentRowNum + ")", rowFormulaCellStyle);
insertDim[1]++;
}
}
insertDim[1] = col;
if (columnAggregateFuncs != null)
{
for (var funcrow = 0; funcrow < columnAggregateFuncs.Length; funcrow++)
{
var formularow = trow + headerCount + row + funcrow;
var vaggregateFuncHeader = columnAggregateFuncHeaderCol != null && columnAggregateFuncHeaderCol.Length > funcrow ? columnAggregateFuncHeaderCol[funcrow] : null;
if (vaggregateFuncHeader != null)
AddLabelCell(worksheet, formularow, tcol, vaggregateFuncHeader, columnFormulaCellHeaderStyles ?? ((cellStyles?.Length ?? 0) > col ? cellStyles[col] : cellDefaultStyle));
var vaggregateFunc = columnAggregateFuncs[funcrow];
CellStyle colFormulaCellStyle = columnFormulaCellStyles != null && columnFormulaCellStyles.Length > funcrow ? columnFormulaCellStyles[funcrow] : cellDefaultStyle;
for (col = rowHeaderOffset; col < dtCols.Length; col++)
{
int formulacol = tcol + col;
AddAggregateFormulaCell(worksheet, formularow, formulacol, vaggregateFunc, trow + headerCount, formulacol, trow + headerCount + row - 1, formulacol, true, colFormulaCellStyle);
}
}
}
}
return insertDim;
}
protected bool AddDataTablePivotTableCell(ExcelWorksheet worksheet, int trow, int tcol, DataTable dataTable, string criteria, CellStyle cellStyle, string[] dtCols = null, string[] dtCommentCols = null)
{
bool aggregatedValue = false;
if (trow < 1 || tcol < 1)
return aggregatedValue;
DataRow[] filteredRows = dataTable.Select(criteria);
if (filteredRows.Length > 0)
{
DataColumnCollection columns = dataTable.Columns;
if (dtCols == null)
dtCols = columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
for (int row = 0; row < filteredRows.Length; row++)
{
var col = 0;
foreach (string dtCol in dtCols)
{
if (columns.Contains(dtCol))
{
string comment = null;
if (dtCommentCols != null)
{
foreach (string dtCommentCol in dtCommentCols)
{
object commentValue = filteredRows[row][dtCommentCol];
if (columns.Contains(dtCommentCol) && !(commentValue is DBNull))
comment = (string)commentValue;
}
}
aggregatedValue = AddCellWithTypeCheck(worksheet, trow + row, tcol + col, filteredRows[row][dtCol], cellStyle, comment);
col++;
}
}
}
}
else
{
aggregatedValue = AddCellWithTypeCheck(worksheet, trow, tcol, "", cellStyle);
}
return aggregatedValue;
}
protected int[] AddDataTablePivotTable
(
ExcelWorksheet worksheet, int trow, int tcol, //Worksheet
DataTable dataTableHeader, string headerFilterDtCols, string headershowDtCol, //TableHeader
DataTable dataTableRowHeader, string rowHeadersFilteDtCols, string[] rowHeaderDtCols, //RowHeader
DataTable dataTable, //DataTable
CellStyle cellStyle, CellStyle headerCellStyle = null, CellStyle rowHeaderCellStyle = null, //Styles
string[] dtCols = null, string[] dtCommentCols = null, //DataTableFields
string[] rowAggregateFuncs = null, string[] rowAggregateFuncHeaderCol = null, CellStyle[] rowFormulaCellStyles = null, //RowAggregates
string[] columnAggregateFuncs = null, string[] columnAggregateFuncHeaderCol = null, CellStyle[] columnFormulaCellStyles = null //ColumnAggregates
)
{
return AddDataTablePivotTable
(
worksheet, trow, tcol,
dataTableHeader, headerFilterDtCols != null ? new[] { headerFilterDtCols } : null, headershowDtCol,
dataTableRowHeader, rowHeadersFilteDtCols != null ? new[] { rowHeadersFilteDtCols } : null, rowHeaderDtCols,
dataTable,
cellStyle, headerCellStyle, rowHeaderCellStyle,
dtCols, dtCommentCols,
rowAggregateFuncs, rowAggregateFuncHeaderCol, rowFormulaCellStyles,
columnAggregateFuncs, columnAggregateFuncHeaderCol, columnFormulaCellStyles
);
}
protected int[] AddDataTablePivotTable
(
ExcelWorksheet worksheet, int trow, int tcol, //Worksheet
DataTable dataTableHeader, string[] headerFilterDtCols, string headershowDtCol, //TableHeader
DataTable dataTableRowHeader, string[] rowHeadersFilteDtCols, string[] rowHeaderDtCols, //RowHeader
DataTable dataTable, //DataTable
CellStyle cellStyle, CellStyle headerCellStyle = null, CellStyle rowHeaderCellStyle = null, //Styles
string[] dtCols = null, string[] dtCommentCols = null, //DataTableFields
string[] rowAggregateFuncs = null, string[] rowAggregateFuncHeaderCol = null, CellStyle[] rowFormulaCellStyles = null, //RowAggregates
string[] columnAggregateFuncs = null, string[] columnAggregateFuncHeaderCol = null, CellStyle[] columnFormulaCellStyles = null //ColumnAggregates
)
{
int[] insertDim = { 0/*rows*/, 0 /*cols*/};
if (trow < 1 || tcol < 1)
return insertDim;
var rowHeaderOffset = rowHeaderDtCols?.Length ?? 0;
if (headershowDtCol != null)
AddDataTableColTransponalt(worksheet, trow, tcol + rowHeaderOffset, dataTableHeader, headershowDtCol, headerCellStyle ?? cellStyle);
if (rowHeaderOffset > 0)
AddDataTableRow(worksheet, trow + 1, tcol, dataTableRowHeader, "", rowHeaderCellStyle ?? cellStyle, rowHeaderDtCols);
const int headerCount = 1;
var row = 0;
List<string> colFilters = new List<string>();
/*Fejléc filterek összeállítása*/
foreach (DataRow dtRow in dataTableHeader.Rows)
{
var colFilter = "";
foreach (var headerFilterDtCol in headerFilterDtCols)
{
object dtvalue = dtRow[headerFilterDtCol];
switch (dtvalue)
{
case int _:
case double _:
case string _ when int.TryParse((string)dtvalue, out int intDtvalue):
case string _ when double.TryParse((string)dtvalue, out double doubleDtValue):
break;
default:
dtvalue = "'" + dtvalue + "'";
break;
}
colFilter += (colFilter.Length > 0 ? " AND " : "") + headerFilterDtCol + "=" + dtvalue;
}
colFilters.Add(colFilter);
}
/*Sorok feldolgozása*/
for (; row < dataTableRowHeader.Rows.Count; row++)
{
var rowFilter = "";
foreach (var rowHeadersFilteDtCol in rowHeadersFilteDtCols)
{
object dtvalue = dataTableRowHeader.Rows[row][rowHeadersFilteDtCol];
switch (dtvalue)
{
case int _:
case double _:
case string _ when int.TryParse((string)dtvalue, out int intDtvalue):
case string _ when double.TryParse((string)dtvalue, out double doubleDtValue):
break;
default:
dtvalue = "'" + dtvalue + "'";
break;
}
rowFilter += (rowFilter.Length > 0 ? " AND " : "") + rowHeadersFilteDtCol + "=" + dtvalue;
}
/*Sor adataival szűrt adattábla ellenőrzés, szűrés*/
DataRow[] filteredRows = dataTable.Select(rowFilter);
if (filteredRows.Length > 0)
{
DataTable rowFilteredTable = filteredRows.AsEnumerable().CopyToDataTable();
/*Oszlopok összeállítása*/
var col = 0;
foreach (string colFilter in colFilters)
{
AddDataTablePivotTableCell(worksheet, trow + headerCount + row, tcol + rowHeaderOffset + col, rowFilteredTable, colFilter, cellStyle, dtCols, dtCommentCols);
col++;
}
}
else
{
var col = 0;
foreach (string colFilter in colFilters)
{
AddCellWithTypeCheck(worksheet, trow + headerCount + row, tcol + rowHeaderOffset + col, "", cellStyle);
col++;
}
}
if (rowAggregateFuncs != null)
{
var formularow = trow + headerCount + row;
var formulacol = tcol + rowHeaderOffset + colFilters.Count;
for (int funccol = 0; funccol < rowAggregateFuncs.Length; funccol++)
{
if (rowAggregateFuncs[funccol] == null)
{
continue;
}
string aggregateFuncHeader = (rowAggregateFuncHeaderCol != null && rowAggregateFuncHeaderCol.Length > funccol ? rowAggregateFuncHeaderCol[funccol] : "");
CellStyle formulaCellStyle = (rowFormulaCellStyles != null && rowFormulaCellStyles.Length > funccol ? rowFormulaCellStyles[funccol] : cellStyle);
AddLabelCell(worksheet, trow, formulacol + funccol, aggregateFuncHeader, headerCellStyle ?? cellStyle);
AddAggregateFormulaCell(worksheet, formularow, formulacol + funccol, rowAggregateFuncs[funccol], formularow, tcol + rowHeaderOffset, formularow, formulacol - 1, true, formulaCellStyle);
}
}
}
if (columnAggregateFuncs != null)
{
for (var funcrow = 0; funcrow < columnAggregateFuncs.Length; funcrow++)
{
var formularow = trow + headerCount + row + funcrow;
var vaggregateFuncHeader = columnAggregateFuncHeaderCol != null && columnAggregateFuncHeaderCol.Length > funcrow ? columnAggregateFuncHeaderCol[funcrow] : "";
CellStyle formulaCellStyle = columnFormulaCellStyles != null && columnFormulaCellStyles.Length > funcrow ? columnFormulaCellStyles[funcrow] : cellStyle;
AddLabelCell(worksheet, formularow, tcol, vaggregateFuncHeader, rowHeaderCellStyle ?? cellStyle);
for (var col = 0; col < dataTableHeader.Rows.Count; col++)
{
int formulacol = tcol + rowHeaderOffset + col;
AddAggregateFormulaCell(worksheet, formularow, formulacol, columnAggregateFuncs[funcrow], trow + headerCount, formulacol, trow + headerCount + row - 1, formulacol, true, formulaCellStyle);
}
}
}
insertDim[0] = row + headerCount + (columnAggregateFuncs?.Length ?? 0);
insertDim[1] = rowHeaderOffset + dataTableHeader.Rows.Count + (rowAggregateFuncs?.Length ?? 0);
return insertDim;
}
public void GenerateNewExcelPackage(string templateFilename = null)
{
FileInfo exFile = null;
if (templateFilename != null)
{
exFile = new FileInfo(templateFilename);
}
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
}
public void Dispose()
{
ExcelPackage?.Dispose();
DataSet?.Dispose();
}
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using Kreta.Core.ConnectionType;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public abstract class BaseNyomtatvanyExcelWithDataSet : BaseNyomtatvanyExcel
{
public BaseNyomtatvanyExcelWithDataSet(IConnectionType connectionType, bool isMultisheetExcel) : base(connectionType, isMultisheetExcel)
{
}
public abstract void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1);
public MemoryStream ExcelNyomtatas(DataSet ds, int osztalyId)
{
if (!isMultisheetExcel)
{
if (ExcelPackage.Workbook.Worksheets.Count > 0)
{
GenerateNewExcelPackage();
SetWorkbookProperties();
}
CreateSheet(ds, osztalyId);
}
return ExcelNyomtatas();
}
public override void CreateSheet(Dictionary<string, string> dbParameters, int sheetIndex = 1)
{
throw new ApplicationException("DataSet alapúnál ez nem használható");
}
}
}

View file

@ -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++;
}
}
}
}

View file

@ -0,0 +1,251 @@
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 OsztalyStatisztika : BaseNyomtatvanyExcel
{
private bool IsMagatartasSzorgalomNemLatszik { get; } = false;
public OsztalyStatisztika(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null, bool isMagatartasSzorgalomNemLatszik = false) : base(connectionType, isMultisheetExcel)
{
StoredProcedure = "uspNyomtatvany_Excel_IdoszakiOsztalyStatisztika";
IsMagatartasSzorgalomNemLatszik = isMagatartasSzorgalomNemLatszik;
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;
dbParameters.TryGetValue("pElmeletgyakorlat", out var elmeletGyakorlat);
if (string.IsNullOrWhiteSpace(elmeletGyakorlat))
{
elmeletGyakorlat = "0";
}
dbParameters.TryGetValue("pErtekelestipusaId", out var ertekelesTipusaId);
if (string.IsNullOrWhiteSpace(ertekelesTipusaId))
{
ertekelesTipusaId = Convert.ToString(Enums.ErtekelesTipusEnum.evvegi_jegy_ertekeles);
}
// Adatforrás összeállítása
SetExcelDataSet();
DataAccessManual.Util.DataAccessBase.SetBoolFields(DataSet.Tables[8], "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram");
var osztalyDt = DataSet.Tables[0];
var tanuloDt = DataSet.Tables[1];
var tantargyakDt = DataSet.Tables[2];
var ertekelesDt = DataSet.Tables[3];
var magszorgDt = DataSet.Tables[4];
var mulasztasDt = DataSet.Tables[5];
var mulasztasSumDt = DataSet.Tables[6];
var tanoraiFeljegyzesDt = DataSet.Tables[7];
var szamossagDT = DataSet.Tables[9];
//Munkalap összeállítása
var worksheet = CreateSheet(isMultisheetExcel ? osztalyDt.Rows[0]["C_NEV"].ToString() : Resources.ExcelNyomtatvanyResource.ResourceManager.GetString("OsztalyStatisztikaMunkalapnev_" + ertekelesTipusaId), sheetIndex, eOrientation.Landscape, true);
worksheet.Row(1).Height = 15;
worksheet.Row(2).Height = 120;
worksheet.Column(1).Width = 30;
//Hiányzó fejlécek beállítása
AddTanuloAdatokFejlec(worksheet, 2);
for (var targycol = 2; targycol < tantargyakDt.Rows.Count + 2 + 3 + (elmeletGyakorlat.Equals("0") ? 8 : 14); targycol++)
{
worksheet.Column(targycol).Width = 6;
}
AddLabelRange(worksheet, 1, 1, 1, 2, Resources.ExcelNyomtatvanyResource.ResourceManager.GetString("OsztalyStatisztikaDokumentumNev_" + ertekelesTipusaId), DocnameStyle);
worksheet.Column(2).Width = 13;
AddLabelCell(worksheet, 1, 3, "", DocheaderStyle1);
AddLabelRange(worksheet, 1, 4, 1, 4/*Magatartás szorgalom*/ + tantargyakDt.Rows.Count + 1 + (elmeletGyakorlat.Equals("0") ? 8 : 14), osztalyDt.Rows[0]["C_NEV"].ToString(), DocheaderStyle2);
int[] retDimErtekeles;
string[] adatMezo;
string[] megjegyzesMezo;
if (IsMagatartasSzorgalomNemLatszik)
{
adatMezo = new string[] { "ERTEKELES" };
megjegyzesMezo = new string[] { "ERTEKELES_SZOVEG_MEGJEGYZES" };
retDimErtekeles = AddDataTablePivotTable(worksheet, 2, 1, tantargyakDt, "C_TANTARGYID", "TANTARGY_NEV", tanuloDt, "C_TANULOID", new[] { "TANULONEV", "OKTATASIAZONOSITO" }, ertekelesDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, megjegyzesMezo, new[] { "AVERAGE", "IF,#3=0,#-1,1", null, null, "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag2, null, null, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaBukasokSzama }, new[] { Numeric2BoldStyleBottomBordered, Numeric2BoldStyleBottomBordered, null, null, IntegerBoldStyleBottomBordered }, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
retDimErtekeles[1] -= 4;
}
else
{
//Értékelés statisztika hozzáadása
var magatartasHeaderDtCreatorArray = new List<string[]>
{
new[] { "id", "name", "torolt" },
new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaMagatartas, "F" }
};
AddDataTablePivotTable(worksheet, 2, 1, CreateDataTable(magatartasHeaderDtCreatorArray), new[] { "TOROLT" }, "name", tanuloDt, new[] { "C_TANULOID" }, new[] { "TANULONEV", "OKTATASIAZONOSITO" }, magszorgDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "MagatartasOsztalyzat" }, null, null, null, null, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
var szorgalomHeaderDtCreatorArray = new List<string[]>
{
new[] { "id", "name", "torolt" },
new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaSzorgalom, "F" }
};
AddDataTablePivotTable(worksheet, 2, 4, CreateDataTable(szorgalomHeaderDtCreatorArray), new[] { "TOROLT" }, "name", tanuloDt, new[] { "C_TANULOID" }, null, magszorgDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "SzorgalomOsztalyzat" }, null, null, null, null, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, null, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
adatMezo = new string[] { "ERTEKELES" };
megjegyzesMezo = new string[] { "ERTEKELES_SZOVEG_MEGJEGYZES" };
retDimErtekeles = AddDataTablePivotTable(worksheet, 2, 5, tantargyakDt, "C_TANTARGYID", "TANTARGY_NEV", tanuloDt, "C_TANULOID", null, ertekelesDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, megjegyzesMezo, new[] { "AVERAGE", "IF,#3=0,#-1,1", null, null, "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag2, null, null, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaBukasokSzama }, new[] { Numeric2BoldStyleBottomBordered, Numeric2BoldStyleBottomBordered, null, null, IntegerBoldStyleBottomBordered }, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
}
//Átlagok átlaga
AddAggregateFormulaCell(worksheet, 2 + retDimErtekeles[0] - 6, retDimErtekeles[1] + 5 - 5, "AVERAGE", 3, retDimErtekeles[1] + 5 - 5, 2 + retDimErtekeles[0] - 7, retDimErtekeles[1] + 5 - 5, true, Numeric2BoldBigerStyleBottomBordered);
//Átlagok 2 átlaga
AddAggregateFormulaCell(worksheet, 2 + retDimErtekeles[0] - 6, retDimErtekeles[1] + 5 - 4, "AVERAGE", 3, retDimErtekeles[1] + 5 - 4, 2 + retDimErtekeles[0] - 7, retDimErtekeles[1] + 5 - 4, true, Numeric2BoldBigerStyleBottomBordered);
//Bukások száma
AddAggregateFormulaCell(worksheet, 2 + retDimErtekeles[0] - 6, retDimErtekeles[1] + 5 - 1, "SUM", 3, retDimErtekeles[1] + 5 - 1, 2 + retDimErtekeles[0] - 7, retDimErtekeles[1] + 5 - 1, true, IntegerBoldStyleBottomBordered);
//Dicséret, Kitűnő számosságok
var szamossagTipusok = new List<string> { "Dicseret", "Kituno" };
var szamossagTipusokNev = new List<string> { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaDicseretekSzama, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaKitunoErtekelesekSzama };
var szamossagPos = 0;
foreach (var szamossagTipus in szamossagTipusok)
{
var szamossag1DtCreatorArray = new List<string[]>
{
new[] { "id", "name", "TOROLT"},
new[] { "1", szamossagTipusokNev[szamossagPos], "F" }
};
AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + 5 - 3 + szamossagPos, CreateDataTable(szamossag1DtCreatorArray), new string[0], "name",
tanuloDt, new[] { "C_TANULOID" }, null, szamossagDT, IntegerBoldStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { szamossagTipus }, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
szamossagPos++;
}
//Tanórai
var feljegyzesTipusok = new List<string>(new[] { "TanoraiDicseret", "FelszerelesHiany", "HaziFeladatHiany" });
var feljegyzesTipusokNev = new List<string>(new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanoraiDicseret, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaFelszerelesHiany, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaHaziFeladatHiany });
var feljegyzesPos = 0;
foreach (var feljegyzesTipus in feljegyzesTipusok)
{
var tanoraiFeljegyzes1DtCreatorArray = new List<string[]>
{
new[] { "id", "name", "TOROLT"},
new[] { "1", feljegyzesTipusokNev[feljegyzesPos], "F" }
};
AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + 5 + feljegyzesPos, CreateDataTable(tanoraiFeljegyzes1DtCreatorArray), new[] { "TOROLT" }, "name",
tanuloDt, new[] { "C_TANULOID" }, null, tanoraiFeljegyzesDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered,
new[] { feljegyzesTipus }, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
feljegyzesPos++;
}
var retDimFeljegyzes = new[] { retDimErtekeles[0], 3 };
//Mulasztási statisztika hozzáadása
var osszesHianyzasHeaderDtCreatorArray = new List<string[]>();
var hianyzasHeaderDtCreatorArray = new List<string[]>();
var kesespercHeaderDtCreatorArray = new List<string[]>();
var keseshianyzasHeaderDtCreatorArray = new List<string[]>();
var hozotthianyzasHeaderDtCreatorArray = new List<string[]>();
var feldolgozatlanHeaderDtCreatorArray = new List<string[]>();
var hianyzaskesespercFilter = new List<string>(new[] { "tipus_char", "c_igazolt" });
var keseshianyzasFilter = new List<string>(new[] { "c_igazolt" });
if (elmeletGyakorlat.Equals("0"))
{
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesIgazoltHianyzas, "H", "T" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesIgazolatlanHianyzas, "H", "F" });
hianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
hianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltHianyzasok, "H", "T" });
hianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanHianyzasok, "H", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
kesespercHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltKesesPerc, "K", "T" });
kesespercHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanKesesPerc, "K", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "c_igazolt", "c_hozott" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltKesesHianyzas, "T", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanKesesHianyzas, "F", "F" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaHozottIgazoltHianyzas, "H", "T" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaHozottIgazolatlanHianyzas, "H", "F" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.FeldolgozatlanMulasztas, "H", "-" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.FeldolgozatlanKesesPerc, "K", "-" });
}
else if (elmeletGyakorlat.Equals("1"))
{
hianyzaskesespercFilter.Add("c_gyakorlati");
keseshianyzasFilter.Add("c_gyakorlati");
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesElmeletiIgazoltHianyzas, "H", "T", "F" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesGyakorlatiIgazoltHianyzas, "H", "T", "T" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesElmeletiIgazolatlanHianyzas, "H", "F", "F" });
osszesHianyzasHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaOsszesGyakorlatiIgazolatlanHianyzas, "H", "F", "T" });
hianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
hianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltHianyzas, "H", "T", "F" });
hianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltHianyzas, "H", "T", "T" });
hianyzasHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanHianyzas, "H", "F", "F" });
hianyzasHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanHianyzas, "H", "F", "T" });
kesespercHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati", "c_hozott" });
kesespercHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltKesesPerc, "K", "T", "F", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltKesesPerc, "K", "T", "T", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanKesesPerc, "K", "F", "F", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanKesesPerc, "K", "F", "T", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "c_igazolt", "c_gyakorlati", "c_hozott" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltKesesHianyzas, "T", "F", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltKesesHianyzas, "T", "T", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanKesesHianyzas, "F", "F", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanKesesHianyzas, "F", "T", "F" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati", "c_hozott" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaHozottIgazoltHianyzas, "H", "T", "F", "T" });
hozotthianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaHozottIgazolatlanHianyzas, "H", "F", "F", "T" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.FeldolgozatlanElmeletiMulasztas, "H", "-", "F" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.FeldolgozatlanGyakorlatiMulasztas, "H", "-", "T" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.FeldolgozatlanElmeletiKesesPerc, "K", "-", "F" });
feldolgozatlanHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.FeldolgozatlanGyakorlatiKesesPerc, "K", "-", "T" });
}
adatMezo = new[] { "OSSZES_MULASZTASOK_SZAMA" };
var retDimOsszesHianyzas = AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + 5, CreateDataTable(osszesHianyzasHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
adatMezo = new[] { "MULASZTASOK_SZAMA" };
var retDimHianyzas = AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + retDimOsszesHianyzas[1] + 5, CreateDataTable(hianyzasHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
adatMezo = new[] { "KESESPERC" };
var retDimKesesperc = AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + retDimOsszesHianyzas[1] + retDimHianyzas[1] + 5, CreateDataTable(kesespercHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
adatMezo = new[] { "MULASZTASOK_SZAMA" };
var retDimKesesHianyzas = AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + retDimOsszesHianyzas[1] + retDimHianyzas[1] + retDimKesesperc[1] + 5, CreateDataTable(keseshianyzasHeaderDtCreatorArray), keseshianyzasFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasSumDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
adatMezo = new[] { "HOZOTTMULASZTASOK_SZAMA" };
var retDimHozottMulasztas = AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + retDimOsszesHianyzas[1] + retDimHianyzas[1] + retDimKesesperc[1] + 5 + retDimKesesHianyzas[1], CreateDataTable(hozotthianyzasHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
adatMezo = new[] { "FELDOLGOZATLANOK_SZAMA" };
AddDataTablePivotTable(worksheet, 2, retDimErtekeles[1] + retDimFeljegyzes[1] + retDimOsszesHianyzas[1] + retDimHianyzas[1] + retDimKesesperc[1] + 5 + retDimKesesHianyzas[1] + retDimHozottMulasztas[1], CreateDataTable(feldolgozatlanHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "C_TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
}
}
}

View file

@ -0,0 +1,83 @@
using System.Collections.Generic;
using System.Data;
using System.IO;
using Kreta.BusinessLogic.Classes;
using Kreta.Core.ConnectionType;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Util;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class OsztalyTanuloinakHaviMulasztasiOsszesitoje : BaseNyomtatvanyExcel
{
public OsztalyTanuloinakHaviMulasztasiOsszesitoje(IConnectionType connectionType, string templateFilename = null) : base(connectionType)
{
StoredProcedure = "sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje";
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;
dbParameters.TryGetValue("pElmeletgyakorlat", out string elmeletGyakorlat);
if (string.IsNullOrWhiteSpace(elmeletGyakorlat))
elmeletGyakorlat = "0";
dbParameters.TryGetValue("pMulasztandoOrakszamaTeljesNaposMulasztashoz", out string pMulasztandoOrakszamaTeljesNaposMulasztashoz);
if (string.IsNullOrWhiteSpace(pMulasztandoOrakszamaTeljesNaposMulasztashoz))
pMulasztandoOrakszamaTeljesNaposMulasztashoz = "4";
// Adatforrás összeállítása
SetExcelDataSet();
DataAccessManual.Util.DataAccessBase.SetBoolFields(DataSet.Tables[13], "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram");
DataSet.Tables[DataSet.Tables.Count - 1].TableName = "TanulokIktatasiAdatok";
DataSet.Tables[DataSet.Tables.Count - 2].TableName = "OsztalyIktatasiAdatok";
DataTable honapokDt = DataSet.Tables[0];
int index = 1;
foreach (DataRow honap in honapokDt.Rows)
{
//Munkalap összeállítása
ExcelWorksheet worksheet = CreateSheet(SDAConvert.ToString(honap["honapnev"]), index, eOrientation.Landscape, true, 2);
worksheet.Row(1).Height = elmeletGyakorlat.Equals("0") ? 30 : 45;
worksheet.Column(1).Width = 25;
worksheet.Column(2).Width = 13;
int dcol = 3;
for (; dcol <= (elmeletGyakorlat.Equals("0") ? 31 + 1 : 62 + 1); dcol++)
worksheet.Column(dcol).Width = 6;
int[] dim = AddDataTable(
worksheet, 1, 1, DataSet.Tables[index], null, IntegerStyleBottomBordered, HeaderStyleBottomBorderedBGGray,
new[] { HeaderStyleBottomBordered, NormalStyleBottomBordered }, new[] { HeaderStyleBottomBordered },
null, null, null,
2, new[] { "COUNT", "SUM" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakHaviMulasztasiOsszesitojeNapiHianyzoTanulok, Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakHaviMulasztasiOsszesitojeNapiOsszesito }, new[] { IntegerBoldStyle, IntegerStyle }, HeaderStyle);
for (; dcol <= dim[1]; dcol++)
worksheet.Column(dcol).Width = 11;
if (dim[1] > 0)
{
worksheet.Column(dim[1]).Width = 15;
AddComment(worksheet, 1, dim[1], ">= " + FrameworkEnumExtensions.EnumToListManual<TeljesNaposMulasztasSzamitashozMiminalisanMulasztottOrakszamaModEnum>()[pMulasztandoOrakszamaTeljesNaposMulasztashoz]);
}
//Hiányzó fejlécek beállítása
AddTanuloAdatokFejlec(worksheet, 1);
index++;
}
}
}
}

View file

@ -0,0 +1,74 @@
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 });
}
}
}

View file

@ -0,0 +1,59 @@
using System.Collections.Generic;
using System.Data;
using System.IO;
using Kreta.Core.ConnectionType;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class OsztalyTanuloinakMulasztasiSzazalekStatisztika : BaseNyomtatvanyExcel
{
public OsztalyTanuloinakMulasztasiSzazalekStatisztika(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
{
StoredProcedure = "sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika";
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[3], "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram");
DataTable tanulosDt = DataSet.Tables[0];
DataTable tantargyDt = DataSet.Tables[1];
DataTable mulasztasSzazalekDt = DataSet.Tables[2];
DataTable osztalyDt = DataSet.Tables[3];
//Munkalap összeállítása
ExcelWorksheet worksheet = CreateSheet((isMultisheetExcel) ? osztalyDt.Rows[0]["Osztalynev"].ToString() : Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiSzazalekStatisztikaMunkalapnev, 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;
//Hiányzó fejlécek beállítása
AddTanuloAdatokFejlec(worksheet, 1);
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.OsztalyTanuloinakMulasztasiSzazalekStatisztikaTanuloiAtlag }, new[] { PercentBoldStyleBottomBordered },
new[] { "AVERAGE" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyTanuloinakMulasztasiSzazalekStatisztikaTantargyiAtlag }, new[] { PercentBoldStyleBottomBordered });
}
}
}

View file

@ -0,0 +1,67 @@
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<string, string> 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);
}
}
}

View file

@ -0,0 +1,289 @@
using System.Collections.Generic;
using System.Data;
using System.IO;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Web.Helpers.Extension;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class OsztalyokTantargyiStatisztika : BaseNyomtatvanyExcel
{
private bool IsMagatartasSzorgalomNemLatszik { get; } = false;
public OsztalyokTantargyiStatisztika(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFileName = null, bool isMagatartasSzorgalomNemLatszik = false) : base(connectionType, isMultisheetExcel)
{
StoredProcedure = "sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika";
IsMagatartasSzorgalomNemLatszik = isMagatartasSzorgalomNemLatszik;
FileInfo fileInfo = null;
if (templateFileName != null)
{
fileInfo = new FileInfo(templateFileName);
}
ExcelPackage = fileInfo == null ? new ExcelPackage() : new ExcelPackage(fileInfo);
//Munkalap tulajdonságok beállítása
SetWorkbookProperties();
}
public override void CreateSheet(Dictionary<string, string> dbParameters, int sheetIndex = 1)
{
DbParameters = dbParameters;
dbParameters.TryGetValue("pErtekelestipusaId", out string ertekelesTipusaId);
if (string.IsNullOrWhiteSpace(ertekelesTipusaId))
{
ertekelesTipusaId = ErtekelesTipusEnum.evvegi_jegy_ertekeles.ToString();
}
// Adatforrás összeállítása
SetExcelDataSet();
DataTable osztalyDataTable = DataSet.Tables[0];
DataTable tantargyDataTable = DataSet.Tables[1];
DataTable atlagDataTable = DataSet.Tables[2];
DataTable mulasztasDataTable = DataSet.Tables[3];
DataTable iktatasAdatokTable = DataSet.Tables[DataSet.Tables.Count - 1]; // utolsó tábla az iktatás adatok
iktatasAdatokTable.TableName = "IktatasAdatok";
DataAccessManual.Util.DataAccessBase.SetBoolFields(iktatasAdatokTable, "OJCSJKeresztfeleves,OJTechnikaiOsztaly,OJNemzetisegi,OJKettannyelvu,OJNyelviElokeszito,OJIsGyogypedagogiaiLogopediai,OJSportOsztaly,OJAranyJanosProgram");
//Munkalap összeállítása
ExcelWorksheet worksheet = CreateSheet(Resources.ExcelNyomtatvanyResource.ResourceManager.GetString("OsztalyokTantargyiStatisztikaMunkalapnev_" + 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);
bool isGyakorlati = dbParameters["pElmeletgyakorlat"] == "1";
if (IsMagatartasSzorgalomNemLatszik)
{
tantargyDataTable.RemoveDataRowIfAnyColumnValueMatch("TantargyId", new List<int>() { -1, -2 });
}
CreateHeaderColumns(worksheet, tantargyDataTable);
CreateHeaderRows(worksheet, osztalyDataTable);
CreateMulasztasHeaders(worksheet, tantargyDataTable.Rows.Count, isGyakorlati);
FillMainData(worksheet, osztalyDataTable, tantargyDataTable, atlagDataTable);
FillMulasztasData(worksheet, osztalyDataTable, mulasztasDataTable, tantargyDataTable.Rows.Count, isGyakorlati);
FillAggregate(worksheet, osztalyDataTable.Rows.Count, tantargyDataTable.Rows.Count);
}
private void CreateHeaderColumns(ExcelWorksheet worksheet, DataTable tantargyDataTable)
{
worksheet.Cells[1, 1].Value = "Osztályok";
worksheet.Cells[1, 1].StyleName = HeaderStyleBottomBordered.Name;
worksheet.Cells[1, 2].Value = "Tanulók Száma";
worksheet.Cells[1, 2].StyleName = HeaderStyle90BottomBordered.Name;
if (tantargyDataTable.Rows.Count <= 0)
{
return;
}
var columnIndex = 3;
foreach (DataRow dataRow in tantargyDataTable.Rows)
{
worksheet.Column(columnIndex).Width = 7;
worksheet.Cells[1, columnIndex].Value = dataRow["TantargyNev"];
worksheet.Cells[1, columnIndex].StyleName = HeaderStyle90BottomBordered.Name;
columnIndex++;
}
}
private void CreateHeaderRows(ExcelWorksheet worksheet, DataTable osztalyDataTable)
{
if (osztalyDataTable.Rows.Count <= 0)
{
return;
}
var rowIndex = 2;
foreach (DataRow dataRow in osztalyDataTable.Rows)
{
worksheet.Cells[rowIndex, 1].Value = dataRow["OsztalyNev"];
worksheet.Cells[rowIndex, 1].StyleName = HeaderStyleBottomBordered.Name;
worksheet.Cells[rowIndex, 2].Value = dataRow["Letszam"];
worksheet.Cells[rowIndex, 2].StyleName = NormalStyleBottomBordered.Name;
rowIndex++;
}
}
private void CreateMulasztasHeaders(ExcelWorksheet worksheet, int colNumber, bool isGyakorlati)
{
if (isGyakorlati)
{
worksheet.Cells[1, colNumber + 3].Value = "Igazolt hiányzás (elméleti)";
worksheet.Cells[1, colNumber + 3].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 4].Value = "Igazolt késés (elméleti, óra)";
worksheet.Cells[1, colNumber + 4].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 5].Value = "Igazolatlan hiányzás (elméleti)";
worksheet.Cells[1, colNumber + 5].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 6].Value = "Igazolatlan késés (elméleti, óra)";
worksheet.Cells[1, colNumber + 6].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 7].Value = "Igazolt hiányzás (gyakorlati)";
worksheet.Cells[1, colNumber + 7].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 8].Value = "Igazolt késés (gyakorlati, óra)";
worksheet.Cells[1, colNumber + 8].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 9].Value = "Igazolatlanhiányzás (gyakorlati) ";
worksheet.Cells[1, colNumber + 9].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 10].Value = "Igazolatlankésés (gyakorlati, óra)";
worksheet.Cells[1, colNumber + 10].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
}
else
{
worksheet.Cells[1, colNumber + 3].Value = "Igazolt hiányzás";
worksheet.Cells[1, colNumber + 3].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 4].Value = "Igazolt késés (óra)";
worksheet.Cells[1, colNumber + 4].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 5].Value = "Igazolatlan hiányzás";
worksheet.Cells[1, colNumber + 5].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
worksheet.Cells[1, colNumber + 6].Value = "Igazolatlan késés (óra)";
worksheet.Cells[1, colNumber + 6].StyleName = HeaderStyle90BottomBorderedBGGray.Name;
}
}
private void FillMainData(ExcelWorksheet worksheet, DataTable osztalyDataTable, DataTable tantargyDataTable, DataTable atlagDataTable)
{
var rowIndex = 2;
foreach (DataRow osztalyDataRow in osztalyDataTable.Rows)
{
var columnIndex = 3;
foreach (DataRow tantargyDataRow in tantargyDataTable.Rows)
{
string rowFilter = $"OsztalyId = {osztalyDataRow["OsztalyId"]} AND TantargyId = {tantargyDataRow["TantargyId"]}";
var ert = atlagDataTable.Select(rowFilter);
worksheet.Cells[rowIndex, columnIndex].StyleName = Numeric2StyleBottomBordered.Name;
if (ert.Length != 0)
{
worksheet.Cells[rowIndex, columnIndex].Value = ert[0].ItemArray[4];
}
columnIndex++;
}
rowIndex++;
}
}
private void FillMulasztasData(ExcelWorksheet worksheet, DataTable osztalyDataTable, DataTable mulasztasDataTable, int colNumber, bool isGyakorlati)
{
if (osztalyDataTable.Rows.Count <= 0)
{
return;
}
string gyakorlatiFilter = "AND Gyakorlati = 'T'";
string nemGyakorlatiFilter = " AND Gyakorlati = 'F'";
int gyakorlatiIndex = isGyakorlati ? 1 : 0;
var rowIndex = 2;
foreach (DataRow dataRow in osztalyDataTable.Rows)
{
string igazoltHianyzasRowfilter = $"Tipus = {1500} AND Igazolt = 'T' AND OsztalyId = {dataRow["OsztalyId"]}";
string igazoltKesesRowfilter = $"Tipus = {1499} AND Igazolt = 'T' AND OsztalyId = {dataRow["OsztalyId"]}";
string igazolatlanHianyzasRowfilter = $"Tipus = {1500} AND Igazolt = 'F' AND OsztalyId = {dataRow["OsztalyId"]}";
string igazolatlanKesesRowfilter = $"Tipus = {1499} AND Igazolt = 'F' AND OsztalyId = {dataRow["OsztalyId"]}";
string igazoltGyakHianyzasRowfilter = $"{igazoltHianyzasRowfilter} {gyakorlatiFilter}";
string igazoltGyakKesesRowfilter = $"{igazolatlanKesesRowfilter} {gyakorlatiFilter}";
string igazolatlanGyakHianyzasRowfilter = $"{igazolatlanHianyzasRowfilter} {gyakorlatiFilter}";
string igazolatlanGyakKesesRowfilter = $"{igazolatlanKesesRowfilter} {gyakorlatiFilter}";
if (isGyakorlati)
{
igazoltHianyzasRowfilter += nemGyakorlatiFilter;
igazolatlanKesesRowfilter += nemGyakorlatiFilter;
igazolatlanHianyzasRowfilter += nemGyakorlatiFilter;
igazolatlanKesesRowfilter += nemGyakorlatiFilter;
}
var igazoltHianyzas = mulasztasDataTable.Select(igazoltHianyzasRowfilter);
var igazoltKeses = mulasztasDataTable.Select(igazoltKesesRowfilter);
var igazolatlanHianyzas = mulasztasDataTable.Select(igazolatlanHianyzasRowfilter);
var igazolatlanKeses = mulasztasDataTable.Select(igazolatlanKesesRowfilter);
DataRow[] igazoltGyakHianyzas;
DataRow[] igazoltGyakKeses;
DataRow[] igazolatlanGyakHianyzas;
DataRow[] igazolatlanGyakKeses;
if (isGyakorlati)
{
igazoltGyakHianyzas = mulasztasDataTable.Select(igazoltGyakHianyzasRowfilter);
igazoltGyakKeses = mulasztasDataTable.Select(igazoltGyakKesesRowfilter);
igazolatlanGyakHianyzas = mulasztasDataTable.Select(igazolatlanGyakHianyzasRowfilter);
igazolatlanGyakKeses = mulasztasDataTable.Select(igazolatlanGyakKesesRowfilter);
worksheet.Cells[rowIndex, colNumber + 7].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 8].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 9].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 10].StyleName = IntegerStyleBottomBordered.Name;
if (igazoltGyakHianyzas.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 7].Value = igazoltGyakHianyzas[0].ItemArray[5];
}
if (igazoltGyakKeses.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 8].Value = igazoltGyakKeses[0].ItemArray[4];
}
if (igazolatlanGyakHianyzas.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 9].Value = igazolatlanGyakHianyzas[0].ItemArray[5];
}
if (igazolatlanGyakKeses.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 10].Value = igazolatlanGyakKeses[0].ItemArray[4];
}
}
worksheet.Cells[rowIndex, colNumber + 3].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 4].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 5].StyleName = IntegerStyleBottomBordered.Name;
worksheet.Cells[rowIndex, colNumber + 6].StyleName = IntegerStyleBottomBordered.Name;
if (igazoltHianyzas.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 3].Value = igazoltHianyzas[0].ItemArray[4 + gyakorlatiIndex];
}
if (igazoltKeses.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 4].Value = igazoltKeses[0].ItemArray[3 + gyakorlatiIndex];
}
if (igazolatlanHianyzas.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 5].Value = igazolatlanHianyzas[0].ItemArray[4 + gyakorlatiIndex];
}
if (igazolatlanKeses.Length != 0)
{
worksheet.Cells[rowIndex, colNumber + 6].Value = igazolatlanKeses[0].ItemArray[3 + gyakorlatiIndex];
}
rowIndex++;
}
}
private void FillAggregate(ExcelWorksheet worksheet, int rowNumber, int colNumber)
{
worksheet.Cells[rowNumber + 2, 1].Value = "Tantárgyi átlagok";
worksheet.Cells[rowNumber + 2, 1].StyleName = HeaderStyle.Name;
string aggrfunctionname = "AVERAGE";
for (int columnIndex = 0; columnIndex < colNumber; columnIndex++)
{
string formula = $"{aggrfunctionname}({ColumnLabel(columnIndex + 3)}{2}:{ColumnLabel(columnIndex + 3)}{rowNumber + 1})";
formula = $"IF(ISERROR({formula}),\"\",{formula})";
AddFormulaCell(worksheet, rowNumber + 2, columnIndex + 3, "=" + formula, Numeric2Style);
}
}
}
}

View file

@ -0,0 +1,88 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.Core.ConnectionType;
using Kreta.Resources;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class PedagogusokBeNemIrtOraiHaviBontasban : BaseNyomtatvanyExcel
{
public PedagogusokBeNemIrtOraiHaviBontasban(IConnectionType connectionType, bool isMultisheetExcel = false) : base(connectionType, isMultisheetExcel)
{
StoredProcedure = "uspGetNemNaplozottOrakSzama";
ExcelPackage = new ExcelPackage();
//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 groupByTanarRows = rows.GroupBy(g => g["Tanar"])
.Select(s =>
new
{
Tanar = SDAConvert.ToString(s.Key),
Data = s
}).OrderBy(o => o.Tanar).ToList();
// Munkalap összeállítása
var worksheet = CreateSheet(ExcelNyomtatvanyResource.Osszesito, 1, eOrientation.Landscape, true, 2);
worksheet.Column(1).Width = 35;
worksheet.Column(2).Width = 13;
AddLabelCell(worksheet, 1, 1, ExcelNyomtatvanyResource.Pedagogusok, HeaderStyleBottomBorderedBGGray);
AddLabelCell(worksheet, 1, 2, NyomtatvanyokResource.OktAzon, HeaderStyleBottomBorderedBGGray);
for (var i = 1; i < 11; i++)
{
worksheet.Column(2 + i).Width = 6;
AddLabelCell(worksheet, 1, 2 + i, GetHonapTextForIndex(i), HeaderStyleBottomBorderedBGGray);
}
AddLabelCell(worksheet, 1, 13, AdatszolgaltatasokResource.Osszesen, HeaderStyleBottomBorderedBGGray);
var rowIndex = 2;
foreach (var tanarGroup in groupByTanarRows)
{
AddLabelCell(worksheet, rowIndex, 1, tanarGroup.Tanar, NormalStyleBottomBordered);
AddLabelCell(worksheet, rowIndex, 2, tanarGroup.Data.Select(s => SDAConvert.ToString(s["TanarOktAzon"])).FirstOrDefault(), NormalStyleBottomBordered);
for (var i = 1; i < 11; i++)
{
var value = tanarGroup.Data.Where(x => SDAConvert.ToString(x["Honap"]) == GetHonapTextForIndex(i))
.Select(s => SDAConvert.ToNullableInt32(s["Darab"])).FirstOrDefault();
AddNumberCell(worksheet, rowIndex, 2 + i, value, IntegerStyleBottomBordered);
}
AddAggregateFormulaCell(worksheet, rowIndex, 13, "SUM", rowIndex, 2, rowIndex, 12, true, IntegerStyleBottomBordered);
rowIndex++;
}
AddLabelRange(worksheet, rowIndex, 11, rowIndex, 12, AdatszolgaltatasokResource.Osszesen, HeaderStyleBottomBorderedBGGray);
AddAggregateFormulaCell(worksheet, rowIndex, 13, "SUM", 2, 13, rowIndex - 1, 13, true, IntegerStyleBottomBordered);
}
// 09, 10, 11, 12, 01, 02, 03, 04, 05, 06
private static string GetHonapTextForIndex(int index)
{
return (index + 8 > 12 ? index - 4 : index + 8).ToString("00");
}
}
}

View file

@ -0,0 +1,72 @@
using System.Data;
using System.IO;
using System.Linq;
using Kreta.Core.ConnectionType;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class TanuloJegyeiReszletezesExcelbe : BaseNyomtatvanyExcelWithDataSet
{
public TanuloJegyeiReszletezesExcelbe(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
{
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(DataSet ds, int osztalyId, int sheetIndex = 1)
{
// Adatforrás összeállítása
SetExcelDataSet(ds);
DataTable fejlecDt = DataSet.Tables[0];
var dv = DataSet.Tables[1].DefaultView;
dv.Sort = "TanuloNev ASC,Tantargy ASC,Datum DESC";
DataTable jegyekReszletezeseDt = dv.ToTable(DataSet.Tables[1].TableName);
//Munkalap összeállítása
string osztalyNev = fejlecDt.Rows.Cast<DataRow>().First(x => (int)x["OsztalyId"] == osztalyId)["OsztalyNev"].ToString();
ExcelWorksheet worksheet;
int startRow = 2;
if (ExcelPackage.Workbook.Worksheets.All(x => x.Name != osztalyNev))
{
worksheet = CreateSheet(osztalyNev, sheetIndex, eOrientation.Landscape, true);
worksheet.Row(1).Height = 15;
worksheet.View.FreezePanes(2, 1);
//Fejléc kialakítása
AddLabelCell(worksheet, 1, 1, "Tanuló neve", DocheaderStyle1);
AddLabelCell(worksheet, 1, 2, "Tantárgy", DocheaderStyle1);
AddLabelCell(worksheet, 1, 3, "Értékelő neve", DocheaderStyle1);
AddLabelCell(worksheet, 1, 4, "Értékelés", DocheaderStyle1);
AddLabelCell(worksheet, 1, 5, "Értékelés témája", DocheaderStyle1);
AddLabelCell(worksheet, 1, 6, "Értékelés típusa", DocheaderStyle1);
AddLabelCell(worksheet, 1, 7, "Értékelés módja", DocheaderStyle1);
AddLabelCell(worksheet, 1, 8, "Értékelés dátuma", DocheaderStyle1);
AddLabelCell(worksheet, 1, 9, "Rögzítés dátuma", DocheaderStyle1);
}
else
{
worksheet = ExcelPackage.Workbook.Worksheets.Single(x => x.Name == osztalyNev);
startRow = worksheet.Dimension.End.Row + 1;
}
////Értékelés hozzáadása
AddDataTable(worksheet, startRow, 1, jegyekReszletezeseDt, "OsztalyId=" + osztalyId, NormalStyle, HeaderStyle, dtCols: new string[] { "TanuloNev", "Tantargy", "ErtekeloNev", "Osztalyzat", "Tema", "ErtTip", "ErtMod", "Datum", "RogzitesDatum" });
worksheet.Column(1).AutoFit(18);
worksheet.Column(2).AutoFit(18);
worksheet.Column(3).AutoFit(18);
worksheet.Column(4).AutoFit(9);
worksheet.Column(5).AutoFit(18);
worksheet.Column(6).AutoFit(18);
worksheet.Column(7).AutoFit(18);
worksheet.Column(8).AutoFit(16);
worksheet.Column(9).AutoFit(16);
}
}
}

View file

@ -0,0 +1,193 @@
using System;
using System.Data;
using System.IO;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.Core.ConnectionType;
using Kreta.Resources;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class TanulokBejegyzeseiExcel : BaseNyomtatvanyExcelWithDataSet
{
public TanulokBejegyzeseiExcel(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
{
FileInfo exFile = null;
if (templateFilename != null)
{
exFile = new FileInfo(templateFilename);
}
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
SetWorkbookProperties();
}
public override void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1)
{
SetExcelDataSet(ds);
DataTable fejlecDt = DataSet.Tables[0];
int startRow = 11;
string[] columns = new string[]
{
"Tipus"
,"Szeptember"
,"Oktober"
,"November"
,"December"
,"Januar"
,"Februar"
,"Marcius"
,"Aprilis"
,"Majus"
,"Junius"
,"Felev"
,"Ossz"
};
var tanuloList = DataSet.Tables[1].AsEnumerable().GroupBy(r => r.Field<string>("OktAzon"));
foreach (var tanulo in tanuloList)
{
bool first = true;
ExcelWorksheet worksheet = null;
startRow = 11;
foreach (var tanuloDataRow in tanulo)
{
var tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
var tanuloId = Convert.ToInt32(tanuloDataRow["TanuloId"]);
var cellStyles = new CellStyle[]
{
NormalStyleWrapText
};
if (first)
{
worksheet = CreateSheet($"{tanuloDataRow["TanuloNeve"]} ({tanuloDataRow["OktAzon"]})", sheetIndex, eOrientation.Landscape, true);
//Fejléc
AddLabelRange(worksheet, 1, 1, 1, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 6, 1, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 8, 1, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 10, 1, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalynaploSorszama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 12, 1, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTorzslapszama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 2, 1, 2, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 6, 2, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 8, 2, 9, fejlecDt.Rows[0]["OsztalyNev"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 10, 2, 11, tanuloDataRow["Sorszam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 12, 2, 13, tanuloDataRow["TorzslapSzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 3, 1, 3, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiAnyjaSzuleteskoriNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 3, 3, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiHely, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 6, 3, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiIdo, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 8, 3, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiAllampolgarsaga, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 12, 3, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTajSzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 4, 1, 4, 2, tanuloDataRow["AnyjaNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 3, 4, 5, tanuloDataRow["SzulHely"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 6, 4, 7, tanuloDataRow["SzulIdo"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 8, 4, 11, tanuloDataRow["Allampolgarsaga"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 12, 4, 13, tanuloDataRow["TajSzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 5, 1, 5, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiKepzes, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 6, 5, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiDiakigazolvanySzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 10, 5, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiBeirasiNaploSzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 12, 5, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 6, 1, 6, 5, tanuloDataRow["Kepzes"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 6, 6, 9, tanuloDataRow["DiakIgazolvanySzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 10, 6, 11, tanuloDataRow["BeirasiNaploSorszam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 12, 6, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 7, 1, 7, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzocialisEsTanugyiAdatok, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 8, 1, 8, 13, tanuloDataRow["SocAdat"].ToString(), DocheaderStyleMergedLowerCell);
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelRange(worksheet, 10, 1, 10, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiBejegyzesekSzamaATanevFolyaman, DocheaderStyle1);
AddLabelCell(worksheet, 10, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
//Adatok
foreach (var column in DataSet.Tables[2].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
worksheet.Column(1).AutoFit(35);
for (var i = 2; i <= columns.Length; ++i)
{
worksheet.Column(i).AutoFit(15);
}
first = false;
sheetIndex++;
}
else
{
AddLabelRange(worksheet, startRow, 1, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 6, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 8, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 10, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
startRow++;
AddLabelRange(worksheet, startRow, 1, startRow, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 6, startRow, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 8, startRow, 9, tanuloDataRow["AktualisOsztaly"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 10, startRow, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
startRow += 2;
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiBejegyzesekSzamaATanevFolyaman, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
startRow++;
//Adatok
foreach (var column in DataSet.Tables[2].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
}
}
}
}
}
}

View file

@ -0,0 +1,394 @@
using System;
using System.Data;
using System.IO;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.Core.ConnectionType;
using Kreta.Resources;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class TanulokGyorsbejegyzeseiExcel : BaseNyomtatvanyExcelWithDataSet
{
public TanulokGyorsbejegyzeseiExcel(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null) : base(connectionType, isMultisheetExcel)
{
FileInfo exFile = null;
if (templateFilename != null)
{
exFile = new FileInfo(templateFilename);
}
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
SetWorkbookProperties();
}
public override void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1)
{
SetExcelDataSet(ds);
DataTable fejlecDt = DataSet.Tables[0];
int startRow = 11;
string[] columns = new string[]
{
"Tantargy"
,"Szeptember"
,"Oktober"
,"November"
,"December"
,"Januar"
,"Februar"
,"Marcius"
,"Aprilis"
,"Majus"
,"Junius"
,"Felev"
,"Ossz"
};
var tanuloList = DataSet.Tables[1].AsEnumerable().GroupBy(r => r.Field<string>("OktAzon"));
foreach (var tanulo in tanuloList)
{
bool first = true;
ExcelWorksheet worksheet = null;
startRow = 11;
foreach (var tanuloDataRow in tanulo)
{
var tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
var tanuloId = Convert.ToInt32(tanuloDataRow["TanuloId"]);
var cellStyles = new CellStyle[]
{
NormalStyleWrapText
};
if (first)
{
worksheet = CreateSheet($"{tanuloDataRow["TanuloNeve"]} ({tanuloDataRow["OktAzon"]})", sheetIndex, eOrientation.Landscape, true);
//Fejléc
AddLabelRange(worksheet, 1, 1, 1, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 6, 1, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 8, 1, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 10, 1, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalynaploSorszama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 1, 12, 1, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTorzslapszama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 2, 1, 2, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 6, 2, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 8, 2, 9, fejlecDt.Rows[0]["OsztalyNev"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 10, 2, 11, tanuloDataRow["Sorszam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 2, 12, 2, 13, tanuloDataRow["TorzslapSzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 3, 1, 3, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiAnyjaSzuleteskoriNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 3, 3, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiHely, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 6, 3, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzuletesiIdo, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 8, 3, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiAllampolgarsaga, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 3, 12, 3, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiTajSzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 4, 1, 4, 2, tanuloDataRow["AnyjaNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 3, 4, 5, tanuloDataRow["SzulHely"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 6, 4, 7, tanuloDataRow["SzulIdo"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 8, 4, 11, tanuloDataRow["Allampolgarsaga"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 4, 12, 4, 13, tanuloDataRow["TajSzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 5, 1, 5, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiKepzes, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 6, 5, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiDiakigazolvanySzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 10, 5, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiBeirasiNaploSzama, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 5, 12, 5, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 6, 1, 6, 5, tanuloDataRow["Kepzes"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 6, 6, 9, tanuloDataRow["DiakIgazolvanySzam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 10, 6, 11, tanuloDataRow["BeirasiNaploSorszam"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 6, 12, 6, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, 7, 1, 7, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzocialisEsTanugyiAdatok, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, 8, 1, 8, 13, tanuloDataRow["SocAdat"].ToString(), DocheaderStyleMergedLowerCell);
// Adatok
// Házifeladat hiány
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, 10, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiHazifeladatHianyFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, 10, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, 10, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
foreach (var column in DataSet.Tables[2].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 1;
}
// Felszerelés hiány
if (DataSet.Tables[3].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelszerelesHianyFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[3].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[3].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
// Felmentés
if (DataSet.Tables[4].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelmentesFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[4].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[4].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
// Dicséret
if (DataSet.Tables[5].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiDicseretFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[5].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[5].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
worksheet.Column(1).AutoFit(35);
for (var i = 2; i <= columns.Length; ++i)
{
worksheet.Column(i).AutoFit(15);
}
first = false;
sheetIndex++;
}
else
{
AddLabelRange(worksheet, startRow, 1, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiTanuloNeve, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 6, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktatasiAzonositoja, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 8, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiOsztalya, DocheaderStyleMergedUpperCell);
AddLabelRange(worksheet, startRow, 10, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiKilepesDatuma, DocheaderStyleMergedUpperCell);
startRow++;
AddLabelRange(worksheet, startRow, 1, startRow, 5, tanuloDataRow["TanuloNeve"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 6, startRow, 7, tanuloDataRow["OktAzon"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 8, startRow, 9, tanuloDataRow["AktualisOsztaly"].ToString(), DocheaderStyleMergedLowerCell);
AddLabelRange(worksheet, startRow, 10, startRow, 13, tanuloDataRow["KilepesDatum"].ToString(), DocheaderStyleMergedLowerCell);
startRow += 2;
// Adatok
// Házifeladat hiány
if (DataSet.Tables[2].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiHazifeladatHianyFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
foreach (var column in DataSet.Tables[2].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[2].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 1;
}
// Felszerelés hiány
if (DataSet.Tables[3].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelszerelesHianyFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[3].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[3].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
// Felmentés
if (DataSet.Tables[4].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelmentesFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[4].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[4].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
// Dicséret
if (DataSet.Tables[5].AsEnumerable().ToList().Any(r => r.Field<int>("TanuloId") == tanuloId && SDAConvert.ToDateTime(r["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"])))
{
AddLabelCell(worksheet, startRow, 1, ExcelNyomtatvanyResource.TanulokBejegyzeseiDicseretFeljegyzesek, DocheaderStyle1);
AddLabelCell(worksheet, startRow, 2, ExcelNyomtatvanyResource.TanulokBejegyzeseiSzeptember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 3, ExcelNyomtatvanyResource.TanulokBejegyzeseiOktober, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 4, ExcelNyomtatvanyResource.TanulokBejegyzeseiNovember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 5, ExcelNyomtatvanyResource.TanulokBejegyzeseiDecember, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 6, ExcelNyomtatvanyResource.TanulokBejegyzeseiJanuar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 7, ExcelNyomtatvanyResource.TanulokBejegyzeseiFebruar, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 8, ExcelNyomtatvanyResource.TanulokBejegyzeseiMarcius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 9, ExcelNyomtatvanyResource.TanulokBejegyzeseiAprilis, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 10, ExcelNyomtatvanyResource.TanulokBejegyzeseiMajus, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 11, ExcelNyomtatvanyResource.TanulokBejegyzeseiJunius, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 12, ExcelNyomtatvanyResource.TanulokBejegyzeseiFelev, DocheaderStyleCenteredWithoutBorder);
AddLabelCell(worksheet, startRow, 13, ExcelNyomtatvanyResource.TanulokBejegyzeseiEvVege, DocheaderStyleCenteredWithoutBorder);
tanuloTable = new DataTable(tanuloDataRow["TanuloNeve"].ToString());
foreach (var column in DataSet.Tables[5].Columns)
{
tanuloTable.Columns.Add(column.ToString());
}
foreach (DataRow bejegyzesDataRow in DataSet.Tables[5].Rows)
{
if (Convert.ToInt32(bejegyzesDataRow["TanuloId"]) == tanuloId && SDAConvert.ToDateTime(bejegyzesDataRow["KilepesDatum"]) == SDAConvert.ToDateTime(tanuloDataRow["KilepesDatum"]))
{
tanuloTable.ImportRow(bejegyzesDataRow);
}
}
AddDataTable(worksheet, startRow + 1, 1, tanuloTable, "", NormalStyleCentered, HeaderStyle, cellStyles: cellStyles, dtCols: columns);
startRow += tanuloTable.Rows.Count + 2;
}
}
}
}
}
}
}

View file

@ -0,0 +1,249 @@
using System.Data;
using System.IO;
using System.Linq;
using Kreta.Core.ConnectionType;
using OfficeOpenXml;
namespace Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel
{
public class TanulokMulasztasaiExcel : BaseNyomtatvanyExcelWithDataSet
{
private bool _elmeletGyakorlat = false;
public TanulokMulasztasaiExcel(IConnectionType connectionType, bool isMultisheetExcel = false, string templateFilename = null, bool elmeletGyakorlat = false) : base(connectionType, isMultisheetExcel)
{
FileInfo exFile = null;
if (templateFilename != null)
{
exFile = new FileInfo(templateFilename);
}
ExcelPackage = (exFile == null) ? new ExcelPackage() : new ExcelPackage(exFile);
_elmeletGyakorlat = elmeletGyakorlat;
//Munkalap tulajdonságok beállítása
SetWorkbookProperties();
}
public override void CreateSheet(DataSet ds, int osztalyId, int sheetIndex = 1)
{
// Adatforrás összeállítása
SetExcelDataSet(ds);
DataTable fejlecDt = DataSet.Tables[0];
var dv = DataSet.Tables[1].DefaultView;
dv.Sort = "OsztalyNev ASC,TanuloNev ASC";
DataTable mulasztasokDt = dv.ToTable(DataSet.Tables[1].TableName);
//Munkalap összeállítása
string osztalyNev = fejlecDt.Rows.Cast<DataRow>().First(x => (int)x["OsztalyId"] == osztalyId)["OsztalyNev"].ToString();
ExcelWorksheet worksheet;
int startRow = 2;
if (ExcelPackage.Workbook.Worksheets.All(x => x.Name != osztalyNev))
{
if (_elmeletGyakorlat)
{
worksheet = CreateSheet(osztalyNev, sheetIndex, eOrientation.Landscape, true);
worksheet.Row(1).Height = 15;
worksheet.Row(2).Height = 15;
worksheet.Row(3).Height = 15;
worksheet.View.FreezePanes(4, 2);
//Fejléc kialakítása
AddLabelRange(worksheet, 1, 1, 3, 1, "Tanuló neve", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 2, 3, 2, "Oktatási azonosító", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 3, 3, 3, "Osztály", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 4, 1, 18, "Gyakorlati", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 19, 1, 37, "Elméleti", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 38, 2, 48, "Igazolások típusa", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 4, 2, 6, "Tanórai hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 7, 2, 9, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 10, 2, 12, "Tanórai késések száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 13, 2, 15, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 16, 2, 18, "Tanóráról késett órák", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 19, 2, 21, "Tanórai hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 22, 2, 24, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 25, 2, 27, "Tanórai késések száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 28, 2, 30, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 31, 2, 33, "Tanóráról késett órák", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 34, 2, 35, "Hozott hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 2, 36, 2, 37, "Hozott késett perc", DocheaderStyleSideBordered);
for (int i = 0; i < 10; ++i)
{
AddLabelCell(worksheet, 3, 4 + (i * 3), "Igazolandó", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 5 + (i * 3), "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 6 + (i * 3), "Igazolatlan", DocheaderStyleSideBordered);
}
AddLabelCell(worksheet, 3, 34, "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 35, "Igazolatlan", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 36, "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 37, "Igazolatlan", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 38, "Orvosi igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 39, "Gondviselői igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 40, "Hivatalos távollét", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 41, "Iskolaérdekű távollét", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 42, "Szolgáltatói igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 43, "Iskolai engedély", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 44, "Pályaválasztási célú igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 45, "Kikérő", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 46, "Táppénz", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 47, "Hatósági házi karantén", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 3, 48, "Egyéb", DocheaderStyleSideBordered);
}
else
{
worksheet = CreateSheet(osztalyNev, sheetIndex, eOrientation.Landscape, true);
worksheet.Row(1).Height = 15;
worksheet.Row(2).Height = 15;
worksheet.View.FreezePanes(3, 2);
//Fejléc kialakítása
AddLabelRange(worksheet, 1, 1, 2, 1, "Tanuló neve", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 2, 2, 2, "Oktatási azonosító", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 3, 2, 3, "Osztály", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 4, 1, 6, "Tanórai hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 7, 1, 9, "Tanórán kívüli hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 10, 1, 12, "Tanórai késések száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 13, 1, 15, "Tanóráról késett percek száma", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 16, 1, 18, "Tanóráról késett órák", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 19, 1, 20, "Hozott hiányzás", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 21, 1, 22, "Hozott késett perc", DocheaderStyleSideBordered);
AddLabelRange(worksheet, 1, 23, 1, 33, "Igazolások típusa", DocheaderStyleSideBordered);
for (int i = 0; i < 5; ++i)
{
AddLabelCell(worksheet, 2, 4 + (i * 3), "Igazolandó", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 5 + (i * 3), "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 6 + (i * 3), "Igazolatlan", DocheaderStyleSideBordered);
}
AddLabelCell(worksheet, 2, 19, "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 20, "Igazolatlan", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 21, "Igazolt", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 22, "Igazolatlan", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 23, "Orvosi igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 24, "Gondviselői igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 25, "Hivatalos távollét", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 26, "Iskolaérdekű távollét", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 27, "Szolgáltatói igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 28, "Iskolai engedély", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 29, "Pályaválasztási célú igazolás", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 30, "Kikérő", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 31, "Táppénz", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 32, "Hatósági házi karantén", DocheaderStyleSideBordered);
AddLabelCell(worksheet, 2, 33, "Egyéb", DocheaderStyleSideBordered);
}
}
else
{
worksheet = ExcelPackage.Workbook.Worksheets.Single(x => x.Name == osztalyNev);
}
startRow = worksheet.Dimension.End.Row + 1;
string[] columns;
if (_elmeletGyakorlat)
{
columns = new string[]
{
"TanuloNev"
, "TanuloOktAzon"
, "OsztalyNev"
, "TanoraiHianyzasIgazolandoGyakorlati"
, "TanoraiHianyzasIgazoltGyakorlati"
, "TanoraiHianyzasIgazolatlanGyakorlati"
, "TanoranKivuliHianyzasIgazolandoGyakorlati"
, "TanoranKivuliHianyzasIgazoltGyakorlati"
, "TanoranKivuliHianyzasIgazolatlanGyakorlati"
, "TanoraiKesesDarabszamIgazolandoGyakorlati"
, "TanoraiKesesDarabszamIgazoltGyakorlati"
, "TanoraiKesesDarabszamIgazolatlanGyakorlati"
, "TanoraiKesesIgazolandoGyakorlatiPerc"
, "TanoraiKesesIgazoltGyakorlatiPerc"
, "TanoraiKesesIgazolatlanGyakorlatiPerc"
, "SzamitottKesesIgazolandoGyakorlati"
, "SzamitottKesesIgazoltGyakorlati"
, "SzamitottKesesIgazolatlanGyakorlati"
, "TanoraiHianyzasIgazolandoElmeleti"
, "TanoraiHianyzasIgazoltElmeleti"
, "TanoraiHianyzasIgazolatlanElmeleti"
, "TanoranKivuliHianyzasIgazolandoElmeleti"
, "TanoranKivuliHianyzasIgazoltElmeleti"
, "TanoranKivuliHianyzasIgazolatlanElmeleti"
, "TanoraiKesesDarabszamIgazolandoElmeleti"
, "TanoraiKesesDarabszamIgazoltElmeleti"
, "TanoraiKesesDarabszamIgazolatlanElmeleti"
, "TanoraiKesesIgazolandoElmeletiPerc"
, "TanoraiKesesIgazoltElmeletiPerc"
, "TanoraiKesesIgazolatlanElmeletiPerc"
, "SzamitottKesesIgazolandoElmeleti"
, "SzamitottKesesIgazoltElmeleti"
, "SzamitottKesesIgazolatlanElmeleti"
, "HozottIgazoltHianyzas"
, "HozottIgazolatlanHianyzas"
, "HozottIgazoltHianyzasPerc"
, "HozottIgazolatlanKesesPerc"
, "OrvosiIgazolas"
, "SzuloiIgazolas"
, "HivatalosTavolletIgazolas"
, "IskolaerdekuTavolletIgazolas"
, "SzolgaltatoiIgazolas"
, "IskolaiEngedelyIgazolas"
, "PalyavalasztasiCeluIgazolas"
, "KikeroIgazolas"
, "TappenzIgazolas"
, "HatosagiHaziKaranten"
, "EgyebIgazolas"
};
}
else
{
columns = new string[]
{
"TanuloNev"
, "TanuloOktAzon"
, "OsztalyNev"
, "TanoraiHianyzasIgazolando"
, "TanoraiHianyzasIgazolt"
, "TanoraiHianyzasIgazolatlan"
, "TanoranKivuliHianyzasIgazolando"
, "TanoranKivuliHianyzasIgazolt"
, "TanoranKivuliHianyzasIgazolatlan"
, "TanoraiKesesDarabszamIgazolando"
, "TanoraiKesesDarabszamIgazolt"
, "TanoraiKesesDarabszamIgazolatlan"
, "TanoraiKesesIgazolandoPerc"
, "TanoraiKesesIgazoltPerc"
, "TanoraiKesesIgazolatlanPerc"
, "SzamitottKesesIgazolando"
, "SzamitottKesesIgazolt"
, "SzamitottKesesIgazolatlan"
, "HozottIgazoltHianyzas"
, "HozottIgazolatlanHianyzas"
, "HozottIgazoltHianyzasPerc"
, "HozottIgazolatlanKesesPerc"
, "OrvosiIgazolas"
, "SzuloiIgazolas"
, "HivatalosTavolletIgazolas"
, "IskolaerdekuTavolletIgazolas"
, "SzolgaltatoiIgazolas"
, "IskolaiEngedelyIgazolas"
, "PalyavalasztasiCeluIgazolas"
, "KikeroIgazolas"
, "TappenzIgazolas"
, "HatosagiHaziKaranten"
, "EgyebIgazolas"
};
}
AddDataTable(worksheet, startRow, 1, mulasztasokDt, "OsztalyId=" + osztalyId, NormalStyle, HeaderStyle, dtCols: columns);
worksheet.Column(1).AutoFit(18);
for (var i = 2; i <= mulasztasokDt.Columns.Count; ++i)
{
worksheet.Column(i).AutoFit(11);
}
}
}
}

View file

@ -0,0 +1,241 @@
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 TanulokTantargyiStatisztika : BaseNyomtatvanyExcel
{
private List<int> osztalyFilterIds { get; set; }
private bool IsMagatartasSzorgalomNemLatszik { get; } = false;
public TanulokTantargyiStatisztika(IConnectionType connectionType, List<int> osztalyFilterIds, bool isMultisheetExcel = false, string templateFilename = null, bool isMagatartasSzorgalomNemLatszik = false) : base(connectionType, isMultisheetExcel)
{
this.osztalyFilterIds = osztalyFilterIds;
StoredProcedure = "sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika";
IsMagatartasSzorgalomNemLatszik = isMagatartasSzorgalomNemLatszik;
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;
dbParameters.TryGetValue("pElmeletgyakorlat", out string elmeletGyakorlat);
if (string.IsNullOrWhiteSpace(elmeletGyakorlat))
elmeletGyakorlat = "0";
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 tanuloDt = DataSet.Tables[0];
DataTable tantargyakDt = DataSet.Tables[1];
DataTable ertekelesDt = DataSet.Tables[2];
DataTable magszorgDt = DataSet.Tables[3];
DataTable mulasztasDt = DataSet.Tables[4];
DataTable mulasztasSumDt = DataSet.Tables[5];
DataTable szamossagDt = DataSet.Tables[6];
if (osztalyFilterIds.Count > 0)
{
DataView tanuloDV = new DataView(tanuloDt);
tanuloDV.RowFilter = string.Format("OSZTALYID IN ({0})", string.Join(", ", osztalyFilterIds.ToArray()));
tanuloDt = tanuloDV.ToTable();
var filteredTanuloIds = new List<string>();
foreach (DataRow row in tanuloDt.Rows)
{
filteredTanuloIds.Add($"'{(string)row["TANULOID"]}'");
}
var filteredIds = string.Join(", ", filteredTanuloIds.ToArray());
DataView ertekelesDV = new DataView(ertekelesDt);
ertekelesDV.RowFilter = $"TANULOID IN ({filteredIds})";
ertekelesDt = ertekelesDV.ToTable();
DataView magszorgDV = new DataView(magszorgDt);
magszorgDV.RowFilter = $"TANULOID IN ({filteredIds})";
magszorgDt = magszorgDV.ToTable();
DataView mulasztasDV = new DataView(mulasztasDt);
mulasztasDV.RowFilter = $"TANULOID IN ({filteredIds})";
mulasztasDt = mulasztasDV.ToTable();
DataView mulasztasSumDV = new DataView(mulasztasSumDt);
mulasztasSumDV.RowFilter = $"TANULOID IN ({filteredIds})";
mulasztasSumDt = mulasztasSumDV.ToTable();
DataView szamossagDV = new DataView(szamossagDt);
szamossagDV.RowFilter = $"TANULOID IN ({filteredIds})";
szamossagDt = szamossagDV.ToTable();
}
//Munkalap összeállítása
ExcelWorksheet worksheet = CreateSheet(Resources.ExcelNyomtatvanyResource.TanulokStatisztikaMunkalapnev, sheetIndex, eOrientation.Landscape, true);
worksheet.Row(1).Height = 120;
worksheet.Column(1).Width = 30;
worksheet.Column(2).Width = 13;
worksheet.Column(3).Width = 10;
worksheet.Column(4).Width = 24;
worksheet.View.FreezePanes(2, 5);
for (int targycol = 5; targycol < tantargyakDt.Rows.Count + 4 + 3 + (elmeletGyakorlat.Equals("0") ? 8 : 14); targycol++)
worksheet.Column(targycol).Width = 6;
AddLabelCell(worksheet, 1, 1, Resources.ExcelNyomtatvanyResource.TanulokStatisztikaTanulok, HeaderStyleBottomBordered);
AddLabelCell(worksheet, 1, 2, Resources.ExcelNyomtatvanyResource.TanulokStatisztikaOktAzon, HeaderStyleBottomBordered);
AddLabelCell(worksheet, 1, 3, Resources.ExcelNyomtatvanyResource.TanulokStatisztikaOsztalyok, HeaderStyleBottomBordered);
AddLabelCell(worksheet, 1, 4, Resources.ExcelNyomtatvanyResource.TanulokStatisztikaBesorolas, HeaderStyleBottomBordered);
//AddLabelRange(worksheet, 1, 3, 1, 2/*Magatartás szorgalom*/ + tantargyakDt.Rows.Count + 1 + (elmeletGyakorlat.Equals("0") ? 8 : 14), osztalyDt.Rows[0]["C_NEV"].ToString(), DocheaderStyle2);
//Értékelés statisztika hozzáadása
int colOffset = 1;
int[] retDimErtekeles;
string[] adatMezo;
string[] megjegyzesMezo;
if (IsMagatartasSzorgalomNemLatszik)
{
adatMezo = new string[] { "ERTEKELES" };
megjegyzesMezo = new string[] { "ERTEKELES_SZOVEG_MEGJEGYZES" };
retDimErtekeles = AddDataTablePivotTable(worksheet, 1, colOffset, tantargyakDt, "TANTARGYID", "TANTARGY_NEV", tanuloDt, "TANULOID", new[] { "TANULONEV", "OKTATASIAZONOSITO", "OSZTALYNEV", "BESOROLASA" }, ertekelesDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, megjegyzesMezo, new[] { "AVERAGE", "IF,#3=0,#-1,1", null, null, "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag2, null, null, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaBukasokSzama }, new[] { Numeric2BoldStyleBottomBordered, Numeric2BoldStyleBottomBordered, null, null, IntegerBoldStyleBottomBordered }, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
}
else
{
var magatartasHeaderDtCreatorArray = new List<string[]>
{
new[] { "id", "name", "torolt" },
new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaMagatartas, "F" }
};
int[] retDimMag = AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(magatartasHeaderDtCreatorArray), new[] { "TOROLT" }, "name", tanuloDt, new[] { "TANULOID" }, new[] { "TANULONEV", "OKTATASIAZONOSITO", "OSZTALYNEV", "BESOROLASA" }, magszorgDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "MagatartasOsztalyzat" }, null, null, null, null, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
colOffset += retDimMag[1];
var szorgalomHeaderDtCreatorArray = new List<string[]>
{
new[] { "id", "name", "torolt" },
new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaSzorgalom, "F" }
};
int[] retDimSzorg = AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(szorgalomHeaderDtCreatorArray), new[] { "TOROLT" }, "name", tanuloDt, new[] { "TANULOID" }, null, magszorgDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { "SzorgalomOsztalyzat" }, null, null, null, null, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, null, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
colOffset += retDimSzorg[1];
adatMezo = new string[] { "ERTEKELES" };
megjegyzesMezo = new string[] { "ERTEKELES_SZOVEG_MEGJEGYZES" };
retDimErtekeles = AddDataTablePivotTable(worksheet, 1, colOffset, tantargyakDt, "TANTARGYID", "TANTARGY_NEV", tanuloDt, "TANULOID", null, ertekelesDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, megjegyzesMezo, new[] { "AVERAGE", "IF,#3=0,#-1,1", null, null, "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTanulmanyiAtlag2, null, null, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaBukasokSzama }, new[] { Numeric2BoldStyleBottomBordered, Numeric2BoldStyleBottomBordered, null, null, IntegerBoldStyleBottomBordered }, new[] { "AVERAGE", "COUNTIF,5", "COUNTIF,4", "COUNTIF,3", "COUNTIF,2", "COUNTIF,1" }, new[] { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaTantargyiAtlag, "5", "4", "3", "2", "1" }, new[] { Numeric2BoldStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered, IntegerStyleBottomBordered });
}
colOffset += retDimErtekeles[1];
//Átlagok átlaga
AddAggregateFormulaCell(worksheet, retDimErtekeles[0] - 5, colOffset - 5, "AVERAGE", 2, colOffset - 5, 1 + retDimErtekeles[0] - 7, colOffset - 5, true, Numeric2BoldBigerStyleBottomBordered);
//Átlagok 2 átlaga
AddAggregateFormulaCell(worksheet, retDimErtekeles[0] - 5, colOffset - 4, "AVERAGE", 2, colOffset - 4, 1 + retDimErtekeles[0] - 7, colOffset - 4, true, Numeric2BoldBigerStyleBottomBordered);
//Bukások száma
AddAggregateFormulaCell(worksheet, retDimErtekeles[0] - 5, colOffset - 1, "SUM", 2, colOffset - 1, 1 + retDimErtekeles[0] - 7, colOffset - 1, true, IntegerBoldStyleBottomBordered);
//Dicséret, Kitűnő számosságok
List<string> szamossagTipusok = new List<string> { "Dicseret", "Kituno" };
List<string> szamossagTipusokNev = new List<string> { Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaDicseretekSzama, Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaKitunoErtekelesekSzama };
int szamossagPos = 0;
foreach (var szamossagTipus in szamossagTipusok)
{
var szamossag1DtCreatorArray = new List<string[]>
{
new[] { "id", "name", "TOROLT"},
new[] { "1", szamossagTipusokNev[szamossagPos], "F" }
};
AddDataTablePivotTable(worksheet, 1, colOffset - 3 + szamossagPos, CreateDataTable(szamossag1DtCreatorArray), new string[0], "name",
tanuloDt, new[] { "TANULOID" }, null, szamossagDt, IntegerBoldStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, new[] { szamossagTipus }, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
szamossagPos++;
}
int[] retDimSzamossag = new[] { retDimErtekeles[0], 2 };
//Mulasztási statisztika hozzáadása
List<string[]> hianyzasHeaderDtCreatorArray = new List<string[]>();
List<string[]> kesespercHeaderDtCreatorArray = new List<string[]>();
List<string[]> keseshianyzasHeaderDtCreatorArray = new List<string[]>();
List<string[]> feldolgozandokHeaderDtCreatorArray = new List<string[]>();
List<string> hianyzaskesespercFilter = new List<string>(new[] { "tipus_char", "c_igazolt" });
List<string> keseshianyzasFilter = new List<string>(new[] { "c_igazolt" });
if (elmeletGyakorlat.Equals("0"))
{
hianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
hianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltHianyzas, "H", "T" });
hianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanHianyzas, "H", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
kesespercHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltKesesPerc, "K", "T" });
kesespercHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanKesesPerc, "K", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "c_igazolt" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazoltKesesHianyzas, "T" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaIgazolatlanKesesHianyzas, "F" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.FeldolgozatlanMulasztas, "H", "-" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.FeldolgozatlanKesesPerc, "K", "-" });
}
else if (elmeletGyakorlat.Equals("1"))
{
hianyzaskesespercFilter.Add("c_gyakorlati");
keseshianyzasFilter.Add("c_gyakorlati");
hianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
hianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltHianyzas, "H", "T", "F" });
hianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltHianyzas, "H", "T", "T" });
hianyzasHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanHianyzas, "H", "F", "F" });
hianyzasHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanHianyzas, "H", "F", "T" });
kesespercHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
kesespercHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltKesesPerc, "K", "T", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltKesesPerc, "K", "T", "T" });
kesespercHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanKesesPerc, "K", "F", "F" });
kesespercHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanKesesPerc, "K", "F", "T" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "c_igazolt", "c_gyakorlati" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazoltKesesHianyzas, "T", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazoltKesesHianyzas, "T", "T" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaElmeletiIgazolatlanKesesHianyzas, "F", "F" });
keseshianyzasHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.OsztalyStatisztikaGyakorlatiIgazolatlanKesesHianyzas, "F", "T" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "id", "mulasztas_name", "tipus_char", "c_igazolt", "c_gyakorlati" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "1", Resources.ExcelNyomtatvanyResource.FeldolgozatlanElmeletiMulasztas, "H", "-", "F" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "2", Resources.ExcelNyomtatvanyResource.FeldolgozatlanGyakorlatiMulasztas, "H", "-", "T" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "3", Resources.ExcelNyomtatvanyResource.FeldolgozatlanElmeletiKesesPerc, "K", "-", "F" });
feldolgozandokHeaderDtCreatorArray.Add(new[] { "4", Resources.ExcelNyomtatvanyResource.FeldolgozatlanGyakorlatiKesesPerc, "K", "-", "T" });
}
adatMezo = new[] { "MULASZTASOK_SZAMA" };
int[] retDimHianyzas = AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(hianyzasHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
colOffset += retDimHianyzas[1];
adatMezo = new[] { "KESESPERC" };
int[] retDimKesesperc = AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(kesespercHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
colOffset += retDimKesesperc[1];
adatMezo = new[] { "MULASZTASOK_SZAMA" };
int[] retDimMulasztas = AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(keseshianyzasHeaderDtCreatorArray), keseshianyzasFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "TANULOID" }, null, mulasztasSumDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
colOffset += retDimMulasztas[1];
adatMezo = new[] { "FELDOLGOZATLANOK_SZAMA" };
AddDataTablePivotTable(worksheet, 1, colOffset, CreateDataTable(feldolgozandokHeaderDtCreatorArray), hianyzaskesespercFilter.ToArray(), "mulasztas_name", tanuloDt, new[] { "TANULOID" }, null, mulasztasDt, IntegerStyleBottomBordered, HeaderStyle90BottomBordered, HeaderStyleBottomBordered, adatMezo, null, null, null, null, new[] { "SUM" }, null, new[] { IntegerBoldStyleBottomBordered });
}
}
}