Τεκμηρίωση HotXLS

API μεταγλωττισμένων αναφορών

Η μονάδα lxReport μεταγλωττίζει τα placeholders και τις δομικές ζώνες αναφοράς μία φορά και στη συνέχεια εφαρμόζει δεδομένα που ανήκουν στον καλούντα μέσω οριοθετημένων cursors, χωρίς να επανασαρώνει τα δημιουργημένα αντικείμενα του βιβλίου εργασίας

Συμβόλαια πινάκων και cursors

IXLSReportCursorΤα MoveNext, RowIndex και Values εκθέτουν μία σειρά τη φορά, μόνο προς τα εμπρός
IXLSReportTableΤα Name, ColumnCount, ColumnNames και CreateCursor ορίζουν μία επαναχρησιμοποιήσιμη πηγή πίνακα
IXLSReportRandomAccessTableΤα RowCount και το δισδιάστατο Values προσθέτουν προσπέλαση με ευρετήριο, που χρησιμοποιείται από τα joins και τα ευρετήρια σχέσεων
IXLSReportTableProviderΤο TryGetTable επιλύει έναν ονοματισμένο πίνακα τεμπέλικα
TXLSReportMemoryTableΤα AddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNames και RowCount παρέχουν μια υλοποίηση στη μνήμη που ανήκει στην κλάση
TXLSReportDataContextΤα RegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTables και LoadedTableCount συντονίζουν άμεσες και τεμπέλικες πηγές

Ελεγχόμενοι πάροχοι ερωτημάτων

Το IXLSReportQueryExecutor.ExecuteReadOnly διατηρεί την εκτέλεση ερωτημάτων στον κεντρικό υπολογιστή και δέχεται μόνο ορισμούς που έχουν καταχωριστεί από τον κώδικα της εφαρμογής

Τα TXLSReportQueryParameter, TXLSReportQueryParameters και TXLSReportQueryDefinition εκθέτουν τα Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameter και ClearParameters

Το TXLSReportQueryProvider χρησιμοποιεί τα RegisterQuery, RemoveQuery, Clear και TryGetTable, με τα Count, Definitions και MaximumTimeoutMS να εκθέτουν τη λίστα επιτρεπόμενων ερωτημάτων και το ανώτατο όριο χρόνου

Συνεδρίες δεδομένων ανά εκτέλεση

Η IXLSReportDataSession είναι η απομονωμένη τεμπέλικη cache πίσω από μία εκτέλεση αναφοράς: η DeclareRequest καταχωρεί ένα TXLSReportDataRequest (είδος TXLSReportDataRequestKind: xrdrkNamed ή xrdrkUser) του οποίου η TXLSReportDataSource (είδος TXLSReportDataSourceKind: αδιευκρίνιστο, κελί, ζώνη εύρους, ζώνη πίνακα ή παράσταση) και η λίστα TXLSReportDataParameter περιγράφουν την πηγή και τις τιμές της, και του οποίου το RunControl είναι το handle ακύρωσης IXLSReportRunControl του host· η HasResolver ελέγχει ένα κλειδί πάροχου, οι TryGetTable και RequireTable διαβάζουν αποθηκευμένα alias, οι TryResolveTable και RequireResolvedTable επιλύουν κατ' απαίτηση σε ένα TXLSReportDataResolveResult (κατάσταση TXLSReportDataResolveStatus: xrdrsUnhandled, xrdrsResolved, xrdrsNotFound ή xrdrsDataError), και η TryGetState αναφέρει μια TXLSReportDataSessionState φόρτωσης, επιλυμένη, όχι-βρέθηκε ή σφάλματος δεδομένων, ενώ τα CachedAliasCount και ResolvedAliasCount εκθέτουν το μέγεθος της συνεδρίας

Η IXLSReportDataView.TryGetValue αναζητά μία ονομασμένη τιμή χωρίς να προκαλέσει εξαίρεση, συμπληρώνοντας τους προσπελάστες με δείκτη Count, Names και Values

Σχέσεις και συνδυαστές τεμπέλικων πινάκων

