Objecten en eigenschappen van Power BI-visuals
Objecten beschrijven aanpasbare eigenschappen die zijn gekoppeld aan een visual. Een object kan meerdere eigenschappen hebben en elke eigenschap heeft een gekoppeld type dat beschrijft wat de eigenschap is. Dit artikel bevat informatie over objecten en eigenschapstypen.
myCustomObject
is de interne naam die wordt gebruikt om naar het object binnen dataView
te verwijzen.
"objects": {
"myCustomObject": {
"properties": { ... }
}
}
Schermnaam en -beschrijving
Notitie
Weergavenaam en beschrijving zijn afgeschaft uit API-versie 5.1+. De weergavenaam en beschrijving worden nu toegevoegd in het opmaakmodel in plaats van het bestand capabilities.json .
displayName
is de naam die wordt weergegeven in het eigenschappenvenster.
description
is een beschrijving van de opmaakeigenschap die als knopinfo voor de gebruiker wordt weergegeven.
Eigenschappen
properties
is een kaart met eigenschappen die zijn gedefinieerd door de ontwikkelaar.
"properties": {
"myFirstProperty": {
"type": ValueTypeDescriptor | StructuralTypeDescriptor
}
}
Notitie
show
is een speciale eigenschap waarmee een schakeloptie het object kan in- of uitschakelen.
Voorbeeld:
"properties": {
"show": {
"type": {"bool": true}
}
}
Eigenschapstypen
Er zijn twee eigenschapstypen: ValueTypeDescriptor
en StructuralTypeDescriptor
.
Waardetypedescriptor
ValueTypeDescriptor
typen zijn voornamelijk primitief en worden gewoonlijk gebruikt als een statisch object.
Hier volgen enkele algemene ValueTypeDescriptor
elementen:
export interface ValueTypeDescriptor {
text?: boolean;
numeric?: boolean;
integer?: boolean;
bool?: boolean;
}
Structuurtypedescriptor
StructuralTypeDescriptor
typen worden meestal gebruikt voor gegevensgebonden objecten.
Het meest voorkomende StructuralTypeDescriptor
type is opvulling.
export interface StructuralTypeDescriptor {
fill?: FillTypeDescriptor;
}
Kleurovergangseigenschap
De eigenschap kleurovergang is een eigenschap die niet kan worden ingesteld als een standaardeigenschap. In plaats daarvan moet u een regel instellen voor de vervanging van de eigenschap kleurkiezer (opvultype ).
Een voorbeeld wordt weergegeven in de volgende code:
"properties": {
"showAllDataPoints": {
"type": {
"bool": true
}
},
"fill": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"fillRule": {
"type": {
"fillRule": {}
},
"rule": {
"inputRole": "Gradient",
"output": {
"property": "fill",
"selector": [
"Category"
]
}
}
}
}
Let op de eigenschappen fill en fillRule . De eerste is de kleurkiezer en de tweede is de vervangingsregel voor de kleurovergang die de opvuleigenschap vervangt, visually
wanneer aan de voorwaarden van de regel wordt voldaan.
Deze koppeling tussen de vuleigenschap en de vervangingsregel wordt ingesteld in de"rule"
>"output"
sectie van de eigenschap fillRule.
"Rule"
>
"InputRole"
met eigenschap wordt ingesteld welke gegevensrol de regel (voorwaarde) activeert. Als de gegevensrol "Gradient"
in dit voorbeeld gegevens bevat, wordt de regel toegepast voor de "fill"
eigenschap.
Een voorbeeld van de gegevensrol die de vulregel activeert (the last item
) wordt weergegeven in de volgende code:
{
"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"
}
]
}
Opmaakvenster
Als u de eigenschappen in het opmaakvenster wilt aanpassen, gebruikt u een van de volgende methoden, afhankelijk van de API-versie die u gebruikt.
Notitie
De getFormattingModel
API-methode wordt ondersteund vanuit API-versies 5.1+. Als u wilt achterhalen welke versie u gebruikt, controleert u het apiVersion
bestand in het pbiviz.json .
Als u objecten effectief wilt gebruiken in API-versie 5.1+, moet u de getFormattingModel
methode implementeren.
Met deze methode wordt een opmaakmodel gebouwd en geretourneerd dat volledige eigenschappenvensterhiërarchie van opmaakkaarten, opmaakgroepen bevat, ook opmaakeigenschappen en de bijbehorende waarden bevat.
Mogelijkhedenobjecten die worden weerspiegeld in het opmaakmodel
Elke opmaakeigenschap in het opmaakmodel heeft een bijbehorend object in het capabilities.json-bestand nodig. De opmaakeigenschap moet een descriptor bevatten met een objectnaam en eigenschapsnaam die exact overeenkomen met het bijbehorende mogelijkhedenobject (de object- en eigenschapsnamen zijn hoofdlettergevoelig).
Voorbeeld:
Voor de volgende opmaakeigenschap in het opmaakmodel (zie de inhoud van het descriptorobject):
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" }
}
}
}
],
}],
};
Het bijbehorende object uit de sectie mogelijkheden objects
moet het volgende zijn:
"objects": {
"myCustomObject": {
"properties": {
"myCustomProperty": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
}
}
}
}
Eigenschapkiezer voor opmaak
De optionele selector in de descriptor voor opmaakeigenschappen bepaalt waar elke eigenschap is gebonden in de dataView. Er zijn vier verschillende opties.
Opmerking
In het bovenstaande myCustomCard
voorbeeld ziet u hoe de opmaakeigenschap in het opmaakmodel eruit zou zien voor een object met één eigenschap myCustomProperty
. Dit eigenschapsobject is statisch gebonden aan dataViews[index].metadata.objects
.
Selector in descriptor kan dienovereenkomstig worden gewijzigd in selectortype dat u kiest.
Objectselectorstypen
De selector in enumerateObjectInstances
bepaalt waar elk object is gebonden in de dataView. Er zijn vier verschillende opties:
statisch
Dit object is gebonden aan metagegevens dataviews[index].metadata.objects
, zoals hier wordt weergegeven.
selector: null
kolommen
Dit object is gebonden aan kolommen met de overeenkomende QueryName
waarden.
selector: {
metadata: 'QueryName'
}
Selector
Dit object is gebonden aan het element waarvoor u een selectionID
hebt gemaakt. In dit voorbeeld gaan we ervan uit dat we een aantal gegevenspunten hebben gemaakt selectionID
en dat we ze doorlopen.
for (let dataPoint in dataPoints) {
...
selector: dataPoint.selectionID.getSelector()
}
Bereikidentiteit
Dit object is gebonden aan bepaalde waarden op het snijpunt van groepen. Als u bijvoorbeeld categorieën en reeksen ["Jan", "Feb", "March", ...]
["Small", "Medium", "Large"]
hebt, wilt u mogelijk een object hebben op het snijpunt van waarden die overeenkomen Feb
en Large
. Om dit te bereiken, kunt u de DataViewScopeIdentity
kolommen ophalen, naar een variabele identities
pushen en deze syntaxis gebruiken met de selector.
selector: {
data: <DataViewScopeIdentity[]>identities
}