Visualobjekt-API

Alle visualobjekter starter med en klasse som implementerer grensesnittet IVisual . Du kan gi klassen et navn så lenge det er nøyaktig én klasse som implementerer grensesnittet IVisual .

Merk

Klassenavnet for visualobjektet må være det samme som visualClassName i pbiviz.json filen.

Visualobjektklassen bør implementere følgende metoder som vist i følgende eksempel:

  • constructor – en standardkonstruktør som initialiserer visualobjektets tilstand
  • update – oppdaterer dataene for visualobjektet
  • getFormattingModelreturnerer en formateringsmodell som fyller ut egenskapsruten (formateringsalternativer) der du kan endre egenskaper etter behov
  • destroy - en standard destructor for opprydding
class MyVisual implements IVisual {
    
    constructor(options: VisualConstructorOptions) {
        //one time setup code goes here (called once)
    }
    
    public update(options: VisualUpdateOptions): void {
        //code to update your visual goes here (called on all view or data changes)
    }

    public getFormattingModel(): FormattingModel {
        // returns modern format pane formatting model that contain all format pane components and properties (called on opening format and analytics pane or on editing format properties)
    }
    
    public destroy(): void {
        //one time cleanup code goes here (called once)
    }
}

Konstruktør

Visualobjektklassen constructor kalles når visualobjektet startes. Den kan brukes for alle oppsettsoperasjoner som visualobjektet trenger.

constructor(options: VisualConstructorOptions)

VisualConstructorOptions

Disse grensesnittene oppdateres med hver nye API-versjon. Hvis du vil ha det mest oppdaterte grensesnittformatet, kan du gå til GitHub-repositoriet vårt.

Listen nedenfor beskriver noen av egenskapene for grensesnittet VisualConstructorOptions :

  • element: HTMLElement – en referanse til DOM-elementet som inneholder visualobjektet

  • host: IVisualHost – en samling av egenskaper og tjenester som kan brukes til å samhandle med den visuelle verten (Power BI)

    IVisualHost inneholder følgende tjenester:

    • createSelectionIdBuilder – genererer og lagrer metadata for valgbare elementer i visualobjektet
    • createSelectionManager – oppretter kommunikasjonsbroen som brukes til å varsle verten for visualobjektet om endringer i valgtilstanden, se Utvalgs-API.
    • hostCapabilities
    • refreshHostData
    • downloadService– returnerer utvidet resultatinformasjon for nedlastingen.
    • eventService – returnerer informasjon om gjengivelse av hendelser.
    • hostEnv
    • displayWarningIcon – returnerer feil eller advarselsmelding.
    • licenseManager - returnerer lisensinformasjon.
    • createLocalizationManager – genererer en leder for å hjelpe til med lokalisering
    • applyJsonFilter – bruker bestemte filtertyper. Se filter-API
    • applyCustomSort – tillater egendefinerte sorteringsalternativer.
    • acquireAADTokenService– returnerer godkjenningsinformasjon for Microsoft Entra ID.
    • webAccessService – returnerer tillatelsesstatus for tilgang til eksterne ressurser.
    • openModalDialog – returnerer en dialogboks.
    • persistProperties – gjør det mulig for brukere å opprette faste innstillinger og lagre dem sammen med den visuelle definisjonen, slik at de er tilgjengelige ved neste innlasting
    • eventService– returnerer en hendelsestjeneste for å støtte gjengivelseshendelser
    • storageService – returnerer en tjeneste for å hjelpe til med å bruke lokal lagring i visualobjektet
    • storageV2Service – returnerer en tjeneste for å bruke lokal lagringsplass versjon 2 i visualobjektet
    • tooltipService – returnerer en verktøytipstjeneste for å hjelpe deg med å bruke verktøytips i visualobjektet
    • telemetry
    • drill
    • launchUrl – hjelper til med å starte URL-adressen i neste fane
    • authenticationService – returnerer et Microsoft Entra ID-token.
    • locale – returnerer en nasjonal innstillingsstreng, se Lokalisering
    • instanceId – returnerer en streng for å identifisere gjeldende visualobjektforekomst
    • colorPalette – returnerer colorPalette som kreves for å bruke farger på dataene
    • fetchMoreData – støtter bruk av mer data enn standardgrensen (1000 rader). Se Hente flere data
    • switchFocusModeState – bidrar til å endre statusen for fokusmodus

Oppdateringen

Alle visualobjekter må implementere en offentlig oppdateringsmetode som kalles når det er en endring i data- eller vertsmiljøet.

public update(options: VisualUpdateOptions): void

VisualUpdateOptions

  • viewport: IViewport – dimensjoner av visningsporten som visualobjektet skal gjengis i
  • dataViews: DataView[] – datavisningsobjektet som inneholder alle dataene som kreves for å gjengi visualobjektet (et visualobjekt bruker vanligvis den kategoriske egenskapen under DataView)
  • type: VisualUpdateType– flagg som angir datatypen som oppdateres (Endre | størrelsen på | ViewMode | Style | ResizeEnd)
  • viewMode: ViewMode– flagg som angir visningsmodus for visualobjektet (Vis | Rediger | InFocusEdit)
  • editMode: EditMode– flagg som angir redigeringsmodus for visualobjektet (standard | avansert) (hvis visualobjektet støtter AdvancedEditMode, bør det bare gjengi de avanserte grensesnittkontrollene når editMode er satt til Avansert, se AdvancedEditMode)
  • operationKind?: VisualDataChangeOperationKind– flagg som angir typen dataendring (Opprett | tilføying)
  • jsonFilters?: IFilter[] – samling av brukte jsonfiltre
  • isInFocus?: boolean – flagg for å angi om visualobjektet er i fokusmodus eller ikke

getFormattingModel (valgfritt)

Denne metoden kalles én gang hver gang vi åpner egenskapsruten, eller brukeren redigerer noen av egenskapene i ruten. Den returnerer FormattingModel med all informasjon om egenskaperrutens utforming, hierarki, egenskaper og de nyeste formateringsverdiene.

getFormattingModel(): visuals.FormattingModel;

ødelegge (valgfritt)

Ødeleggefunksjonen kalles når visualobjektet lastes ut og kan brukes til opprydningsoppgaver, for eksempel fjerning av hendelseslyttere.

public destroy(): void

Tips

Power BI ringer vanligvis ikke fordi destroy det er raskere å fjerne hele IFrame som inneholder visualobjektet.