Τα TXLSReportRowIndexes και TXLSReportRelationIndex διατηρούν αριθμούς θυγατρικών σειρών σε κάδους σύνθετου κλειδιού· χρησιμοποιήστε τα FindChildRows ή CreateChildCursor και εξετάστε τα BucketCount ή IndexedRowCount

Τα TXLSReportAggregateKind, TXLSReportAggregate και TXLSReportJoinKind διαμορφώνουν το TXLSReportTableFactory

Ορισμοί συγκεντρωτικώνCountAggregate, MinAggregate και Aggregate
Προβολή και αναγωγήTop, Columns, NRows και Min
ΣύνθεσηΤα Union, Join και Split επιστρέφουν τεμπέλικες όψεις χωρίς να αντιγράφουν πλήρη ενδιάμεσα φορτία σειρών

Ονοματισμένες και ρητές ζώνες περιοχών

Το TXLSReportBandKind επιλέγει επέκταση κατά σειρά, στήλη ή διασταύρωση (cross-tab), και το TXLSReportBandState αναφέρει την κατάσταση κύκλου ζωής

Το TXLSCompiledReportBand δέχεται ένα ονοματισμένο όνομα ακριβούς εμβέλειας ή το CreateForRange και στη συνέχεια επεκτείνεται μέσω των υπερφορτώσεων Run· τα DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCount και State εκθέτουν το μεταγλωττισμένο σχέδιο

Το TXLSCompiledTableReportBand.Run επεκτείνει μία σειρά προτύπου δεδομένων ενός πίνακα Excel διατηρώντας τα μεταδεδομένα του πίνακα· εξετάστε τα TableName, Sheet, SheetIndex, ExcelTable, TemplateRow και State

Το TXLSCompiledSheetReportBand.Run δημιουργεί φύλλα ανά εγγραφή χρησιμοποιώντας τα NameColumn, NamePrefix και DeleteTemplateAfterRun· το TXLSCompiledOverflowReportBand.Run δημιουργεί φύλλα συνέχειας χρησιμοποιώντας τα NamePrefix και DeleteTemplateAfterRun

Πρότυπα ολόκληρου βιβλίου εργασίας

Τα TXLSReportTemplateTarget και TXLSReportTemplateTargets επιλέγουν κελιά, σχόλια, υπερσυνδέσμους, σχήματα, κεφαλίδες και υποσέλιδα, ονόματα φύλλων, ονοματισμένα ονόματα και ιδιότητες εγγράφου

Το TXLSCompiledReportTemplate.Compile συλλαμβάνει στόχους και εκφράσεις, το Analyze επιστρέφει προσδιορισμένα TXLSReportIssues, οι υπερφορτώσεις Run εφαρμόζουν τιμές και το WriteDiagnostics γράφει ζητήματα σε ένα φύλλο εργασίας· τα TargetAreas και TargetCount περιγράφουν τη μεταγλωττισμένη επιφάνεια

Τα TXLSReportIssueKind, TXLSReportIssue και TXLSReportIssues εντοπίζουν κακοσχηματισμένο, ελλιπές, άκυρο, άγνωστο ή κυκλικό περιεχόμενο placeholders με συντεταγμένες στόχου και κελιού

Ενσωματώσεις, εικόνες και μορφοποίηση

Το IXLSReportIncludeResolver.Resolve παρέχει ονοματισμένα τμήματα και η σημαία Immutable επιτρέπει την ασφαλή επαναχρησιμοποίηση· το TXLSReportIncludeLibrary παρέχει τα Add, Remove, Clear, Freeze, Resolve, Count και Immutable

Το IXLSReportImageProvider.TryGetImage επιστρέφει μια TXLSReportImageValue που διαμορφώνεται από το TXLSReportImageFit· το TXLSReportMissingImagePolicy ελέγχει τους ελλιπείς πόρους, ενώ τα TXLSReportImageBinder.Apply, MissingPolicy και ClearDirectiveCell ενημερώνουν ακριβείς οδηγίες εικόνας

Τα TXLSReportDynamicFormat και TXLSReportFormatEvent επιτρέπουν σε έναν εκτελεστή να εφαρμόζει μορφές αριθμών, ύψη σειρών και πλάτη στηλών ανά στόχο

Επαναχρησιμοποιήσιμη εκτέλεση

