Ikke-OLAP Pivot Slicer-valg
Version 2.384.88 tilføjer typet medlemsselektion til importerede ikke-OLAP Pivot Slicer-caches, der kan bindes til almindelige lokale cachefelter og deres tilkoblede pivottabelvisninger
Inspeicer og ændr en selektion
SlicerCache := Workbook.SlicerCaches.FindByName('SlicerCategory');
if (SlicerCache = nil) or not SlicerCache.IsNonOlapPivot then
raise Exception.Create('A non-OLAP Pivot Slicer cache is required');
if SlicerCache.SetSelectedItems([1]) <> 1 then
raise Exception.Create('Slicer selection could not be changed');
TXLSXSlicerCache.IsNonOlapPivot identificerer den tabellariske Pivot-form; TXLSXSlicerCache.ItemCount, TXLSXSlicerCache.ItemCacheIndex og TXLSXSlicerCache.ItemSelected eksponerer den parsede medlemsliste og selektionen
Medlemslistepositioner er nulbaserede; hvert ItemCacheIndex identificerer et delt medlem i det bundne Pivot-cachefelt, så tal-, tekst-, booleske, dato-, blanke og fejlmedlemmer beholder adskilte identiteter, selv når deres viste tekst matcher
TXLSXSlicerCacheItem gemmer en CacheItemIndex: Integer og Selected: Boolean; TXLSXSlicerCacheItems er dens dynamic array-type, mens cachen eksponerer selektion gennem skrivebeskyttede indekserede egenskaber
TXLSXSlicerCache.SetSelectedItems tager delte medlemsindekser og returnerer 1 ved succes eller -1 for ikke-understøttede, ugyldige eller usikre bindinger; en tom selektion afvises, fordi filformatet kræver mindst ét valgt medlem
TXLSXSlicerCache.ClearSelection returnerer samme statuskonvention og vælger alle medlemmer; den fjerner denne Slicer-begrænsning, mens uafhængige begrænsninger på andre felter beholdes
Delte visninger og eksisterende filtre
Valgte medlemmer inden for én Slicer-cache danner en union; gældende Slicer-caches skærer for hver eksplicit tilkoblet visning, også når det valgte felt er fraværende fra den visnings viste akser; flere UI Slicer-visninger af én cache deler samme selektion
Kald TXLSPivotTable.Make med applikationens result writer for at beregne aktuelle resultater; cache-selektionsændringer omskriver ikke regnearksceller eller regenererer hvert importeret native layout
Excel gemmer ikke-OLAP Slicer-selektioner som almindelig Pivot-medlemsskjulning og sideselektion; formatet gemmer ikke, hvilken operation der oprettede et enkelt skjult flag
Før ændring af en importeret binding validerer HotXLS, at dens gamle samme-felt skjulte og sidemasker matcher den effektive gamle Slicer-selektion; matchende masker behandles som Slicer-styrede, mens inkonsistente eller tvetydige masker afvises uden at gætte; urelaterede felt-manuelle, side- og avancerede filtre forbliver aktive
Gemning og kildeopdatering
Gemning opdaterer Slicer-selektionen og tilkoblede Pivot-medlemsmasker sammen, beholder importerede XML-navnerum og ukendte udvidelser og remapper arkforbindelser til deres gemte identiteter; udvidede Slicer-cache-identifikatorer forbliver adskilt fra almindelige projektmappe-Pivot-cache-identifikatorer
Lokal Pivot-cacheopdatering beholder valgte delte medlemsindekser; eksplicitte undersæt udelader nye medlemmer, mens ryddede selektioner tillader det komplette opdaterede domæne
Grænser og fejladfærd
Selektionsændringer validerer alle tilkoblede visninger og medlemmer før commit og bruger projektmappens mutation guard; fejl bevarer den eksisterende selektion, visningsbegrænsninger og original XML
Tilføjelse, sletning og rydning af Slicer-caches bruger også projektmappens write guard; et frosset projektmappe-view kan ikke ændre tilkoblede Pivot-resultater gennem samlingsmutation
Sletning af en bundet ikke-OLAP Pivot-cache eller rydning af en samling, der indeholder én, afvises før mutation; den eksplicitte RemoveSlicerCache-livscyklusoperation fjerner dens native visninger og rydder enten dens selektion eller overfører den til almindelige Pivot-masker
OLAP- og tabelcache-selektion, grupperede eller beregnede kildefelter, manglende forbindelser, inkonsistente domæner og tvetydige importerede samme-feltmasker forbliver uden for denne operation; ikke-understøttet cacheindhold beholder sin oprindelige repræsentation
Denne selektions-API håndterer importerede og understøttede forfattede Pivot Slicer-caches; forfatterskab af delte visninger og eksplicit cache-fjernelse er tilgængeligt i 2.384.94; sikker regnearksmaterialisering kan erstatte understøttet beregnet output, mens evaluering af krydsfilter no-data-visning forbliver separat arbejde
Sletning af den sidste UI-visning af en bundet ikke-OLAP-cache afvises, før dens tegning, visning eller cache ændres; sletning af én af flere UI-visninger beholder deres delte cache og selektion
Rydning af et regnearks Slicer-visninger tjekker hver berørt cache, før nogen visning fjernes; en sidste bundet visning giver atomær afvisning, mens visninger delt med andre regneark beholder deres cache og selektion
Yderligere postfiltre
TlxPivotRecordFilter = function(ATable: TXLSPivotTable; ARecordIndex: Integer): Boolean of object; procedure TXLSPivotTable.SetRecordFilter(AOwner: TObject; AFilter: TlxPivotRecordFilter); procedure TXLSPivotTable.ClearRecordFilter(AOwner: TObject); property TXLSPivotTable.ExternalRecordFilter: TlxPivotRecordFilter;
TXLSPivotTable.SetRecordFilter registrerer eller erstatter ét callback pr. ikke-nil ejer, og TXLSPivotTable.ClearRecordFilter fjerner ejerens callback; et nil-callback til SetRecordFilter fjerner det også
Registrerede callbacks og det valgfrie TXLSPivotTable.ExternalRecordFilter skærer før tabellens egne filtre og aggregering; projektmappen registrerer sit Slicer-callback uafhængigt, så det ikke overskriver kalderens prædikat
Callbacks modtager nulbaserede postindekser, snapshotter for hvert Make-kald og serialiseres eller kopieres ikke af AssignPivotOnly; ejere og callback-mål forbliver kalder-ejet og skal overleve deres registrering