Derlenmiş raporlama API'si
The lxReport birimi, yer tutucuları ve yapısal rapor bantlarını bir kez derler ve ardından üretilen çalışma kitabı nesnelerini yeniden taramadan, sınırlı imleçler aracılığıyla çağıranın sahip olduğu verileri uygular
Tablo ve imleç sözleşmeleri
| IXLSReportCursor | MoveNext, RowIndexve Values , her seferinde yalnızca bir ileri yönlü satır açığa çıkarır |
| IXLSReportTable | Name, ColumnCount, ColumnNamesve CreateCursor , yeniden kullanılabilir bir tablo kaynağı tanımlar |
| IXLSReportRandomAccessTable | RowCount ve iki boyutlu Values , birleştirmeler ve ilişki dizinlerinin kullandığı dizinli erişimi ekler |
| IXLSReportTableProvider | TryGetTable , adlandırılmış bir tabloyu tembel olarak çözümler |
| TXLSReportMemoryTable | AddRow, ColumnIndexOf, CreateCursor, ColumnCount, ColumnNamesve RowCount , sahiplenilmiş bir bellek içi uygulama sağlar |
| TXLSReportDataContext | RegisterTable, AddProvider, TryGetTable, RequireTable, ClearLoadedTablesve LoadedTableCount , istekli ve tembel kaynakları koordine eder; RegisterResolver, HasResolver, RemoveResolver, ClearResolversve ResolverCount türlü çözümleyicileri yönetir; BeginRun ise tabloları ve sağlayıcıları, ayrı çalıştırmalar hiçbir zaman birbirlerinin sağlayıcı sonuçlarını paylaşmayacak şekilde yalıtılmış, çalıştırma başına bir oturuma anlık görüntüler |
Denetimli sorgu sağlayıcıları
IXLSReportQueryExecutor.ExecuteReadOnly , sorgu yürütmeyi ana bilgisayarın sahipliğinde tutar ve yalnızca uygulama kodu tarafından kaydedilen tanımları kabul eder
TXLSReportQueryParameter, TXLSReportQueryParametersve TXLSReportQueryDefinition , Name, CommandText, TimeoutMS, ParameterCount, Parameters, SetParameterve ClearParameters
TXLSReportQueryProvider , RegisterQuery, RemoveQuery, Clearve TryGetTablekullanır; Count, Definitionsve MaximumTimeoutMS beyaz listeyi ve zaman aşımı tavanını açığa çıkarır
Çalıştırma başına veri oturumları
IXLSReportDataSession , tek bir rapor çalıştırmasının arkasındaki yalıtılmış tembel önbellektir: DeclareRequest , bir TXLSReportDataRequest kaydeder (tür TXLSReportDataRequestKind: xrdrkNamed ya da xrdrkUser); bu isteğin TXLSReportDataSource alanı (tür TXLSReportDataSourceKind: belirtilmemiş, hücre, aralık bandı, tablo bandı ya da ifade) ve TXLSReportDataParameter listesi kaynağı ve değerlerini tanımlar, RunControl ise ana bilgisayarın IXLSReportRunControl iptal tutamacıdır; HasResolver bir sağlayıcı anahtarını sınar, TryGetTable ve RequireTable önbelleğe alınmış takma adları okur, TryResolveTable ve RequireResolvedTable talep üzerine bir TXLSReportDataResolveResult içine çözümler (durum TXLSReportDataResolveStatus: xrdrsUnhandled, xrdrsResolved, xrdrsNotFoundya da xrdrsDataError), TryGetState yükleniyor, çözümlendi, bulunamadı ya da veri hatası durumlarında bir TXLSReportDataSessionState bildirir; CachedAliasCount ve ResolvedAliasCount ise oturumun boyutunu açığa çıkarır
IXLSReportDataView.TryGetValue , istisna yükseltmeden tek bir adlandırılmış değere bakar; indeksli Count, Namesve Values erişimcilerini tamamlar
İlişkiler ve tembel tablo birleştiricileri
TXLSReportRowIndexes ve TXLSReportRelationIndex , alt satır numaralarını birleşik anahtar kovalarında tutar; FindChildRows veya CreateChildCursor kullanın ve BucketCount veya IndexedRowCount
TXLSReportAggregateKind, TXLSReportAggregateve TXLSReportJoinKind , TXLSReportTableFactoryöğesini yapılandırır; fabrikanın satır filtreleri TXLSReportFilterOperator üzerinden karşılaştırır (xrfoEqual, xrfoNotEqual, xrfoGreater, xrfoGreaterEqual, xrfoLess, xrfoLessEqual, xrfoContains, xrfoStartsWith, xrfoEndsWith)
| Aggregate definitions | CountAggregate, MinAggregateve Aggregate |
| Projection and reduction | Top, Columns, NRowsve Min |
| Composition | Union, Joinve Split , eksiksiz ara satır yüklerini kopyalamadan tembel görünümler döndürür |
Adlandırılmış ve açık aralık bantları
TXLSReportBandKind , satır, sütun veya çapraz tablo genişletmesini seçer ve TXLSReportBandState hazır, çalışıyor, tamamlandı, hatalarla tamamlandı, iptal edildi ya da başarısız yaşam döngüsü durumunu bildirir
TXLSCompiledReportBand , tam kapsamlı bir tanımlı ad veya CreateForRangekabul eder, ardından Run aşırı yüklemeleri aracılığıyla genişler; DefinedName, ScopeSheetIndex, Kind, Sheet, SheetIndex, FirstRow, FirstCol, LastRow, LastCol, TargetCountve State derlenmiş planı açığa çıkarır
EmptyBandPolicy ( TXLSEmptyBandPolicytürü), veri kümesi boşken bandın şablon satırlarına ne yapacağını denetler — xreKeepTemplate satırlara dokunmaz, xreClearTemplate yer tutucular dahil bant hücrelerini temizler, xreDeleteTemplate şablon satırlarını siler; DeleteLastRow ise kopyalar yerine oturduktan sonra genişletilmiş bloğun son BandHeight satırını kaldırır, böylece sondaki X-aralık ayırıcı satırları çöker
FixedBand , satır bantlarının yeni satırlar eklemek yerine şablonun altındaki satırların üzerine yazmasını sağlar; böylece çevredeki içerik sabit konumda kalır
Satır ve sütun aralık bantları, her kök ve yanıt şablon aralığına ait olduğunda threaded açıklama konuşmalarını klonlar; metin ve görüntü adı yer tutucuları her kayıt için değerlendirilir, kopyalanan açıklamalar yeni tanımlayıcılar ve yeniden haritalanmış üst tanımlayıcılar alır ve mevcut çalışma kitabı kişi kayıtları yeniden kullanılır
Derleme, şablon sınırı boyunca bölünmüş konuşmaları, eksik üstleri, yinelenen tanımlayıcıları ve geçersiz hücre çapalarını genişletmeden önce reddeder; çapa taşması çalışma sayfası mutasyonundan önce denetlenir ve başarısız veya iptal edilen bir çalıştırma, şablon durumunu geri yüklerken üretilmiş konuşmaları kaldırır
TXLSCompiledTableReportBand.Run , tablo meta verilerini koruyarak bir Excel tablo veri şablonu satırını genişletir; TableName, Sheet, SheetIndex, ExcelTable, TemplateRowve Stateöğelerini inceleyin ve aralık bantlarının açığa çıkardığı aynı V2 görüntü özelliklerini yapılandırın
Aralık ve Excel tablosu bantları ErrorMode, StrictDataAccess, RuntimeLimitsve değiştirilemez LastResult anlık görüntülerini paylaşır; xremWriteAndContinue yalnızca açık, kurtarılabilir hücre hatalarını literal tanılama metni olarak yazar, kaynak BandInputRow ile gerçek çıktı koordinatlarını kaydeder ve sonraki hedef ve satırlarla devam eder; yapısal, iptal, kaynak sınırı, geri çağırma ve rollback hataları ise ölümcül kalır
TXLSCompiledSheetReportBand.Run , NameColumn, NamePrefixve DeleteTemplateAfterRunkullanarak kayıt başına sayfalar oluşturur; TXLSCompiledOverflowReportBand.Run , NamePrefix ve DeleteTemplateAfterRun
Tüm çalışma kitabı şablonları
TXLSReportTemplateTarget ve TXLSReportTemplateTargets , hücreleri, yorumları, köprüleri, şekilleri, üstbilgi ve altbilgileri, sayfa adlarını, tanımlı adları ve belge özelliklerini seçer
TXLSCompiledReportTemplate.Compile , hedefleri ve ifadeleri yakalar, Analyze adreslenmiş TXLSReportIssuesdöndürür, Run aşırı yüklemeleri değerleri uygular ve WriteDiagnostics sorunları bir çalışma sayfasına yazar; TargetAreas, TargetCountve UserTableCount derlenmiş yüzeyi ve kayıtlı kullanıcı tablolarını açıklar
ProcessStructuralDirectives (varsayılan True), şablon Run işleminin değer hedefleri uygulandıktan sonra yapısal {{#delete}} ve {{#format}} yönergelerini yürütmesini sağlar — arkasındaki TXLSReportDirectiveProcessor aralıkları ayrıştırır, uygular ve kaç tanesini işlediğini AppliedCount ile bildirir — ve CreateEncrypted , şifreli bir şablonu parolasıyla açıp derler; çalışma kitabı Workbook özelliği üzerinden erişilebilir kalır
TXLSReportIssueKind, TXLSReportIssueve TXLSReportIssues , hedef ve hücre koordinatlarıyla hatalı, eksik, geçersiz, bilinmeyen veya döngüsel yer tutucu içeriğini tanımlar
Dahil etmeler, görüntüler ve biçimlendirme
IXLSReportIncludeResolver.Resolve , adlandırılmış parçaları sağlar ve Immutable bayrağı güvenli yeniden kullanıma izin verir; TXLSReportIncludeLibrary , Add, Remove, Clear, Freeze, Resolve, Countve Immutable
IXLSReportImageProvider.TryGetImage , TXLSReportImageValue tarafından yapılandırılan bir TXLSReportImageFitdöndürür; TXLSReportMissingImagePolicy eksik kaynakları denetlerken, TXLSReportImageBinder.Apply, ApplyTarget, MissingPolicyve ClearDirectiveCell tam görüntü yönergelerini günceller
TXLSReportImageBinder.ApplyTargetV2 , tek bir yönerge hücresini V2 sağlayıcı sözleşmesi üzerinden bağlar ve çözümlenen yük varış yerine ulaşmadan önce yeniden yazabilen bir TXLSReportTransformImageEvent iletir; çözümlenen yer tutucunun kendisi bir TXLSReportEvaluatedTarget olup TXLSReportEvaluatedTargetKind türü xretNone, xretText, xretValueve xretFormulaarasında ayrım yapar; IXLSReportImageCancellation.IsCancellationRequested , uzun süre çalışan sağlayıcıların işbirlikçi bir iptali gözlemlemesine izin verir
IXLSReportImageDataProviderV2.GetImage ; kararlı çalışma sayfası kimliği, derlenmiş hedef, bant ve tablo adları, mantıksal ve imleç satırları, salt okunur geçerli satır görünümü, yönerge ve çıta hücreleri, EMU cinsinden hedef boyutları ve ofsetleri ile TXLSReportImageRequest taşıyan bir IXLSReportImageCancellation
TXLSReportImageResult , TXLSReportImagePayload alanı ( Kind )TXLSReportImagePayloadKind, bayt ya da akıştan birini seçen bir xripMissingtaşır; akışın ömrü TXLSReportImageStreamOwnershipile bildirilir: xrisoBorrowed akışlar çağıranın mülkiyetinde kalır ve konumlandırılabiliyorsa konumlarını geri alır, xrisoTransferred akışlar ise tam olarak bir kez serbest bırakılır; isteğe bağlı SourceWidth, SourceHeight, SourceDpiXve SourceDpiY , fiziksel kaynak geometrisini doğrular ya da geçersiz kılar
xrifNatural kaynağın fiziksel boyutunu kullanır; xrifContain hedef kutu içinde ölçekleyip ortalar, xrifCover kutuyu simetrik kaynak kırpmasıyla doldurur, xrifStretch ise en-boy oranını korumadan doldurur; PNG, JPEG, GIF, BMP, EMF ve WMF geometrisi, pikselleri çözümlemeden sınırlı başlıklardan okunur
OnTransformImage , sağlayıcı verisinin anlık görüntüsü alındıktan sonra ve çalışma sayfası değiştirilmeden önce çalışır; MaximumImageBytes varsayılanı 64 MiB'dir; yük imzaları, geometri başlıkları, boyut ve DPI çiftleri, raster kenar ve piksel sınırları, çıtalar ve kılavuz koordinatları bağlamadan önce doğrulanır
TXLSXImage.OffsetXEMU ve OffsetYEMU , bir görüntünün hücre ya da mutlak çıta içindeki konumunu XLSX ve ODS round-trip'lerinde korur
TXLSReportDynamicFormat ve TXLSReportFormatEvent , bir çalıştırıcının hedef başına sayı biçimleri, satır yükseklikleri ve sütun genişlikleri uygulamasına olanak tanır
Yeniden kullanılabilir yürütme
TXLSReportRunPhase, TXLSReportRunState, TXLSReportRunProgressve TXLSReportRunProgressEvent , ilerleme ve iptal sınırlarını açıklar
TXLSCompiledReportRunner , Run, RunToStream, RunToFile, RunToEncryptedFileve Cancelöğelerini açığa çıkarır; ReportTemplate, State, Progress, OnProgressve OnFormat yeniden kullanılabilir yürütmeyi denetler; başarısız doğrulama, belirlenimci yazımlardan önce EXLSReportData oluşturur
ErrorMode ( TXLSReportErrorModetürü) varsayılan olarak xremStop'tur; xremWriteAndContinue yalnızca açık EXLSReportRecoverableData hatalarını ve çözümleyici DataError sonuçlarını işler, LastResult içine sıralı, değiştirilemez sorunları kaydeder (bu bir IXLSReportRunResult olup State, AppliedCount, IssueCount, indeksli Issuesve ölümcül bir hatanın FailureClassName / FailureMessage alanlarını açığa çıkarır) ve TXLSReportRuntimeIssue olarak tamamlanır; Category anlık görüntüleri TXLSReportRuntimeIssueCategorydeğerlerini ( xrricDataAccess: xrricProvider, xrricExpressionya da TargetIndex) açığa çıkarır ve SheetName, Col, WasWritten ile sorunun çıktıya zaten yazılıp yazılmadığını ( xrrsCompletedWithErrors
TXLSReportRuntimeLimits.Defaults , 100.000 saklanan soruna, temizlenmiş ileti başına 512 karaktere ve 16 MiB sorun belleğine izin verir; çalıştırmadan önce pozitif bir özel RuntimeLimits kaydı atayın ve yapılandırılmış tek bir tanılama çalışma sayfası gerekmiyorsa RuntimeDiagnosticsSheetName alanını boş bırakın
Kurtarılabilir hücre değerleri ve formülleri literal [Report error CODE] message metnine dönüşür; güvenli hücre dışı hedefler özgün değerlerini korur ve isteğe bağlı bir tanılama çalışma sayfası bu yapısal sorunları yazılmış olarak işaretler; çalışma sayfası adı ve tanımlı ad formülü hataları, çalışma kitabı yapısını değiştirebileceği için her zaman durdurur
Çözümleyicinin bildirdiği veri hataları, sıfıra bölme içeren ifadeler ve geçersiz düzenli ifadeler kararlı sağlayıcı ya da ifade kategorilerini kullanır; çözümleyicinin fırlattığı istisnalar ile tüm geri çağırma, iptal, kaynak sınırı, rollback, serileştirme, güvenlik ve yapısal hatalar ölümcül kalır
RunToStream, RunToFileve RunToEncryptedFile serileştirmeyi aynı çalıştırma ve veri oturumu ömrü içinde hazırlar, sonra tek seferde yayınlar; ölümcül, iptal edilmiş, serileştirme, kısmi akış yazımı ya da hedef değiştirme hatalarında önceki eksiksiz hedef korunur ve dönmeden önce geçici depolama serbest bırakılır
Boş olmayan bir çıktı akışı; rollback'in özgün baytları, boyutu ve konumu geri yükleyebilmesi için okunabilir, yazılabilir, boyutlandırılabilir ve konumlandırılabilir olmalıdır; 8 MiB'a kadar anlık görüntüler bellekte kalır, daha büyükleri yönetilen geçici depolamayı kullanır, başarılı bir commit ise akışı sıfır konumunda bırakır
Şifrelenmemiş çıktı, üretilen çalışma kitabının kaynak biçimini kullanır; böylece bir ODS şablonu, gerekli paket üst verisiyle bir ODS akışı ya da dosyası üretir. Şifreli çıktı, şifreli Office kapsayıcısını kullanmaya devam eder
ImageProvider özgün uyumluluk sözleşmesini korur; ImageProviderV2, OnTransformImage, MaximumImageBytes, MissingImagePolicyve ClearImageDirectiveCell , bir çalıştırıcının, üreticinin, aralık bandının ya da Excel tablosu bandının derlenmiş {{#image Key}} hedeflerini doğrudan tüketmesine izin verir; her iki sağlayıcı da atlanırsa bu yönerge hücreleri değişmeden kalır
AutofitMode ( TXLSReportAutofitModetürü), tüm hedefler çalıştıktan sonra bir kez uygulanan, tüm sayfaya yayılan Otomatik Sığdır seçer (xramNone, xramRows, xramColumnsya da xramBoth); AutofitAdjustment ekstra pay faktörüdür (1.0 = yok, 1.1 = %10 daha yüksek satırlar)
Üretim yaşam döngüsü ve şablon kaynakları
TXLSReportLifecyclePhase , şablon okuma, çalışma kitabı üretimi ve çalışma sayfası üretimi sınırlarını tanımlar; TXLSReportLifecycleOutcome girilen, tamamlanan, iptal edilen ve başarısız geri çağırmaları ayırır
TXLSReportLifecycleContext ; etkin çalışma kitabı ve çalışma sayfasını, kararlı çalışma sayfası kimliğini, özgün ve geçerli koordinatları, salt okunur bir IXLSReportDataViewarayüzünü, hedef sayısını ve ilk hata ayrıntılarını sağlar; girilen her before olayı, üretim iptal edilse ya da başarısız olsa bile eşleşen bir after olayı alır
TXLSCompiledReportRunner.BeforeGenerateWorkbook, AfterGenerateWorkbook, BeforeGenerateSheetve AfterGenerateSheet , donmuş bir özgün çalışma sayfası kümesini gözlemler; geri çağrı odaklı yapı değişiklikleri, yeni oluşturulan sayfaları geçerli çalıştırmaya eklemeden derleme yenilenmesini tetikler
TXLSReportGenerator bir çalışma kitabı, dosya adı, çağıranın sahip olduğu akış ya da şifreli dosya kabul eder ve üretim olaylarına BeforeReadTemplate ile AfterReadTemplate ekler; TXLSReportModificationMode , uyumlu yerinde değişiklik ile yalıtılmış atomik klon üretimi arasında seçim yapar. Salt okunur SourceKind (tür TXLSReportTemplateSourceKind: xrtsWorkbook, xrtsFile, xrtsStreamya da xrtsEncryptedFile) ve TemplateWorkbook , yapılandırılan şablon kaynağını bildirir; ModificationMode ve IncludeResolver çalıştırmadan önce atanabilir
Dosya ve akış şablonları varsayılan olarak xrmAtomicClonekullanır; konumlandırılabilir giriş akışları özgün konumlarını geri alır, yalnızca ileri giden akışlar sınırlı bloklar halinde tüketilir, çağıranın akışları açık kalır ve çıktı akışları ya da dosyaları yalnızca başarılı tamamlanmadan sonra değiştirilir
Planlama, denetleme ve geçiş
TXLSReportPaginationPlanner , sabit altbilgiler ve dengeli çıktı için KeepTogether, SplitRows, MergeSimilarve BalanceColumns planları sağlar
TXLSReportTemplateChecker , Check, CheckBandve CheckTableBandsağlar; TXLSReportTemplateMigrator , desteklenen eski yer tutucu biçimleri için MigrateText ve MigrateWorkbook sağlar
Delphi örneği
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 örneği
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 ve C++Builder XlsxFeatureGallery, çalıştırıcıyı serbest bırakmadan önce hatalarla tamamlanmış durumunu ve sorun sayısını doğrulayan eksiksiz, çalıştırılabilir sürümler içerir