init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
134
Kreta.BusinessLogic/HelperClasses/SimpleExportColumnCo.cs
Normal file
134
Kreta.BusinessLogic/HelperClasses/SimpleExportColumnCo.cs
Normal file
|
@ -0,0 +1,134 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses
|
||||
{
|
||||
/// <summary>
|
||||
/// Ez a Co írja le az egyszerű export-ok egy oszlopának tulajdonságát/viselkedését.
|
||||
/// </summary>
|
||||
public class SimpleExportColumnCo
|
||||
{
|
||||
/// <summary>
|
||||
/// Az oszlop indexe az excelben, ahová export-áljuk.
|
||||
/// 0-tól indexelünk!
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Az oszlop header-jének a neve, azaz ami az első sorba fog kerülni export-áláskor a tényleges adatok felett.
|
||||
/// </summary>
|
||||
public string HeaderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Az oszlop típusa.
|
||||
/// Ez alapján állítjuk be az excel-ben az adat formátmát. (https://docs.aspose.com/display/cellsnet/Data+Formatting)
|
||||
/// </summary>
|
||||
public Type Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha megadjuk, akkor az oszlophoz tartozó lenyíló lista adatforrását egy külön sheet-be generálunk.
|
||||
/// </summary>
|
||||
public IList<string> DropDownColumnSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha megadjuk, akkor az oszlophoz tartozó lenyíló lista adatforrásának sheet neve lesz.
|
||||
/// Ezt akkor kell használni, ha több lenyíló listának kell használni egy sheet-et adatforrásként. Pl.: Állampolgárság/Állampolgárság2.
|
||||
/// </summary>
|
||||
public string DropDownColumnSourceSheetGroupName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha megadjuk, akkor az oszlophoz generál egy aggregált értéket az oszlop értékeiből az utolsó sor után.
|
||||
/// FONTOS: AGGREGATE function is designed vertical ranges, not horizontal ranges.
|
||||
/// https://support.microsoft.com/en-us/office/aggregate-function-43b9278e-6aa7-4f17-92b6-e19993fa26df
|
||||
/// Default értéke: ExcelAggregateFunctionEnum.NONE és így nem lesz figyelembe véve.
|
||||
/// </summary>
|
||||
public ExcelAggregateFunctionEnum AggregateFunction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha az oszlop bool típusú, akkor annak a megjelenítéséhez használható paraméter.
|
||||
/// Default értéke: BooleanDisplayFormatEnum.Teljes(azaz Igen/Nem fog megjelenni)
|
||||
/// </summary>
|
||||
public BooleanDisplayFormatEnum BooleanDisplayFormat { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha az oszlop DateTime típusú, akkor annak a formázáshoz használható paraméter.
|
||||
/// Default értéke: Kreta.Core.Constants.ToStringPattern.HungarianDate
|
||||
/// </summary>
|
||||
public string DateTimeToStringPattern { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ha az oszlop decimal/decimal?/double/double? típusú, akkor az excel-ben megjelenő tizedesjegyek számának meghatározásához használható paraméter.
|
||||
/// Default értéke: 2
|
||||
/// </summary>
|
||||
public int DecimalDigitCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A property neve, amiből előszedjük az oszlophoz az adatokat.
|
||||
/// Reflection-höz kell.
|
||||
/// </summary>
|
||||
public string PropertyName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ez alapján döntjük el, hogy lenyílólistás lesz-e az oszlop.
|
||||
/// Ha van megadva DropDownColumnSource vagy bool a ColumnType, akkor lenyílólistás lesz.
|
||||
/// </summary>
|
||||
public bool IsDropDownColumn { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Ez alapján dől el, hogy a szöveget a cellában HTML-ként, vagy sima szövegként fogja megjeleníteni.
|
||||
/// </summary>
|
||||
public bool AsHtml { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Ebben az esetben használjuk a SimpleExportColumnAttribute-ot Co-n vagy model-en.
|
||||
/// </summary>
|
||||
/// <param name="index">Az oszlop indexe az excelben, ahová export-áljuk.</param>
|
||||
/// <param name="headerName">Az oszlop header-jének a neve, azaz ami az első sorba fog kerülni export-áláskor a tényleges adatok felett.</param>
|
||||
/// <param name="type">Az oszlop típusa.</param>
|
||||
/// <param name="dropDownColumnSource">Ha megadjuk, akkor az oszlophoz tartozó lenyíló lista adatforrását egy külön sheet-be generálunk.</param>
|
||||
/// <param name="dropDownColumnSourceSheetGroupName">Ha megadjuk, akkor az oszlophoz tartozó lenyíló lista adatforrásának sheet neve lesz.</param>
|
||||
/// <param name="aggregateFunction">Ha megadjuk, akkor az oszlophoz generál egy aggregált értéket az oszlop értékeiből az utolsó sor után.</param>
|
||||
/// <param name="booleanDisplayFormat">Ha az oszlop bool típusú, akkor annak a megjelenítéséhez használható paraméter.</param>
|
||||
/// <param name="dateTimeToStringPattern">Ha a oszlop DateTime típusú, akkor annak a formázáshoz használható paraméter.</param>
|
||||
/// <param name="decimalDigitCount">Ha a oszlop decimal/decimal?/double/double? típusú, akkor az excel-ben megjelenő tizedesjegyek számának meghatározásához használható paraméter.</param>
|
||||
/// <param name="asHtml">Ha az oszlop string típusú, akkor ezzel adhatjuk meg, hogy HTML vagy egyszerű szövegként jelenjen meg.</param>
|
||||
/// <param name="propertyName">A property neve, amiből előszedjük az oszlophoz az adatokat.</param>
|
||||
public SimpleExportColumnCo(
|
||||
int index,
|
||||
string headerName,
|
||||
Type type,
|
||||
IList<string> dropDownColumnSource,
|
||||
string dropDownColumnSourceSheetGroupName,
|
||||
ExcelAggregateFunctionEnum aggregateFunction = ExcelAggregateFunctionEnum.NONE,
|
||||
BooleanDisplayFormatEnum booleanDisplayFormat = BooleanDisplayFormatEnum.Teljes,
|
||||
string dateTimeToStringPattern = Constants.ToStringPattern.HungarianDate,
|
||||
int decimalDigitCount = 2,
|
||||
bool asHtml = false,
|
||||
string propertyName = null)
|
||||
{
|
||||
Index = index;
|
||||
HeaderName = headerName;
|
||||
Type = type;
|
||||
DropDownColumnSource = dropDownColumnSource;
|
||||
DropDownColumnSourceSheetGroupName = Type == typeof(bool) ? CommonResource.Logikai : dropDownColumnSourceSheetGroupName;
|
||||
AggregateFunction = aggregateFunction;
|
||||
BooleanDisplayFormat = booleanDisplayFormat;
|
||||
DateTimeToStringPattern = dateTimeToStringPattern;
|
||||
if (decimalDigitCount < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
DecimalDigitCount = decimalDigitCount;
|
||||
AsHtml = asHtml;
|
||||
PropertyName = propertyName;
|
||||
if (DropDownColumnSource != null && DropDownColumnSource.Count > 0 || Type == typeof(bool))
|
||||
{
|
||||
IsDropDownColumn = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue