Documentație HotXLS

API de raportare compilată

Unitatea lxReport compilează o singură dată placeholder-ele și benzile structurale de raport, apoi aplică date deținute de apelant prin cursoare limitate, fără a rescana obiectele registrului de lucru generate

Contracte de tabele și cursoare

IXLSReportCursorMoveNext, RowIndex și Values expun un singur rând forward-only la un moment dat
IXLSReportTableName, ColumnCount, ColumnNames și CreateCursor definesc o sursă tabelară reutilizabilă
IXLSReportRandomAccessTableRowCount și Values bidimensional adaugă acces indexat folosit de join-uri și indici de relații
IXLSReportTableProviderTryGetTable rezolvă leneș un tabel denumit
TXLSReportMemoryTableAddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNames și RowCount oferă o implementare în memorie deținută
TXLSReportDataContextRegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTables și LoadedTableCount coordonează sursele eager și leneșe

Furnizori de interogări controlați

IXLSReportQueryExecutor.ExecuteReadOnly menține execuția interogărilor deținută de gazdă și acceptă doar definiții înregistrate de codul aplicației

TXLSReportQueryParameter, TXLSReportQueryParameters și TXLSReportQueryDefinition expun Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameter și ClearParameters

TXLSReportQueryProvider folosește RegisterQuery, RemoveQuery, Clear și TryGetTable, cu Count, Definitions și MaximumTimeoutMS expunând lista albă și plafonul de timeout

Relații și combinatori de tabele leneși

TXLSReportRowIndexes și TXLSReportRelationIndex păstrează numerele rândurilor copil în compartimente cu chei compuse; folosiți FindChildRows sau CreateChildCursor și inspectați BucketCount sau IndexedRowCount

TXLSReportAggregateKind, TXLSReportAggregate și TXLSReportJoinKind configurează TXLSReportTableFactory

Definiții de agregateCountAggregate, MinAggregate și Aggregate
Proiecție și reducereTop, Columns, NRows și Min
CompozițieUnion, Join și Split returnează vederi leneșe fără a copia încărcăturile complete ale rândurilor intermediare

Benzi de interval denumite și explicite

TXLSReportBandKind selectează expandarea pe rând, coloană sau tabel încrucișat, iar TXLSReportBandState raportează starea ciclului de viață

TXLSCompiledReportBand acceptă un nume definit cu domeniu exact sau CreateForRange, apoi se expandează prin supraîncărcările Run; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCount și State expun planul compilat

TXLSCompiledTableReportBand.Run expandează un rând-șablon de date al unui tabel Excel păstrând metadatele tabelului; inspectați TableName, Sheet, SheetIndex, ExcelTable, TemplateRow și State

TXLSCompiledSheetReportBand.Run creează foi per înregistrare folosind NameColumn, NamePrefix și DeleteTemplateAfterRun; TXLSCompiledOverflowReportBand.Run creează foi de continuare folosind NamePrefix și DeleteTemplateAfterRun

Șabloane pentru întregul registru

TXLSReportTemplateTarget și TXLSReportTemplateTargets selectează celule, comentarii, hyperlinkuri, forme, antete și subsoluri, nume de foi, nume definite și proprietăți de document

TXLSCompiledReportTemplate.Compile captează țintele și expresiile, Analyze returnează TXLSReportIssues adresate, supraîncărcările Run aplică valorile, iar WriteDiagnostics scrie problemele într-o foaie de lucru; TargetAreas și TargetCount descriu suprafața compilată

TXLSReportIssueKind, TXLSReportIssue și TXLSReportIssues identifică conținut placeholder malformat, lipsă, invalid, necunoscut sau ciclic, cu coordonate ale țintei și celulei

Include, imagini și formatare

IXLSReportIncludeResolver.Resolve furnizează fragmente denumite, iar indicatorul său Immutable permite reutilizarea în siguranță; TXLSReportIncludeLibrary oferă Add, Remove, Clear, Freeze, Resolve, Count și Immutable

IXLSReportImageProvider.TryGetImage returnează o TXLSReportImageValue configurată de TXLSReportImageFit; TXLSReportMissingImagePolicy controlează resursele lipsă, în timp ce TXLSReportImageBinder.Apply, MissingPolicy și ClearDirectiveCell actualizează directivele exacte de imagine

TXLSReportDynamicFormat și TXLSReportFormatEvent permit unui rulator să aplice formate numerice, înălțimi de rând și lățimi de coloană per țintă

Execuție reutilizabilă

TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgress și TXLSReportRunProgressEvent descriu progresul și limitele de anulare

TXLSCompiledReportRunner expune Run, RunToStream, RunToFile și Cancel, cu ReportTemplate, State, Progress, OnProgress și OnFormat controlând execuția reutilizabilă; validarea eșuată ridică EXLSReportData înainte de scrierile deterministe

Planificare, verificare și migrare

TXLSReportPaginationPlanner oferă planuri KeepTogether, SplitRows, MergeSimilar și BalanceColumns pentru subsoluri fixe și ieșire echilibrată

TXLSReportTemplateChecker oferă Check, CheckBand și CheckTableBand; TXLSReportTemplateMigrator oferă MigrateText și MigrateWorkbook pentru formele de placeholder moștenite acceptate

Exemplu

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;

Consultați și