Τα TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgress και TXLSReportRunProgressEvent περιγράφουν την πρόοδο και τα όρια ακύρωσης

Το TXLSCompiledReportRunner εκθέτει τα Run, RunToStream, RunToFile και Cancel, με τα ReportTemplate, State, Progress, OnProgress και OnFormat να ελέγχουν την επαναχρησιμοποιήσιμη εκτέλεση· η αποτυχημένη επικύρωση εγείρει EXLSReportData πριν από τις ντετερμινιστικές εγγραφές

Κύκλος ζωής δημιουργίας και πηγές προτύπων

Το TXLSReportLifecyclePhase ταυτοποιεί όρια ανάγνωσης προτύπου, δημιουργίας βιβλίου εργασίας και δημιουργίας φύλλου εργασίας, ενώ το TXLSReportLifecycleOutcome διακρίνει callbacks που μπήκαν, ολοκληρώθηκαν, ακυρώθηκαν ή απέτυχαν

Το TXLSReportLifecycleContext παρέχει το ενεργό βιβλίο εργασίας και φύλλο εργασίας, σταθερή ταυτότητα φύλλου, αρχικές και τρέχουσες συντεταγμένες, ένα IXLSReportDataView μόνο για ανάγνωση, πλήθος στόχων και λεπτομέρειες πρώτης αποτυχίας· κάθε before γεγονός που μπαίνει λαμβάνει ένα ζευγαρωμένο after γεγονός ακόμα κι αν η δημιουργία ακυρωθεί ή αποτύχει

Οι TXLSCompiledReportRunner.BeforeGenerateWorkbook, AfterGenerateWorkbook, BeforeGenerateSheet και AfterGenerateSheet παρατηρούν ένα παγωμένο σύνολο αρχικών φύλλων εργασίας· αλλαγές δομής μέσω callbacks πυροδοτούν ανανέωση μεταγλώττισης χωρίς να προσθέτουν τα νεοδημιουργημένα φύλλα στην τρέχουσα εκτέλεση

Ο TXLSReportGenerator δέχεται βιβλίο εργασίας, όνομα αρχείου, ροή ιδιοκτησίας του καλούντα ή κρυπτογραφημένο αρχείο και προσθέτει τα BeforeReadTemplate και AfterReadTemplate στα γεγονότα δημιουργίας· η TXLSReportModificationMode επιλέγει συμβατή in-place μεταβολή ή απομονωμένη δημιουργία με ατομικό κλώνο. Τα μόνο για ανάγνωση SourceKind (τύπος TXLSReportTemplateSourceKind: xrtsWorkbook, xrtsFile, xrtsStream ή xrtsEncryptedFile) και TemplateWorkbook αναφέρουν την configured πηγή προτύπου, ενώ τα ModificationMode και IncludeResolver ορίζονται πριν από μια εκτέλεση

Τα πρότυπα αρχείου και ροής έχουν προεπιλογή το xrmAtomicClone· οι ροές εισόδου με δυνατότητα seek επαναφέρουν την αρχική τους θέση, οι forward-only ροές καταναλώνονται σε οριοθετημένα blocks, οι ροές του καλούντα παραμένουν ανοιχτές, και οι ροές ή αρχεία εξόδου αντικαθίστανται μόνο μετά από επιτυχή ολοκλήρωση

Σχεδιασμός, έλεγχος και μετεγκατάσταση

Το TXLSReportPaginationPlanner παρέχει σχέδια KeepTogether, SplitRows, MergeSimilar και BalanceColumns για σταθερά υποσέλιδα και ισορροπημένη έξοδο

Το TXLSReportTemplateChecker παρέχει τα Check, CheckBand και CheckTableBand· το TXLSReportTemplateMigrator παρέχει τα MigrateText και MigrateWorkbook για υποστηριζόμενες παλαιού τύπου μορφές placeholders

Παράδειγμα σε Delphi

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

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;

Τα FeatureShowcase για Delphi και XlsxFeatureGallery για C++Builder περιέχουν πλήρεις εκτελέσιμες εκδοχές που επαληθεύουν την κατάσταση ολοκληρώθηκε-με-σφάλματα και το πλήθος των σφαλμάτων πριν αποδεσμεύσουν τον runner

Δείτε επίσης