Objekty a vlastnosti vizuálov služby Power BI
Objekty popisujú prispôsobiteľné vlastnosti priradené k vizuálu. Objekt môže mať viacero vlastností a každá vlastnosť má priradený typ, ktorý popisuje, aká vtedy bude vlastnosť. Tento článok poskytuje informácie o objektoch a typoch vlastností.
myCustomObject
Názov je interný názov používaný na odkazovanie na objekt v rámci objektu dataView
.
"objects": {
"myCustomObject": {
"properties": { ... }
}
}
Zobrazovaný názov a popis
Poznámka
Zobrazovaný názov a popis už nie sú vo verzii rozhrania API 5.1+. Zobrazovaný názov a popis sa teraz pridajú do modelu formátovania namiesto capabilities.json súboru.
displayName
Názov je názov, ktorý sa zobrazí na table vlastností.
description
je popis vlastnosti formátovania, ktorá sa používateľovi zobrazí ako popis.
Vlastnosti
properties
Vlastnosť je mapa vlastností definovaná vývojárom.
"properties": {
"myFirstProperty": {
"type": ValueTypeDescriptor | StructuralTypeDescriptor
}
}
Poznámka
show
Vlastnosť je špeciálna vlastnosť, ktorá povoľuje prepínač objektu.
Príklad:
"properties": {
"show": {
"type": {"bool": true}
}
}
Typy vlastností
Existujú dva typy vlastností: ValueTypeDescriptor
a StructuralTypeDescriptor
.
Popisovač typu hodnoty
ValueTypeDescriptor
Typy sú väčšinou primitívne a zvyčajne sa používajú ako statický objekt.
Tu je niekoľko najbežnejšie ValueTypeDescriptor
prvky:
export interface ValueTypeDescriptor {
text?: boolean;
numeric?: boolean;
integer?: boolean;
bool?: boolean;
}
Popisovač štrukturálneho typu
StructuralTypeDescriptor
Typy sa väčšinou používajú pre objekty viazané na údaje.
Najbežnejším typom StructuralTypeDescriptor
popisovača je fill (výplň).
export interface StructuralTypeDescriptor {
fill?: FillTypeDescriptor;
}
Vlastnosť prechodu
Vlastnosť prechodu je vlastnosť, ktorú nie je možné nastaviť ako štandardnú vlastnosť. Namiesto toho je potrebné nastaviť pravidlo na nahradenie vlastnosti výberu farby (typ výplne ).
Príklad je znázornený v nasledujúcom kóde:
"properties": {
"showAllDataPoints": {
"type": {
"bool": true
}
},
"fill": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"fillRule": {
"type": {
"fillRule": {}
},
"rule": {
"inputRole": "Gradient",
"output": {
"property": "fill",
"selector": [
"Category"
]
}
}
}
}
Venujte pozornosť vlastnostiam fill (výplň ) a fillRule . Prvou je výber farby a druhou je pravidlo nahradenia, ktoré pri splnení podmienok pravidla vytvorí prechod nahrádzajúci vlastnosť fill, visually
.
Toto prepojenie medzi vlastnosťou fill a pravidlom nahradenia je nastavené v "rule"
>časti "output"
.
"Rule"
>
"InputRole"
Vlastnosť nastavuje, aká rola údajov pravidlo spustí (podmienka). Ak v tomto príklade rola "Gradient"
údajov obsahuje údaje, pravidlo sa použije na "fill"
vlastnosť .
V nasledujúcom kóde je znázornený príklad roly údajov (), ktorá spúšťa pravidlothe last item
vlastnosti fill:
{
"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"
}
]
}
Tabla Formátovanie
Ak chcete prispôsobiť vlastnosti na table formátovania, použite jednu z nasledujúcich metód v závislosti od toho, akú verziu rozhrania API používate.
Poznámka
Metóda getFormattingModel
rozhrania API je podporovaná v rozhraní API verzie 5.1+. Ak chcete zistiť, ktorú verziu používate, pozrite si apiVersion
pbiviz.json súbore.
Na efektívne používanie objektov v rozhraní API verzie 5.1+ je potrebné implementovať metódu getFormattingModel
.
Táto metóda vytvára a vracia model formátovania, ktorý obsahuje hierarchiu tably s úplnými vlastnosťami formátovania kariet, formátovacích skupín. Tiež obsahuje vlastnosti formátovania a ich hodnoty.
Objekty možností sa premietnu do modelu formátovania
Každá vlastnosť formátovania v modeli formátovania potrebuje zodpovedajúci objekt v súbore capabilities.json . Vlastnosť formátovania by mala obsahovať popisovač s názvom objektu a názvom vlastnosti, ktoré presne zodpovedajú zodpovedajúcemu objektu možností (názvy objektov a vlastností rozlišujú malé a veľké písmená).
Napríklad:
Pre nasledujúcu vlastnosť formátovania v modeli formátovania (pozrite si obsah popisovača objektu):
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" }
}
}
}
],
}],
};
Zodpovedajúci objekt zo sekcie možností objects
by mal byť:
"objects": {
"myCustomObject": {
"properties": {
"myCustomProperty": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
}
}
}
}
Výber vlastností formátovania
Voliteľný selektor v popisovači vlastností formátovania určuje, kam sa každá vlastnosť v zobrazení údajov dataView viaže. K dispozícii sú štyri rôzne možnosti.
Príklad
Vyššie uvedený myCustomCard
príklad znázorňuje, ako by vlastnosť formátovania v modeli formátovania vyzerala pre objekt s jednou vlastnosťou myCustomProperty
. Tento objekt vlastnosti sa viaže staticky na .dataViews[index].metadata.objects
Selektor v popisovači možno podľa toho zmeniť podľa typu selektora, ktorý si vyberiete.
Typy selektorov objektov
Selektor funkcie enumerateObjectInstances
určuje, kam sa každý objekt v zobrazení údajov dataView viaže. K dispozícii sú štyri rôzne možnosti:
statický
Tento objekt je naviazaný na metaúdaje dataviews[index].metadata.objects
, ako je to znázornené tu.
selector: null
stĺpce
Tento objekt sa viaže na stĺpce so zodpovedajúcou hodnotou QueryName
.
selector: {
metadata: 'QueryName'
}
selektor
Tento objekt sa viaže na prvok, pre ktorý ste vytvorili hodnotu selectionID
. V tomto príklade budeme predpokladať, že sme pre niektoré údajové body vytvorili selectionID
hodnotu a prechádzame cez ne.
for (let dataPoint in dataPoints) {
...
selector: dataPoint.selectionID.getSelector()
}
Scope identity
Tento objekt sa viaže na konkrétne hodnoty v priesečníku skupín. Ak máte napríklad kategórie ["Jan", "Feb", "March", ...]
a rady ["Small", "Medium", "Large"]
, možno budete chcieť mať objekt v priesečníku zodpovedajúcemu Feb
hodnotám a Large
. Toto dokončite tak, že prejdete na DataViewScopeIdentity
oba stĺpce, posuniete ich na premennú identities
a použijete túto syntax v selektore.
selector: {
data: <DataViewScopeIdentity[]>identities
}