HotXLS-dokumentaatio

Käännetty raportointi-API

The lxReport -yksikkö kääntää paikkamerkit ja rakenteelliset raporttinauhat kerran ja soveltaa sitten soittajan omistamaa dataa rajattujen kursorien kautta skannaamatta luotuja työkirjaobjekteja uudelleen

Taulukko- ja kursorisopimukset

IXLSReportCursorMoveNext, RowIndexja Values paljastavat kerrallaan yhden eteenpäin suuntautuvan rivin
IXLSReportTableName, ColumnCount, ColumnNamesja CreateCursor määrittävät uudelleenkäytettävän taulukkomuotoisen lähteen
IXLSReportRandomAccessTableRowCount ja kaksiulotteinen Values lisäävät indeksoidun pääsyn, jota liitokset ja relaatiot käyttävät
IXLSReportTableProviderTryGetTable ratkaisee nimetyn taulukon hitaasti
TXLSReportMemoryTableAddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNamesja RowCount tarjoavat omistetun muistissa olevan toteutuksen
TXLSReportDataContextRegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTablesja LoadedTableCount koordinoivat ennalta ladattuja ja hitaasti ladattavia lähteitä; RegisterResolver, HasResolver, RemoveResolver, ClearResolversja ResolverCount hallinnoivat tyypitettyjä resolvereita, ja BeginRun ottaa taulukoista ja tarjoajista tilannekuvan eristettyyn suoritusta kohtainen istuntoon, joten erilliset suoritukset eivät koskaan jaa tarjoajien tuloksia

Hallitut kyselytarjoajat

IXLSReportQueryExecutor.ExecuteReadOnly pitää kyselyn suorituksen isäntäsovelluksen omistuksessa ja hyväksyy vain sovelluskoodin rekisteröimiä määritelmiä

TXLSReportQueryParameter, TXLSReportQueryParametersja TXLSReportQueryDefinition paljastavat Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameterja ClearParameters

TXLSReportQueryProvider käyttää RegisterQuery, RemoveQuery, Clearja TryGetTable-metodeja, ja Count, Definitionsja MaximumTimeoutMS paljastavat sallittujen kyselyiden listan ja aikakatkaisun ylärajan

Suoritusta kohtaiset data-istunnot

IXLSReportDataSession on yhden raportin suorituksen taustalla oleva eristetty laiska välimuisti: DeclareRequest rekisteröi TXLSReportDataRequest in (tyyppi TXLSReportDataRequestKind: xrdrkNamed tai xrdrkUser), jonka TXLSReportDataSource (tyyppi TXLSReportDataSourceKind: määrittelemätön, solu, aluenauba, taulukkonauba tai lauseke) ja TXLSReportDataParameter -luettelo kuvaavat lähteen ja sen arvot, ja jonka RunControl on isännän IXLSReportRunControl -peruutuskahva; HasResolver testaa tarjoaja-avaimen, TryGetTable ja RequireTable lukevat välimuistissa olevia aliaksia, TryResolveTable ja RequireResolvedTable ratkaisevat tarvittaessa TXLSReportDataResolveResult iksi (tila TXLSReportDataResolveStatus: xrdrsUnhandled, xrdrsResolved, xrdrsNotFoundtai xrdrsDataError), ja TryGetState raportoi TXLSReportDataSessionState in (lataus, ratkaistu, ei löytynyt tai datavirhe), kun taas CachedAliasCount ja ResolvedAliasCount paljastavat istunnon koon

IXLSReportDataView.TryGetValue hakee yhden nimetyn arvon nostamatta poikkeusta, täydentäen indeksoituja Count-, Names- ja Values -käsittelijöitä

Relaatiot ja hitaasti ladattavat taulukko-yhdistäjät

TXLSReportRowIndexes ja TXLSReportRelationIndex säilyttävät lapsirivien numerot yhdistelmäavainämpäreissä; käytä FindChildRows tai CreateChildCursor -metodia ja tarkastele BucketCount tai IndexedRowCount

