Objekter og egenskaper for Power BI-visualobjekter

Objekter beskriver egenskaper som kan tilpasses, som er knyttet til et visualobjekt. Et objekt kan ha flere egenskaper, og hver egenskap har en tilknyttet type som beskriver hva egenskapen vil være. Denne artikkelen inneholder informasjon om objekter og egenskapstyper.

myCustomObject er det interne navnet som brukes til å referere til objektet i dataView.

"objects": {
    "myCustomObject": {
        "properties": { ... }
    }
}

Visningsnavn og beskrivelse

Merk

Visningsnavn og beskrivelse er avskrevet fra API versjon 5.1+. Visningsnavnet og beskrivelsen legges nå til i formateringsmodellen i stedet for capabilities.json-filen .

displayName er navnet som vises i egenskapsruten. description er en beskrivelse av formateringsegenskapen som vises for brukeren som et verktøytips.

Egenskaper

properties er et kart over egenskaper som er definert av utvikleren.

"properties": {
    "myFirstProperty": {
        "type": ValueTypeDescriptor | StructuralTypeDescriptor
    }
}

Merk

show er en spesiell egenskap som gjør det mulig for en bryter å veksle objektet.

Eksempel:

"properties": {
    "show": {
        "type": {"bool": true}
    }
}

Egenskapstyper

Det finnes to egenskapstyper: ValueTypeDescriptor og StructuralTypeDescriptor.

Beskrivelse av verditype

ValueTypeDescriptor typer er for det meste primitive og brukes vanligvis som et statisk objekt.

Her er noen av de vanlige ValueTypeDescriptor elementene:

export interface ValueTypeDescriptor {
    text?: boolean;
    numeric?: boolean;
    integer?: boolean;
    bool?: boolean;
}

Beskrivelse av strukturell type

StructuralTypeDescriptor typer brukes for det meste for databundne objekter. Den vanligste StructuralTypeDescriptor typen er fyll.

export interface StructuralTypeDescriptor {
    fill?: FillTypeDescriptor;
}

Graderingsegenskap

Graderingsegenskapen er en egenskap som ikke kan angis som en standardegenskap. I stedet må du angi en regel for erstatning av fargevelgeregenskapen (fylltype ).

Et eksempel vises i følgende kode:

"properties": {
    "showAllDataPoints": {
        "type": {
            "bool": true
        }
    },
    "fill": {
        "type": {
            "fill": {
                "solid": {
                    "color": true
                }
            }
        }
    },
    "fillRule": {
        "type": {
            "fillRule": {}
        },
        "rule": {
            "inputRole": "Gradient",
            "output": {
                "property": "fill",
                    "selector": [
                        "Category"
                    ]
            }
        }
    }
}

Vær oppmerksom på fyll- og fillRule-egenskapene . Den første er fargevelgeren, og den andre er erstatningsregelen for graderingen som erstatter fyllegenskapen, visuallynår regelbetingelsene oppfylles.

Denne koblingen mellom fyllegenskapen og erstatningsregelen er angitt i "rule""output">delen av fillRule-egenskapen.

"Rule">"InputRole" -egenskapen angir hvilken datarolle som utløser regelen (betingelse). I dette eksemplet, hvis datarollen "Gradient" inneholder data, brukes regelen for "fill" egenskapen.

Et eksempel på datarollen som utløser fyllregelen (the last item) vises i følgende kode:

{
    "dataRoles": [
            {
                "name": "Category",
                "kind": "Grouping",
                "displayName": "Details",
                "displayNameKey": "Role_DisplayName_Details"
            },
            {
                "name": "Series",
                "kind": "Grouping",
                "displayName": "Legend",
                "displayNameKey": "Role_DisplayName_Legend"
            },
            {
                "name": "Gradient",
                "kind": "Measure",
                "displayName": "Color saturation",
                "displayNameKey": "Role_DisplayName_Gradient"
            }
    ]
}

Formateringsrute

