Dokumentacija HotXLS

API kompiliranog izvještavanja

Jedinica lxReport kompilira zamjenske oznake i strukturne izvještajne trake jednom, a zatim primjenjuje podatke u vlasništvu pozivatelja kroz ograničene pokazivače bez ponovnog skeniranja generiranih objekata radne knjige

Ugovori tablica i pokazivača

IXLSReportCursorMoveNext, RowIndex i Values izlažu po jedan redak unaprijed samo za čitanje
IXLSReportTableName, ColumnCount, ColumnNames i CreateCursor definiraju ponovno upotrebljiv tablični izvor
IXLSReportRandomAccessTableRowCount i dvodimenzionalni Values dodaju indeksirani pristup koji koriste spajanja i relacijski indeksi
IXLSReportTableProviderTryGetTable lijeno razrješuje imenovanu tablicu
TXLSReportMemoryTableAddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNames i RowCount pružaju implementaciju u vlasništvu u memoriji
TXLSReportDataContextRegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTables i LoadedTableCount usklađuju željne i liene izvore

Kontrolirani davatelji upita

IXLSReportQueryExecutor.ExecuteReadOnly zadržava izvršavanje upita u vlasništvu domaćina i prihvaća samo definicije koje je registrirao aplikacijski kod

TXLSReportQueryParameter, TXLSReportQueryParameters i TXLSReportQueryDefinition izlažu Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameter i ClearParameters

TXLSReportQueryProvider koristi RegisterQuery, RemoveQuery, Clear i TryGetTable, pri čemu Count, Definitions i MaximumTimeoutMS izlažu popis dopuštenih upita i gornju granicu vremenskog ograničenja

Relacije i lijeni kombinatori tablica

TXLSReportRowIndexes i TXLSReportRelationIndex zadržavaju brojeve podređenih redaka u grupama složenog ključa; koristite FindChildRows ili CreateChildCursor i provjerite BucketCount ili IndexedRowCount

TXLSReportAggregateKind, TXLSReportAggregate i TXLSReportJoinKind konfiguriraju TXLSReportTableFactory

Relacije i lijeni kombinatori tablica

TXLSReportRowIndexes i TXLSReportRelationIndex zadržavaju brojeve podređenih redaka u grupama složenog ključa; koristite FindChildRows ili CreateChildCursor i provjerite BucketCount ili IndexedRowCount

TXLSReportAggregateKind, TXLSReportAggregate i TXLSReportJoinKind konfiguriraju TXLSReportTableFactory, čiji filtri redaka uspoređuju kroz TXLSReportFilterOperator (xrfoEqual, xrfoNotEqual, xrfoGreater, xrfoGreaterEqual, xrfoLess, xrfoLessEqual, xrfoContains, xrfoStartsWith, xrfoEndsWith)

Definicije agregataCountAggregate, MinAggregate i Aggregate
Projekcija i redukcijaTop, Columns, NRows i Min
KompozicijaUnion, Join i Split vraćaju liene prikaze bez kopiranja cjelovitih međupodataka redaka

Imenovane i eksplicitne rasponne trake

TXLSReportBandKind bira širenje po retku, stupcu ili unakrsnoj tablici, a TXLSReportBandState izvještava stanje životnog ciklusa: ready, running, completed, completed-with-errors, canceled ili failed

TXLSCompiledReportBand prihvaća definirano ime točnog opsega ili CreateForRange, a zatim se širi kroz preopterećenja Run-a; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCount i State izlažu kompilirani plan

EmptyBandPolicy (tip TXLSEmptyBandPolicy) upravlja time što traka čini sa redcima predloška kada je skup podataka prazan — xreKeepTemplate ostavlja retke netaknutima, xreClearTemplate čisti ćelije trake uključujući zamjenske oznake, a xreDeleteTemplate briše retke predloška — dok DeleteLastRow uklanja posljednjih BandHeight redaka proširenog bloka nakon što se njegove kopije smjeste, tako da prateći redci X-raspona sepatoria kolapsiraju

FixedBand tjera retke trake da prepisuju retke ispod predloška umjesto da umeću nove, čime okolni sadržaj zadržava fiksnu poziciju