TXLSReportAggregateKind, TXLSReportAggregateja TXLSReportJoinKind määrittävät TXLSReportTableFactory-luokan, jonka rivisuodattimet vertailevat TXLSReportFilterOperator illa (xrfoEqual, xrfoNotEqual, xrfoGreater, xrfoGreaterEqual, xrfoLess, xrfoLessEqual, xrfoContains, xrfoStartsWith, xrfoEndsWith)

Aggregate definitionsCountAggregate, MinAggregateja Aggregate
Projection and reductionTop, Columns, NRowsja Min
CompositionUnion, Joinja Split palauttavat hitaasti ladattavia näkymiä kopioimatta täydellisiä väliaikaisten rivien kuormia

Nimettyjen ja eksplisiittisten alueiden nauhat

TXLSReportBandKind valitsee rivi-, sarake- tai ristiintaulukkolaajennuksen, ja TXLSReportBandState raportoi valmiin, käynnissä olevan, valmistuneen, virheiden kanssa valmistuneen, perutun tai epäonnistuneen elinkaaritilan

TXLSCompiledReportBand hyväksyy tarkkarajaisen määritellyn nimen tai CreateForRange-metodin ja laajenee sitten Run -ylikuormitusten kautta; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCountja State paljastavat käännetyt suunnitelman

EmptyBandPolicy (tyyppi TXLSEmptyBandPolicy) ohjaa, mitä nauha tekee malliriveillään, kun datajoukko on tyhjä — xreKeepTemplate jättää rivit koskemattomiksi, xreClearTemplate tyhjentää nauhan solut mukaan lukien paikkamerkit ja xreDeleteTemplate poistaa mallirivit — ja DeleteLastRow poistaa laajennetun lohkon viimeiset BandHeight riviä sen kopioiden ilmestymisen jälkeen, jotta lopulliset X-alueen erotinrivit romahtavat

FixedBand saa rivinauhat ylikirjoittamaan mallirivien alapuolella olevat rivit uusien lisäämisen sijaan, mikä pitää ympäröivän sisällön kiinteässä sijainnissa

TXLSCompiledTableReportBand.Run laajentaa yhden Excel-taulukon datamallirivin säilyttäen taulukon metatiedot; tarkastele TableName, Sheet, SheetIndex, ExcelTable, TemplateRowja State-arvoja ja määritä samat V2-kuvan ominaisuudet, jotka aluenaubatkin paljastavat

Alue- ja Excel-taulukkonauhat jakavat ErrorModein, StrictDataAccessin, RuntimeLimitsin ja muuttumattomat LastResult -tilannekuvat; xremWriteAndContinue kirjoittaa vain eksplisiittiset palautuvat soluvirheet literaaleina diagnostiikkateksteinä, kirjaa lähde BandInputRow in ja todelliset tulostuskoordinaatit ja jatkaa myöhempiä kohteita ja rivejä, kun taas rakenteelliset, peruutus-, resurssiraja-, callback- ja rollback-virheet jäävät kohtalokkaiksi

TXLSCompiledSheetReportBand.Run luo tietuekohtaisia laskentataulukoita käyttäen NameColumn, NamePrefixja DeleteTemplateAfterRun-arvoja; TXLSCompiledOverflowReportBand.Run luo jatkolaskentataulukoita käyttäen NamePrefix ja DeleteTemplateAfterRun

Kokonaisten työkirjojen mallit

TXLSReportTemplateTarget ja TXLSReportTemplateTargets valitsevat solut, kommentit, hyperlinkit, muodot, ylä- ja alatunnisteet, laskentataulukoiden nimet, määritellyt nimet ja dokumentin ominaisuudet

TXLSCompiledReportTemplate.Compile tallentaa kohteet ja lausekkeet, Analyze palauttaa osoitettuja TXLSReportIssues-virheitä, Run -ylikuormitukset soveltavat arvoja ja WriteDiagnostics kirjoittaa virheet laskentataulukkoon; TargetAreas, TargetCountja UserTableCount kuvaavat käännetyt pinnan ja rekisteröidyt käyttäjätaulukot

