API kompilovaného zostavovania správ
Jednotka lxReport kompiluje zástupné symboly a štrukturálne pásy zostáv raz a potom aplikuje dáta vlastnené volajúcim cez ohraničené kurzory bez opätovného skenovania vytvorených objektov zošita
Kontrakty tabuliek a kurzorov
| IXLSReportCursor | MoveNext, RowIndex a Values sprístupňujú vždy jeden riadok v smere dopredu |
| IXLSReportTable | Name, ColumnCount, ColumnNames a CreateCursor definujú opätovne použiteľný tabuľkový zdroj |
| IXLSReportRandomAccessTable | RowCount a dvojrozmerné Values pridávajú indexovaný prístup používaný spojeniami a relačnými indexmi |
| IXLSReportTableProvider | TryGetTable rieši pomenovanú tabuľku odložene (lenivo) |
| TXLSReportMemoryTable | AddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNames a RowCount poskytujú vlastnenú implementáciu v pamäti |
| TXLSReportDataContext | RegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTables a LoadedTableCount koordinujú okamžité (eager) a odložené zdroje |
Riadení poskytovatelia dotazov
IXLSReportQueryExecutor.ExecuteReadOnly ponecháva vykonávanie dotazov vo vlastníctve hostiteľa a prijíma iba definície zaregistrované kódom aplikácie
TXLSReportQueryParameter, TXLSReportQueryParameters a TXLSReportQueryDefinition sprístupňujú Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameter a ClearParameters
TXLSReportQueryProvider používa RegisterQuery, RemoveQuery, Clear a TryGetTable, pričom Count, Definitions a MaximumTimeoutMS sprístupňujú zoznam povolených dotazov a strop časového limitu
Relácie a odložené kombinátory tabuliek
TXLSReportRowIndexes a TXLSReportRelationIndex uchovávajú čísla podradených riadkov v kategóriách zložených kľúčov; použite FindChildRows alebo CreateChildCursor a skontrolujte BucketCount alebo IndexedRowCount
TXLSReportAggregateKind, TXLSReportAggregate a TXLSReportJoinKind konfigurujú TXLSReportTableFactory
| Definície agregátov | CountAggregate, MinAggregate a Aggregate |
| Projekcia a redukcia | Top, Columns, NRows a Min |
| Kompozícia | Union, Join a Split vracajú odložené pohľady bez kopírovania kompletných medziriadkových dát |
Pomenované a explicitné pásy rozsahov
TXLSReportBandKind vyberá rozšírenie riadkov, stĺpcov alebo krížových tabuliek a TXLSReportBandState hlási stav životného cyklu
TXLSCompiledReportBand prijíma pomenovaný názov s presným rozsahom alebo CreateForRange a potom sa rozširuje cez preťaženia Run; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCount a State sprístupňujú kompilovaný plán
TXLSCompiledTableReportBand.Run rozširuje jeden riadok šablóny dát Excel tabuľky pri zachovaní metadát tabuľky; skontrolujte TableName, Sheet, SheetIndex, ExcelTable, TemplateRow a State
TXLSCompiledSheetReportBand.Run vytvára hárky pre jednotlivé záznamy pomocou NameColumn, NamePrefix a DeleteTemplateAfterRun; TXLSCompiledOverflowReportBand.Run vytvára pokračovacie hárky pomocou NamePrefix a DeleteTemplateAfterRun
Šablóny celého zošita
TXLSReportTemplateTarget a TXLSReportTemplateTargets vyberajú bunky, komentáre, hypertextové odkazy, tvary, hlavičky a päty, názvy hárkov, pomenované názvy a vlastnosti dokumentu
TXLSCompiledReportTemplate.Compile zachytáva ciele a výrazy, Analyze vracia adresované TXLSReportIssues, preťaženia Run aplikujú hodnoty a WriteDiagnostics zapisuje problémy do hárka; TargetAreas a TargetCount opisujú kompilovaný povrch
TXLSReportIssueKind, TXLSReportIssue a TXLSReportIssues identifikujú chybný, chýbajúci, neplatný, neznámy alebo cyklický obsah zástupných symbolov so súradnicami cieľov a buniek
Zahrnutia, obrázky a formátovanie
IXLSReportIncludeResolver.Resolve dodáva pomenované fragmenty a jeho príznak Immutable umožňuje bezpečné opätovné použitie; TXLSReportIncludeLibrary poskytuje Add, Remove, Clear, Freeze, Resolve, Count a Immutable
IXLSReportImageProvider.TryGetImage vracia TXLSReportImageValue nakonfigurovaný cez TXLSReportImageFit; TXLSReportMissingImagePolicy riadi chýbajúce prostriedky, zatiaľ čo TXLSReportImageBinder.Apply, MissingPolicy a ClearDirectiveCell aktualizujú presné direktívy obrázkov
TXLSReportDynamicFormat a TXLSReportFormatEvent umožňujú spúšťaču aplikovať číselné formáty, výšky riadkov a šírky stĺpcov pre každý cieľ
Opätovne použiteľné vykonávanie
TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgress a TXLSReportRunProgressEvent opisujú hranice priebehu a zrušenia
TXLSCompiledReportRunner sprístupňuje Run, RunToStream, RunToFile a Cancel, pričom ReportTemplate, State, Progress, OnProgress a OnFormat riadia opätovne použiteľné vykonávanie; zlyhaná validácia vyvoláva EXLSReportData pred deterministickým zápisom
Plánovanie, kontrola a migrácia
TXLSReportPaginationPlanner poskytuje plány KeepTogether, SplitRows, MergeSimilar a BalanceColumns pre pevné päty a vyvážený výstup
TXLSReportTemplateChecker poskytuje Check, CheckBand a CheckTableBand; TXLSReportTemplateMigrator poskytuje MigrateText a MigrateWorkbook pre podporované staršie formy zástupných symbolov
Príklad
Table := TXLSReportMemoryTable.Create('Orders', ['Customer', 'Amount']);
Table.AddRow(['A. Datum', 1200]);
Table.AddRow(['Contoso', 950]);
Values := TStringList.Create;
Template := TXLSCompiledReportTemplate.Create(Workbook);
try
Values.Values['Title'] := 'Quarterly orders';
Template.Run(Values);
finally
Template.Free;
Values.Free;
end;