TXLSCompiledTableReportBand.Run širi jedan redak predloška podataka Excel tablice uz očuvanje metapodataka tablice; pregledajte TableName, Sheet, SheetIndex, ExcelTable, TemplateRow i State, te konfigurirajte ista V2 svojstva slika koja izlažu rasponne trake

Rasponne i Excel-tablične trake dijele ErrorMode, StrictDataAccess, RuntimeLimits i nepromjenjive snimke LastResult-a; xremWriteAndContinue zapisuje samo izričite oporavljive greške ćelija kao literalne dijagnostike, bilježi izvorni BandInputRow i stvarne izlazne koordinate te nastavlja s kasnijim ciljevima i recima, dok strukturne, otkazne, ograničavajuće resurse, callback i rollback greške ostaju fatalne

TXLSCompiledSheetReportBand.Run stvara listove po zapisu koristeći NameColumn, NamePrefix i DeleteTemplateAfterRun; TXLSCompiledOverflowReportBand.Run stvara nastavne listove koristeći NamePrefix i DeleteTemplateAfterRun

Imenovane i eksplicitne rasponne trake

TXLSReportBandKind bira širenje po retku, stupcu ili unakrsnoj tablici, a TXLSReportBandState izvještava o stanju životnog ciklusa

TXLSCompiledReportBand prihvaća točno određeno ime ili CreateForRange, a zatim se širi kroz preopterećenja metode Run; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCount i State izlažu kompilirani plan

TXLSCompiledTableReportBand.Run širi jedan redak predloška podataka Excel tablice uz očuvanje metapodataka tablice; provjerite TableName, Sheet, SheetIndex, ExcelTable, TemplateRow i State

TXLSCompiledSheetReportBand.Run stvara listove po zapisu koristeći NameColumn, NamePrefix i DeleteTemplateAfterRun; TXLSCompiledOverflowReportBand.Run stvara nastavne listove koristeći NamePrefix i DeleteTemplateAfterRun

Predlošci cijelih radnih knjiga

TXLSReportTemplateTarget i TXLSReportTemplateTargets biraju ćelije, komentare, hiperveze, oblike, zaglavlja i podnožja, nazive listova, definirana imena i svojstva dokumenta

TXLSCompiledReportTemplate.Compile prikuplja ciljeve i izraze, Analyze vraća adresirane TXLSReportIssues, preopterećenja metode Run primjenjuju vrijednosti, a WriteDiagnostics zapisuje probleme u radni list; TargetAreas i TargetCount opisuju kompiliranu površinu

TXLSReportIssueKind, TXLSReportIssue i TXLSReportIssues prepoznaju neispravan, nedostajući, nevažeći, nepoznati ili ciklički sadržaj zamjenskih oznaka s koordinatama cilja i ćelije

IXLSReportImageDataProviderV2.GetImage prima TXLSReportImageRequest sa stabilnim identitetom radnog lista, kompiliranim ciljem, nazivima trake i tablice, logičkim redcima i pokazivačem, prikazom trenutnog retka samo za čitanje, ćelijama direktiva i sidra, dimenzijama cilja i offsetima u EMU-u te IXLSReportImageCancellation-om

TXLSReportImageResult nosi TXLSReportImagePayload čiji Kind (TXLSReportImagePayloadKind) bira xripMissing, bajtove ili tok, uz životni vijek toka deklariran s TXLSReportImageStreamOwnership: tokovi xrisoBorrowed ostaju u vlasništvu pozivatelja i vraćaju svoju poziciju kada je seekable, dok se tokovi xrisoTransferred otpuštaju točno jednom; neobavezni SourceWidth, SourceHeight, SourceDpiX i SourceDpiY tvrde ili nadjačavaju fizičku geometriju izvora

xrifNatural koristi fizičku veličinu izvora, xrifContain skalira i centrira unutar ciljnog okvira, xrifCover puni okvir simetričnim izrezivanjem izvora, a xrifStretch ga puni bez čuvanja omjera stranica; geometrija PNG, JPEG, GIF, BMP, EMF i WMF čita se iz ograničenih zaglavlja bez dekodiranja piksela