ProcessStructuralDirectives (oletus True) saa mallin Run in suorittamaan rakenteelliset {{#delete}} - ja {{#format}} -direktiivit arvokohteiden soveltamisen jälkeen — sen taustalla oleva TXLSReportDirectiveProcessor jäsentää alueet, soveltaa ne ja raportoi käsiteltyjen määrän AppliedCount in kautta — ja CreateEncrypted avaa salatun mallin salasanallaan ja kääntää sen pitäen työkirjan tavoitettavissa Workbook -ominaisuuden kautta

TXLSReportIssueKind, TXLSReportIssueja TXLSReportIssues tunnistavat virheellisen, puuttuvan, kelvottoman, tuntemattoman tai syklisen paikkamerkkisisällön kohde- ja solukoordinaatteineen

Sisällytykset, kuvat ja muotoilu

IXLSReportIncludeResolver.Resolve toimittaa nimettyjä fragmentteja ja sen Immutable -lippu sallii turvallisen uudelleenkäytön; TXLSReportIncludeLibrary tarjoaa Add, Remove, Clear, Freeze, Resolve, Countja Immutable

IXLSReportImageProvider.TryGetImage palauttaa TXLSReportImageValue -arvon, jonka TXLSReportImageFitmäärittää; TXLSReportMissingImagePolicy ohjaa puuttuvia resursseja, kun taas TXLSReportImageBinder.Apply, ApplyTarget, MissingPolicyja ClearDirectiveCell päivittävät tarkat kuvadirektiivit

TXLSReportImageBinder.ApplyTargetV2 sitoo yhden direktiivisolun V2-tarjoajasopimuksen kautta ja välittää TXLSReportTransformImageEvent -tapahtuman, joka voi kirjoittaa ratkaistun payloadin uudelleen ennen sen laskeutumista; itse ratkaistu paikkamerkki on TXLSReportEvaluatedTarget , jonka TXLSReportEvaluatedTargetKind erottaa xretNonein, xretTextin, xretValuein ja xretFormulain; IXLSReportImageCancellation.IsCancellationRequested antaa pitkään pyörivien tarjoajien havaita yhteistyöperuutuksen

IXLSReportImageDataProviderV2.GetImage vastaanottaa TXLSReportImageRequest in, jossa on vakaa työarkki-identiteetti, käännetty kohde, nauhojen ja taulukoiden nimet, loogiset ja kursoririvit, vain luku -nykyrivariview, direktiivi- ja ankkurisolut, kohteen mitat ja siirtymät EMUina sekä IXLSReportImageCancellation

TXLSReportImageResult kantaa TXLSReportImagePayload ia, jonka Kind (TXLSReportImagePayloadKind) valitsee xripMissingin, tavut tai virran, ja virran elinkaaren julistaa TXLSReportImageStreamOwnership: xrisoBorrowed -virrat jäävät soittajan omistukseen ja palauttavat sijaintinsa, jos ne ovat haettavissa, kun taas xrisoTransferred -virrat vapautetaan täsmälleen kerran; valinnaiset SourceWidth, SourceHeight, SourceDpiXja SourceDpiY vahvistavat tai ohittavat fyysisen lähdegeometrian

xrifNatural käyttää lähteen fyysistä kokoa, xrifContain skaalaa ja keskittää kohderuutuun, xrifCover täyttää ruudun symmetrisellä lähteen rajauksella ja xrifStretch täyttää sen säilyttämättä kuvasuhdetta; PNG-, JPEG-, GIF-, BMP-, EMF- ja WMF-geometria luetaan rajatuista otsikoista ilman pikselien dekoodausta

OnTransformImage suoritetaan sen jälkeen, kun tarjoajadata on otettu tilannekuvana, ja ennen työarkin muokkausta; MaximumImageBytes on oletuksena 64 MiB, ja payloadin allekirjoitukset, geometriaotsikot, mitta- ja DPI-parit, rasterin sivu- ja pikselirajat, ankkurit ja ruudukon koordinaatit validoidaan ennen sitomista

TXLSXImage.OffsetXEMU ja OffsetYEMU säilyttävät kuvan sijainnin solunsa tai absoluuttisen ankkurinsa sisällä XLSX- ja ODS-roundtripeissa

TXLSReportDynamicFormat ja TXLSReportFormatEvent antavat suorittajan soveltaa numeromuotoja, rivikorkeuksia ja sarakeleveyksiä kohdekohtaisesti

Uudelleenkäytettävä suoritus

TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgressja TXLSReportRunProgressEvent kuvaavat edistymisen ja peruutuksen rajat

TXLSCompiledReportRunner paljastaa Run, RunToStream, RunToFile, RunToEncryptedFileja Cancel-metodit, ja ReportTemplate, State, Progress, OnProgressja OnFormat ohjaavat uudelleenkäytettävää suoritusta; epäonnistunut validointi nostaa EXLSReportData -poikkeuksen ennen deterministisiä kirjoituksia

ErrorMode (tyyppi TXLSReportErrorMode) on oletuksena xremStop; xremWriteAndContinue käsittelee vain eksplisiittiset EXLSReportRecoverableData -virheet ja resolverien DataError -tulokset, kirjaa järjestyksessä olevia muuttumattomia virheitä LastResult een ( IXLSReportRunResult , joka paljastaa Statein, AppliedCountin, IssueCountin, indeksoidut Issuesit ja kohtalokkaan virheen FailureClassName / FailureMessage in), joiden TXLSReportRuntimeIssue -tilannekuvat paljastavat Category nsa ( TXLSReportRuntimeIssueCategory: xrricDataAccess, xrricProvidertai xrricExpression) ja raportoivat TargetIndexin, SheetNamein, Colin ja sen, oliko virhe jo kirjoitettu ( WasWritten ) tulokseen, ja suoritus päättyy tilaan xrrsCompletedWithErrors

TXLSReportRuntimeLimits.Defaults sallii 100 000 säilytettyä virhettä, 512 merkkiä per puhdistettu viesti ja 16 MiB virhemuistia; aseta positiivinen oma RuntimeLimits -tietue ennen suoritusta ja jätä RuntimeDiagnosticsSheetName tyhjäksi, ellei yhtä jäsenneltyä diagnostiikkataulukkoa tarvita

Palautuvat soluarvot ja kaavat muuttuvat literaaliksi [Report error CODE] message -tekstiksi, turvalliset ei-solukohteet säilyttävät alkuperäisen arvonsa, ja valinnainen diagnostiikkataulukko merkitsee nämä jäsennellyt virheet kirjoitetuiksi; taulukoiden nimien ja määriteltyjen nimien kaavavirheet pysäyttävät aina, koska ne voivat muuttaa työkirjan rakennetta

Resolverien ilmoittamat datavirheet, lausekkeiden nollalla jakaminen ja kelvottomat säännölliset lausekkeet käyttävät vakaita tarjoaja- tai lausekekategorioita; resolverien heittämät poikkeukset sekä kaikki callback-, peruutus-, resurssiraja-, rollback-, serialisointi-, turvallisuus- ja rakennusvirheet jäävät kohtalokkaiksi

RunToStream, RunToFileja RunToEncryptedFile valmistelevat serialisoinnin saman suorituksen ja data-istunnon elinkaaren sisällä ja julkaisevat sen kerran; mikä tahansa kohtalokas, peruttu, serialisointi-, osittainen virtakirjoitus- tai kohteen korvausvirhe säilyttää täyden aiemman kohteen ja vapauttaa väliaikaisen tallennuksen ennen paluuta

Ei-tyhjän tulostusvirran on oltava luettava, kirjoitettava, kokoa muuttava ja siirrettävä (seekable), jotta rollback voi palauttaa alkuperäiset tavut, koon ja sijainnin; enintään 8 MiB:n tilannekuvat pysyvät muistissa ja suuremmat käyttävät hallittua väliaikaistallennusta, ja onnistunut commit jättää virran sijaintiin nolla

Salauttamaton tuloste käyttää generoidun työkirjan lähdemuotoa, joten ODS-malli tuottaa ODS-virran tai -tiedoston vaadituine pakkausmetatietoineen; salattu tuloste käyttää edelleen salattua Office-konttia

ImageProvider säilyttää alkuperäisen yhteensopivuussopimuksen; ImageProviderV2, OnTransformImage, MaximumImageBytes, MissingImagePolicyja ClearImageDirectiveCell antavat suorittajan, generaattorin, aluenauban tai Excel-taulukkonauban käyttää suoraan esikäännettyjä {{#image Key}} -kohteita; jättämällä molemmat tarjoajat pois nämä direktiivisolut jäävät ennalleen

AutofitMode (tyyppi TXLSReportAutofitMode) valitsee koko taulukon autofitin (xramNone, xramRows, xramColumnstai xramBoth), joka suoritetaan kerran kaikkien kohteiden jälkeen, ja AutofitAdjustment on lisävarakerroin (1.0 = ei mitään, 1.1 = 10 % korkeammat rivit)

Generoinnin elinkaari ja mallin lähteet

TXLSReportLifecyclePhase tunnistaa mallin luku-, työkirjagenerointi- ja laskentataulukogenerointirajat, kun taas TXLSReportLifecycleOutcome erottaa saapuneet, valmistuneet, perutut ja epäonnistuneet callbackit

TXLSReportLifecycleContext toimittaa aktiivisen työkirjan ja laskentataulukon, vakaan työarkki-identiteetin, alkuperäiset ja nykyiset koordinaatit, vain luku - IXLSReportDataViewin, kohteiden määrän ja ensimmäisen virheen tiedot; jokainen saapunut before-tapahtuma saa paritetun after-tapahtuman, vaikka generointi peruttaisiin tai se epäonnistuisi

TXLSCompiledReportRunner.BeforeGenerateWorkbook, AfterGenerateWorkbook, BeforeGenerateSheetja AfterGenerateSheet tarkastelevat jäädytettyä joukkoa alkuperäisiä laskentataulukoita; callbackeilla tehdyt rakennemuutokset käynnistävät käännöksen päivityksen lisäämättä uusia laskentataulukoita nykyiseen suoritukseen

TXLSReportGenerator hyväksyy työkirjan, tiedostonimen, soittajan omistaman virran tai salatun tiedoston ja lisää BeforeReadTemplate in ja AfterReadTemplate in generointitapahtumiin; TXLSReportModificationMode valitsee yhteensopivan paikallisen muokkauksen tai eristetyn atomisen kloonigeneroinnin. Vain luku - SourceKind (tyyppi TXLSReportTemplateSourceKind: xrtsWorkbook, xrtsFile, xrtsStreamtai xrtsEncryptedFile) ja TemplateWorkbook raportoivat määritetyn mallin lähteen, kun taas ModificationMode ja IncludeResolver ovat asetettavissa ennen suoritusta

Tiedosto- ja virtamallit käyttävät oletuksena xrmAtomicCloneia; haettavat syötevirrat palauttavat alkuperäisen sijaintinsa, vain eteenpäin toimivat virrat kulutetaan rajatuissa lohkoissa, soittajan virrat pysyvät auki, ja tulostusvirrat tai -tiedostot korvataan vain onnistuneen valmistumisen jälkeen

Suunnittelu, tarkistus ja siirto

TXLSReportPaginationPlanner tarjoaa KeepTogether, SplitRows, MergeSimilarja BalanceColumns -suunnitelmat kiinteille alatunnisteille ja tasapainotetulle tulosteelle

TXLSReportTemplateChecker tarjoaa Check, CheckBandja CheckTableBand-metodit; TXLSReportTemplateMigrator tarjoaa MigrateText ja MigrateWorkbook -metodit tuetuille vanhoille paikkamerkkimuodoille

Delphi-esimerkki

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;

C++Builder-esimerkki

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;

Delphin FeatureShowcase ja C++Builderin XlsxFeatureGallery sisältävät täydelliset ajettavat versiot, jotka varmistavat completed-with-errors -tilan ja virheiden määrän ennen suorittajan vapauttamista

Katso myös