Objekty a vlastnosti vizuálů Power BI
Objekty popisují přizpůsobitelné vlastnosti přidružené k vizuálu. Objekt může mít více vlastností a každá vlastnost má přidružený typ, který popisuje, co bude vlastnost. Tento článek obsahuje informace o objektech a typech vlastností.
myCustomObject
je interní název, který slouží k odkazování na objekt v rámci dataView
.
"objects": {
"myCustomObject": {
"properties": { ... }
}
}
Zobrazovaný název a popis
Poznámka:
Zobrazovaný název a popis jsou zastaralé z rozhraní API verze 5.1 nebo novější. Zobrazovaný název a popis se teď přidávají do modelu formátování místo souboru capabilities.json .
displayName
je název, který se zobrazí v podokně vlastností.
description
je popis vlastnosti formátování, která se uživateli zobrazí jako popis.
Vlastnosti
properties
je mapa vlastností definovaných vývojářem.
"properties": {
"myFirstProperty": {
"type": ValueTypeDescriptor | StructuralTypeDescriptor
}
}
Poznámka:
show
je speciální vlastnost, která umožňuje přepnutí objektu.
Příklad:
"properties": {
"show": {
"type": {"bool": true}
}
}
Typy vlastností
Existují dva typy vlastností: ValueTypeDescriptor
a StructuralTypeDescriptor
.
Popisovač typu hodnoty
ValueTypeDescriptor
typy jsou většinou primitivní a obvykle se používají jako statický objekt.
Tady jsou některé běžné ValueTypeDescriptor
prvky:
export interface ValueTypeDescriptor {
text?: boolean;
numeric?: boolean;
integer?: boolean;
bool?: boolean;
}
Popisovač strukturálního typu
StructuralTypeDescriptor
typy se většinou používají pro objekty vázané na data.
Nejběžnějším StructuralTypeDescriptor
typem je výplň.
export interface StructuralTypeDescriptor {
fill?: FillTypeDescriptor;
}
Gradient – vlastnost
Vlastnost přechodu je vlastnost, kterou nelze nastavit jako standardní vlastnost. Místo toho musíte nastavit pravidlo pro nahrazení vlastnosti výběru barvy (typ výplně ).
Příklad je uvedený v následujícím kódu:
"properties": {
"showAllDataPoints": {
"type": {
"bool": true
}
},
"fill": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"fillRule": {
"type": {
"fillRule": {}
},
"rule": {
"inputRole": "Gradient",
"output": {
"property": "fill",
"selector": [
"Category"
]
}
}
}
}
Věnujte pozornost vlastnostem fill a fillRule . První je výběr barvy a druhý je pravidlo nahrazení přechodu, které nahradí vlastnost výplně , visually
při splnění podmínek pravidla.
Toto propojení mezi vlastností fill a pravidlem nahrazení je nastaveno v "rule"
>"output"
části vlastnosti fillRule.
"Rule"
>
"InputRole"
vlastnost nastaví, která role dat aktivuje pravidlo (podmínku). V tomto příkladu platí, že pokud datová role "Gradient"
obsahuje data, použije se pravidlo pro "fill"
vlastnost.
Příklad role dat, která aktivuje pravidlo vyplnění (the last item
) je znázorněno v následujícím kódu:
{
"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"
}
]
}
Podokno Formátování
Pokud chcete přizpůsobit vlastnosti v podokně formátování, použijte jednu z následujících metod v závislosti na verzi rozhraní API, kterou používáte.
Poznámka:
Metoda getFormattingModel
rozhraní API je podporovaná z rozhraní API verze 5.1 nebo novější. Pokud chcete zjistit, kterou verzi používáte, podívejte se do apiVersion
souboru pbiviz.json .
Pokud chcete efektivně používat objekty v rozhraní API verze 5.1 nebo novější, musíte metodu getFormattingModel
implementovat.
Tato metoda sestaví a vrátí formátovací model, který zahrnuje celou hierarchii podokna vlastností formátovací karty, skupiny formátování, také obsahuje vlastnosti formátování a jejich hodnoty.
Objekty schopností reflektované v modelu formátování
Každá vlastnost formátování v modelu formátování potřebuje odpovídající objekt v souboru capabilities.json . Vlastnost formátování by měla obsahovat popisovač s názvem objektu a názvem vlastnosti, které přesně odpovídají odpovídajícímu objektu schopností (v názvech objektů a vlastností se rozlišují malá a velká písmena).
Příklad:
Následující vlastnost formátování v modelu formátování (viz obsah popisovače 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" }
}
}
}
],
}],
};
Odpovídající objekt z oddílu schopností objects
by měl být:
"objects": {
"myCustomObject": {
"properties": {
"myCustomProperty": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
}
}
}
}
Selektor vlastností formátování
Volitelný selektor ve formátovací vlastnosti popisovač určuje, kde každá vlastnost je vázána v dataView. Existují čtyři různé možnosti.
Příklad
Výše uvedený myCustomCard
příklad ukazuje, jak formátovací vlastnost ve formátovacím modelu by vypadala pro objekt s jednou vlastností myCustomProperty
. Objekt této vlastnosti je staticky svázán s objektem dataViews[index].metadata.objects
.
Selektor v popisovači lze odpovídajícím způsobem změnit na typ voliče, který zvolíte.
Typy selektorů objektů
Selektor určuje enumerateObjectInstances
, kde je každý objekt vázaný v objektu dataView. Existují čtyři různé možnosti:
static
Tento objekt je vázán na metadata dataviews[index].metadata.objects
, jak je znázorněno zde.
selector: null
sloupce
Tento objekt je vázán na sloupce s odpovídající QueryName
.
selector: {
metadata: 'QueryName'
}
volič
Tento objekt je vázán na prvek, pro který jste vytvořili selectionID
. V tomto příkladu předpokládejme, že jsme vytvořili selectionID
pro některé datové body a procházíme je.
for (let dataPoint in dataPoints) {
...
selector: dataPoint.selectionID.getSelector()
}
Identita oboru
Tento objekt je vázán na konkrétní hodnoty v průsečíku skupin. Pokud máte například kategorie ["Jan", "Feb", "March", ...]
a řady ["Small", "Medium", "Large"]
, můžete chtít mít objekt v průsečíku hodnot, které se shodují Feb
a Large
. K tomu můžete získat DataViewScopeIdentity
oba sloupce, odeslat je do proměnné identities
a použít tuto syntaxi selektorem.
selector: {
data: <DataViewScopeIdentity[]>identities
}