IXLSReportIncludeResolver.Resolve pruža imenovane fragmente, a njegova zastavica Immutable dopušta sigurnu ponovnu upotrebu; TXLSReportIncludeLibrary pruža Add, Remove, Clear, Freeze, Resolve, Count i Immutable

IXLSReportImageProvider.TryGetImage vraća TXLSReportImageValue konfiguriran putem TXLSReportImageFit; TXLSReportMissingImagePolicy upravlja nedostajućim resursima, dok TXLSReportImageBinder.Apply, MissingPolicy i ClearDirectiveCell ažuriraju točne direktive slika

TXLSReportDynamicFormat i TXLSReportFormatEvent omogućuju pokretaču primjenu brojčanih formata, visina redaka i širina stupaca po cilju

Ponovno upotrebljivo izvršavanje

TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgress i TXLSReportRunProgressEvent opisuju granice napretka i otkazivanja

TXLSCompiledReportRunner izlaže Run, RunToStream, RunToFile, RunToEncryptedFile i Cancel, uz ReportTemplate, State, Progress, OnProgress i OnFormat koji upravljaju ponovno upotrebljivim izvršavanjem; neuspjela validacija podiže EXLSReportData prije determinističkog zapisivanja

ErrorMode (tip TXLSReportErrorMode) po defaultu je xremStop; xremWriteAndContinue obrađuje samo izričite greške EXLSReportRecoverableData i rezultate DataError razrješivača, bilježi uređene nepromjenjive probleme u LastResult (an IXLSReportRunResult koji izlaže State, AppliedCount, IssueCount, indeksirane Issues te FailureClassName / FailureMessage fatalne greške) čije snimke TXLSReportRuntimeIssue izlažu svoju Category (a TXLSReportRuntimeIssueCategory: xrricDataAccess, xrricProvider ili xrricExpression) i izvještavaju TargetIndex, SheetName, Col te je li problem već WasWritten u izlaz, a završava kao xrrsCompletedWithErrors

TXLSReportRuntimeLimits.Defaults dopušta 100.000 zadržanih problema, 512 znakova po sanitiziranoj poruci i 16 MiB memorije problema; dodijelite pozitivan prilagođeni zapis RuntimeLimits prije izvođenja, a RuntimeDiagnosticsSheetName ostavite praznim osim ako je potreban jedan strukturirani dijagnostički radni list

Oporavljive vrijednosti i formule ćelija postaju literalni tekst [Report error CODE] message, sigurni ne-ćelijski ciljevi zadržavaju izvornu vrijednost, a neobavezni dijagnostički radni list označava te strukturirane probleme kao zapisane; greške naziva radnog lista i formule definiranog imena uvijek zaustavljaju jer mogu promijeniti strukturu radne knjige

Greške podataka deklarirane od razrješivača, dijeljenje izraza nulom i nevažeći regularni izrazi koriste stabilne kategorije davatelja ili izraza; bačene iznimke razrješivača i sve callback, otkazne, ograničenja resursa, rollback, serializacijske, sigurnosne i strukturne greške ostaju fatalne

RunToStream, RunToFile i RunToEncryptedFile pripremaju serializaciju unutar istog vijeka izvođenja i data-sesije, a zatim objavljuju jednom; bilo koja fatalna, otkazna, serializacijska, djelomična greška pisanja toka ili zamjene odredišta čuva potpuno prethodno odredište i otpušta privremenu pohranu prije povratka

Neprazan izlazni tok mora biti čitljiv, upisiv, proširiv i seekable da rollback može vratiti izvorne bajtove, veličinu i poziciju; snimke do 8 MiB ostaju u memoriji, a veće koriste upravljanu privremenu pohranu, dok uspješan commit ostavlja tok na poziciji nula

Nešifrirani izlaz koristi izvorni format generirane radne knjige, pa ODS predložak proizvodi ODS tok ili datoteku s potrebnim metapodacima paketa; šifrirani izlaz i dalje koristi šifrirani Office spremnik

