Zdieľať cez


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 súboru capabilities.json .

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""output">časti vlastnosti fillRule.

"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 apiVersionsúbor pbiviz.json .

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'
}

Volič

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 selectionIDhodnotu 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ú identitiesa použijete túto syntax v selektore.

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

Tipy na zvýšenie výkonu