Hvis du vil tilpasse egenskapene i formateringsruten, bruker du én av følgende metoder, avhengig av hvilken API-versjon du bruker.

Merk

getFormattingModel API-metoden støttes fra API-versjoner 5.1+. Hvis du vil finne ut hvilken versjon du bruker, kan du sjekke apiVersion inn pbiviz.json-filen .

Hvis du vil bruke objekter effektivt i API versjon 5.1+, må du implementere getFormattingModel metoden.
Denne metoden bygger og returnerer en formateringsmodell som inkluderer fullstendig egenskapsrutehierarki av formateringskort, formateringsgrupper, og inneholder også formateringsegenskaper og deres verdier.

Egenskaper-objekter som gjenspeiles i formateringsmodellen

Hver formateringsegenskap i formateringsmodellen trenger et tilsvarende objekt i capabilities.json-filen . Formateringsegenskapen bør inneholde en beskrivelse med et objektnavn og egenskapsnavn som samsvarer nøyaktig med det tilsvarende egenskapsobjektet (objekt- og egenskapsnavn skiller mellom store og små bokstaver).
Eksempel:

For følgende formateringsegenskap i formateringsmodellen (se innholdet i beskrivende objekt):

 const myCustomCard: powerbi.visuals.FormattingCard = {
            displayName: "My Custom Object Card",
            uid: "myCustomObjectCard_uid",
            groups: [{
                displayName: undefined,
                uid: "myCustomObjectGroup_uid",
                slices: [
                    {
                        uid: "myCustomProperty_uid",
                        displayName: "My Custom Property",
                        control: {
                            type: powerbi.visuals.FormattingComponent.ColorPicker,
                            properties: {
                                descriptor: {
                                    objectName: "myCustomObject",
                                    propertyName: "myCustomProperty",
                                    selector: null // selector is optional
                                },
                                value: { value: "#000000" }
                            }
                        }
                    }
                ],
            }],
        };

Det tilsvarende objektet fra egenskapsdelen objects bør være:

    "objects": {
        "myCustomObject": {
            "properties": {
                "myCustomProperty": {
                    "type": {
                         "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    }
                }
            }
        }
    }           

Egenskapsvelger for formatering

Den valgfrie velgeren i formateringsegenskapene bestemmer hvor hver egenskap er bundet i dataView. Det finnes fire forskjellige alternativer.

Eksempel

Eksemplet ovenfor myCustomCard viser hvordan formateringsegenskapen i formateringsmodellen vil se ut for et objekt med én egenskap myCustomProperty. Dette egenskapsobjektet er bundet statisk til dataViews[index].metadata.objects. Velgeren i beskrivelsen kan endres i henhold til velgertypen du velger.

Objektvelgertyper

Velgeren i enumerateObjectInstances bestemmer hvor hvert objekt er bundet i dataView. Det finnes fire forskjellige alternativer:

Statisk

Dette objektet er bundet til metadata dataviews[index].metadata.objects, som vist her.

selector: null

kolonner

Dette objektet er bundet til kolonner med samsvarende QueryName.

selector: {
    metadata: 'QueryName'
}

Velgeren

Dette objektet er bundet til elementet du opprettet en selectionID for. I dette eksemplet kan vi anta at vi har opprettet selectionIDfor noen datapunkter, og at vi går gjennom dem.

for (let dataPoint in dataPoints) {
    ...
    selector: dataPoint.selectionID.getSelector()
}

Omfangsidentitet

Dette objektet er bundet til bestemte verdier i skjæringspunktet mellom grupper. Hvis du for eksempel har kategorier og serier["Small", "Medium", "Large"], vil du kanskje ha et objekt i skjæringspunktet mellom verdier som samsvarer ["Jan", "Feb", "March", ...]Feb med og Large. Hvis du vil oppnå dette, kan du hente DataViewScopeIdentity begge kolonnene, sende dem til variabel identitiesog bruke denne syntaksen med velgeren.

selector: {
    data: <DataViewScopeIdentity[]>identities
}

Ytelsestips