ImageProvider čuva izvorni ugovor kompatibilnosti; ImageProviderV2, OnTransformImage, MaximumImageBytes, MissingImagePolicy i ClearImageDirectiveCell omogućuju pokretaču, generatoru, rasponnoj traci ili Excel-tabličnoj traci da izravno konzumiraju prekompilirane ciljeve {{#image Key}}; izostavljanjem oba davatelja te ćelije direktiva ostaju nepromijenjene

AutofitMode (tip TXLSReportAutofitMode) bira autofit cijelog lista (xramNone, xramRows, xramColumns ili xramBoth) primijenjen jednom nakon izvršavanja svih ciljeva, a AutofitAdjustment je dodatni faktor rezerve (1.0 = nema, 1.1 = 10% viši retci)

Životni ciklus generiranja i izvori predložaka

TXLSReportLifecyclePhase identificira granice čitanja predloška, generiranja radne knjige i generiranja radnog lista, dok TXLSReportLifecycleOutcome razlikuje entered, completed, canceled i failed povratne pozive

TXLSReportLifecycleContext opskrbljuje aktivnu radnu knjigu i radni list, stabilnim identitetom radnog lista, izvornim i trenutnim koordinatama, IXLSReportDataView samo za čitanje, brojem ciljeva i detaljima prve greške; svaki upisani before događaj prima upareni after događaj čak i kada je generiranje otkazano ili ne uspije

TXLSCompiledReportRunner.BeforeGenerateWorkbook, AfterGenerateWorkbook, BeforeGenerateSheet i AfterGenerateSheet promatraju zamrznuti skup izvornih radnih listova; strukturne promjene potaknute callbackom okidaju osvježavanje kompilacije bez dodavanja novostvorenih listova u trenutno izvođenje

TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgress i TXLSReportRunProgressEvent opisuju granice napretka i otkazivanja

TXLSCompiledReportRunner izlaže Run, RunToStream, RunToFile i Cancel, pri čemu ReportTemplate, State, Progress, OnProgress i OnFormat upravljaju ponovno upotrebljivim izvršavanjem; neuspjela provjera podiže EXLSReportData prije determinističkog zapisivanja

Planiranje, provjera i migracija

TXLSReportPaginationPlanner pruža planove KeepTogether, SplitRows, MergeSimilar i BalanceColumns za fiksna podnožja i uravnotežen izlaz

TXLSReportTemplateChecker pruža Check, CheckBand i CheckTableBand; TXLSReportTemplateMigrator pruža MigrateText i MigrateWorkbook za podržane zastarjele oblike zamjenskih oznaka

Primjer

Context := TXLSReportDataContext.Create;
Table := TXLSReportMemoryTable.Create('Orders', ['Customer', 'Amount']);
Table.AddRow(['A. Datum', 1200]);
Context.RegisterTable(Table);
Template := TXLSCompiledReportTemplate.Create(Workbook);
Template.DataContext := Context;
Runner := TXLSCompiledReportRunner.Create(Template);
try
  Runner.StrictDataAccess := True;
  Runner.ErrorMode := xremWriteAndContinue;
  Runner.RuntimeDiagnosticsSheetName := 'Report Diagnostics';
  Runner.RunToFile(Values, OutputFileName);
  RunResult := Runner.LastResult;
finally
  Runner.Free;
  Template.Free;
  Context.Free;
end;

Vidi također

Lxreport::TXLSReportMemoryTable *tableObject =
  new Lxreport::TXLSReportMemoryTable(L"Orders", columns, 1);
Lxreport::_di_IXLSReportTable table;
tableObject->GetInterface(table);
tableObject->AddRow(row, 1);
context->RegisterTable(table);

Lxreport::TXLSCompiledReportTemplate *reportTemplate =
  new Lxreport::TXLSCompiledReportTemplate(workbook);
reportTemplate->DataContext = context;
Lxreport::TXLSCompiledReportRunner *runner =
  new Lxreport::TXLSCompiledReportRunner(reportTemplate);
runner->StrictDataAccess = true;
runner->ErrorMode = Lxreport::xremWriteAndContinue;
runner->RuntimeDiagnosticsSheetName = L"Report Diagnostics";
runner->RunToFile(values, outputFileName);
Lxreport::_di_IXLSReportRunResult runResult = runner->LastResult;

Delphi FeatureShowcase i C++Builder XlsxFeatureGallery sadrže potpune izvedive verzije koje provjere stanje completed-with-errors i broj problema prije otpuštanja pokretača

Vidi također