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ě , visuallypř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 apiVersionsouboru 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 selectionIDpro 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é identitiesa použít tuto syntaxi selektorem.

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

Tipy pro zvýšení výkonu