Dynaaminen porautumisen ohjausobjekti
Muistiinpano
Tämä ominaisuus on käytettävissä ohjelmointirajapinnan versiosta 5.7.0 alkaen.
Dynaamisen porautumisen ohjausobjektin avulla visualisointi voi ottaa porautumisominaisuuden käyttöön tai poistaa sen käytöstä dynaamisesti ohjelmointirajapinnan kutsun avulla. Kun porautumisominaisuus on käytössä, kaikki porautumistoiminnot ja laajennus-/kutistustoiminnot ovat käytettävissä, mukaan lukien ohjelmointirajapintakutsut, pikavalikon komennot, ylätunnisteen porautumispainikkeet ja hierarkiatietojen tuki. Kun nämä toiminnot on poistettu käytöstä, ne eivät ole käytettävissä.
Seuraavissa kuvissa on esimerkki visualisoinnista, jossa dynaaminen porautumisen ohjausobjekti on käytössä ja poistettu käytöstä:
Dynaaminen porautumisen ohjausobjekti sisältää seuraavat ohjelmointirajapinnan elementit:
-
isDrillDisabled
merkintä:DataRolesInfo
export interface DataRolesInfo { //… isDrillDisabled?: boolean; // ----- NEW ----- }
-
setCanDrill
menetelmä liittymässäIVisualHost
:export interface IVisualHost extends extensibility.IVisualHost { //… setCanDrill: (drillAllowed: boolean) => void; // ----- NEW ----- }
Voit selvittää, onko porautuminen poistettu käytöstä, käyttämällä isDrillDisabled
päivitysmenetelmän ominaisuutta:
private update(options: VisualUpdateOptions) {
//…
const isDrillDisabled = options.dataViews[0].metadata.dataRoles.isDrillDisabled;
//…
}
Ota porautuminen käyttöön tai poista se käytöstä tarvittaessa ohjelmointirajapintakutsun avulla:
Ottaminen käyttöön:
this.host.setCanDrill(true /* drillAllowed */);
Käytöstä poistaminen:
this.host.setCanDrill(false /* drillAllowed */);
Dynaamisen porautumisen hallintavaatimukset
Porautuminen on oletusarvoisesti käytössä, mutta dynaamisen porautumisen ohjausobjektin avulla visualisointi voi ottaa käyttöön tai poistaa käytöstä porautumisen ohjelmointirajapinnan kutsun avulla.
Visualisoinnissa, jossa on dynaaminen porautumisen ohjausobjekti, on capabilities.json-tiedostossa seuraava koodi:
Kun porautuminen on oletusarvoisesti poissa käytöstä:
"drilldown": { "roles": [ "Rows", "Columns" ], "canDisableDrill": { "disabledByDefault": true } },
Kun porautuminen on oletusarvoisesti käytössä:
"drilldown": { "roles": [ "Rows", "Columns" ], "canDisableDrill": {} },
- canDisableDrill
ominaisuus ilmaisee, että visualisointi tukee tätä ominaisuutta. Ilman tätä ominaisuutta ohjelmointirajapinnan kutsua ei noudateta.
- disabledByDefault
ominaisuus ilmaisee, poistetaanko porautumisominaisuus oletusarvoisesti käytöstä.
Muistiinpano
- disabledByDefault
ominaisuus tulee voimaan, kun teet jonkin seuraavista toimista:
- Uuden visualisoinnin lisääminen pohjaan
- Muunna visualisointi sellaisesta, joka ei tue tätä ominaisuutta.
Jos esimerkiksi muunnat sourceVisual-kohteen targetVisual-arvoksi, targetVisual-ominaisuutta disabledByDefault
tarkastellaan vain, jos sourceVisual ei tue tätä ominaisuutta. Jos sourceVisual tukee tätä ominaisuutta, targetVisual säilyttää lähteenVisual-tilan eikä oletusarvoa.
Alaspäin porautumisen tuen lisääminen olemassa olevan visualisoinnin uuteen versioon
Porautumisominaisuuden käyttäminen tarkoittaa läpimurtomuutosta. Tästä syystä sujuvan siirtymän osalta suosittelemme käyttämään uutta visualisoinnin GUID-tunnusta uudelle versiolle.
Jos kuitenkin haluat säilyttää saman GUID-tunnuksen, muista seuraavat asiat:
Kun siirryt ei-porattavasta versiosta uuteen porattavaan versioon, joitakin tietoja ei ehkä ole annettu -
dataView
kohdassa porautumisominaisuuden osana käyttöön otetun hierarkkisen tietojen tuen vuoksi. Dynaaminen porautumisen ohjausobjekti ei tarjoa automaattista tukea tälle ongelmalle, mutta sitä voidaan käyttää siirtoprosessin hallintaan.Visualisoinnin omatoimista siirtymistä varten visualisoinnin on tehtävä seuraavat toimet:
Määritä, milloin uusi versio ladataan ensimmäisen kerran vanhemman version sijaan, ja käytä ohjelmointirajapintaa
persistProperties
.Poista porautuminen käytöstä kaikkien tietojen vastaanottamiseksi ohjelmointirajapinnan
setCanDrill
avulla.
Seuraavassa esimerkissä näytetään, miten voit siirtää vanhemman visualisoinnin itse sellaiseen, joka käyttää dynaamista porautumisen ohjausobjektia:
Lisää seuraava objekti capabilities.json-tiedostoon:
"DrillMigration": { "displayName": "Drill Migration", "properties": { "isMigrated": { "displayName": "Is Drill Migrated", "type": { "bool": true } } } },
Lisää visual.ts-tiedostoon seuraava:
export class Visual implements IVisual { //... private isCalledToDisableDrillInMigrationScenario = false; private drillMigration = { disabledByDefault: true }; constructor(options: VisualConstructorOptions) { //... this.host = options.host; //... } private update(options: VisualUpdateOptions) { this.handleSelfDrillMigration(options); //... } private handleSelfDrillMigration(options: VisualUpdateOptions): void { if (options && options.dataViews && options.dataViews[0] && options.dataViews[0].metadata) { const metadata = options.dataViews[0].metadata; if (metadata && metadata.dataRoles) { const isDrillDisabled = metadata.dataRoles.isDrillDisabled; if (isDrillDisabled === undefined) { return; } // Continue in case the visual is already migrated if (!metadata.objects?.DrillMigration?.isMigrated) { // Persist the isMigrated property when the drill has the correct state if (this.drillMigration.disabledByDefault === isDrillDisabled) { this.persistMigrationProperty(); } else if (!this.isCalledToDisableDrillInMigrationScenario) { // Use the API call only once this.host.setCanDrill(!this.drillMigration.disabledByDefault); this.isCalledToDisableDrillInMigrationScenario = true; } } } } } private persistMigrationProperty(): void { let property = { merge: [{ objectName: "DrillMigration", properties: { isMigrated: true }, selector: null }] }; this.host.persistProperties(property); } }
Kun visualisointi avataan ensimmäisen kerran tämän koodin lisäämisen jälkeen, DrillMigration-muuttujan arvoksi määritetään tosi ja visualisointi avautuu oletustilassa.
Huomioitavat asiat ja rajoitukset
Porautumistilaa ei tallenneta sen jälkeen, kun porautuminen on pois käytöstä. Jos voit palauttaa porautumisen käytöstä poistamisen jälkeen, vain ensimmäinen taso näytetään riippumatta siitä, mitä ennen sen poistamista käytöstä näytettiin.
Laajenna/kutista-tilaa ei tallenneta porautumisen käytöstä poistamisen jälkeen. Kaikki rivit kutistetaan, kun porautuminen on valmis.
Ohjelmointirajapinnan kutsua ei tueta koontinäytöissä.
Tietonäkymän yhdistämisehdot: Käytä
"max": 1
kaikkiin porattavissa olevan roolin ehtoihin, jos haluat rajoittaa visualisoinnin näyttämään vain yhden kentän, kun porautuminen on poistettu käytöstä. Esimerkkejä:Luokittainen tietonäkymä:
"conditions": [ { "category": { "min": 1 }, "measure": { "max": 1 }} ]
Matriisin tietonäkymä:
"conditions": [ { "Rows": { "max": 0 }, "Columns": { "max": 0 }, "Value": { "min": 1 } }, { "Rows": { "min": 1 }, "Columns": { "min": 0 }, "Value": { "min": 0 } }, { "Rows": { "min": 0 }, "Columns": { "min": 1 }, "Value": { "min": 0 } }, ]