72 lines
3.4 KiB
C#
72 lines
3.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|