Zdieľať cez


Pridanie novej tably formátu do vlastného vizuálu pomocou rozhrania API

Dôležitý

Ak chcete pridať novú tablu Formát do vlastného vizuálu, odporúčame použiť pomôcky pre formattingmodel.

Napriek tomu, že odporúčame používať pomôcky formátovaniamodelu s novou tablou formátu, tento príklad ukazuje, ako vytvoriť model formátovania vlastného vizuálu s jednou kartou len pomocou rozhrania API.

Príklad: Formátovanie karty údajov

Karta má dve skupiny:

  • skupina Ovládací prvok písma s jednou zloženou vlastnosťou
    • Ovládací prvok Písma
  • skupina návrhu údajov s dvoma jednoduchými vlastnosťami
    • Farba písma
    • Zarovnanie čiar

Najskôr pridajte objekty do súboru možností:

"objects": {
        "dataCard": {
            "properties": {
                "displayUnitsProperty": {
                    "type":
                    {
                        "formatting": {
                            "labelDisplayUnits": true
                        }
                    }
                },
                "fontSize": { 
                    "type": {
                        "formatting": {
                            "fontSize": true
                        }
                    }
                },
                "fontFamily": {
                    "type": {
                        "formatting": {
                            "fontFamily": true
                        }
                    }
                },
                "fontBold": {
                    "type": {
                        "bool": true
                    }
                },
                "fontUnderline": {
                    "type": {
                        "bool": true
                    }
                },
                "fontItalic": {
                    "type": {
                        "bool": true
                    }
                },
                "fontColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    }
                },
                "lineAlignment": {
                    "type": {
                        "formatting": {
                            "alignment": true
                        }
                    }
                }
            }
        }
    }

Potom vytvorte getFormattingModel

    public getFormattingModel(): powerbi.visuals.FormattingModel {
        // Building data card, We are going to add two formatting groups "Font Control Group" and "Data Design Group"
        let dataCard: powerbi.visuals.FormattingCard = {
            description: "Data Card Description",
            displayName: "Data Card",
            uid: "dataCard_uid",
            groups: []
        }

        // Building formatting group "Font Control Group"
        // Notice that "descriptor" objectName and propertyName should match capabilities object and property names
        let group1_dataFont: powerbi.visuals.FormattingGroup = {
            displayName: "Font Control Group",
            uid: "dataCard_fontControl_group_uid",
            slices: [
                {
                    uid: "dataCard_fontControl_displayUnits_uid",
                    displayName:"display units",
                    control: {
                        type: powerbi.visuals.FormattingComponent.Dropdown,
                        properties: {
                            descriptor: {
                                objectName: "dataCard",
                                propertyName:"displayUnitsProperty"
                            },
                            value: 0
                        }
                    }
                },
                // FontControl slice is composite slice, It means it contain multiple properties inside it
                {
                    uid: "data_font_control_slice_uid",
                    displayName: "Font",
                    control: {
                        type: powerbi.visuals.FormattingComponent.FontControl,
                        properties: {
                            fontFamily: {
                                descriptor: {
                                    objectName: "dataCard",
                                    propertyName: "fontFamily"
                                },
                                value: "wf_standard-font, helvetica, arial, sans-serif"
                            },
                            fontSize: {
                                descriptor: {
                                    objectName: "dataCard",
                                    propertyName: "fontSize"
                                },
                                value: 16
                            },
                            bold: {
                                descriptor: {
                                    objectName: "dataCard",
                                    propertyName: "fontBold"
                                },
                                value: false
                            },
                            italic: {
                                descriptor: {
                                    objectName: "dataCard",
                                    propertyName: "fontItalic"
                                },
                                value: false
                            },
                            underline: {
                                descriptor: {
                                    objectName: "dataCard",
                                    propertyName: "fontUnderline"
                                },
                                value: false
                            }
                        }
                    }
                }
            ],
        };
        // Building formatting group "Font Control Group"
        // Notice that "descriptor" objectName and propertyName should match capabilities object and property names
        let group2_dataDesign: powerbi.visuals.FormattingGroup = {
            displayName: "Data Design Group",
            uid: "dataCard_dataDesign_group_uid",
            slices: [
                // Adding ColorPicker simple slice for font color
                {
                    displayName: "Font Color",
                    uid: "dataCard_dataDesign_fontColor_slice",
                    control: {
                        type: powerbi.visuals.FormattingComponent.ColorPicker,
                        properties: {
                            descriptor:
                            {
                                objectName: "dataCard",
                                propertyName: "fontColor"
                            },
                            value: { value: "#01B8AA" }
                        }
                    }
                },
                // Adding AlignmentGroup simple slice for line alignment
                {
                    displayName: "Line Alignment",
                    uid: "dataCard_dataDesign_lineAlignment_slice",
                    control: {
                        type: powerbi.visuals.FormattingComponent.AlignmentGroup,
                        properties: {
                            descriptor:
                            {
                                objectName: "dataCard",
                                propertyName: "lineAlignment"
                            },
                            mode: powerbi.visuals.AlignmentGroupMode.Horizonal,
                            value: "right"
                        }
                    }
                },
            ]
        };

        // Add formatting groups to data card
        dataCard.groups.push(group1_dataFont);
        dataCard.groups.push(group2_dataDesign);

        // Build and return formatting model with data card
        const formattingModel: powerbi.visuals.FormattingModel = { cards: [dataCard] };
        return formattingModel;
    }

Toto je výsledná tabla:

Snímka obrazovky s tablou formátu, ktorá je výsledkom príkladu karty údajov.

Obnovenie predvolených nastavení

Nová tabla formátu obsahuje možnosť obnoviť predvolené hodnoty všetkých vlastností karty formátovania kliknutím na Obnoviť predvolené tlačidlo, ktoré sa zobrazí na otvorenej karte.

Snímka obrazovky znázorňujúca tlačidlo Obnoviť formátovanie karty.

Ak chcete povoliť túto funkciu, pridajte zoznam vlastností karty formátovania popisovačov na formátovanie karty revertToDefaultDescriptors. Nasledujúci príklad ukazuje, ako pridať obnoviť predvolené tlačidlo:

let dataCard: powerbi.visuals.FormattingCard = {
    displayName: "Data Card",
    // ... card parameters and groups list

    revertToDefaultDescriptors: [
        {
            objectName: "dataCard",
            propertyName:"displayUnitsProperty"
        },
        {
            objectName: "dataCard",
            propertyName: "fontFamily"
        },

        // ... the rest of properties descriptors 
    ]
};

Pridanie revertToDefaultDescriptors do formátovacích kariet tiež umožňuje obnoviť všetky vlastnosti kariet formátovania naraz kliknutím na obnoviť všetky nastavenia na predvolené tlačidlo v hornom paneli tably formátu:

Snímka obrazovky s tablou formátu obnovenie všetkých nastavení na predvolené tlačidlo.

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. Prečítajte si o nich v typoch selektorov objektov .

Lokalizácia

Ďalšie informácie o funkcii lokalizácie a nastavení lokalizačného prostredia nájdete Pridanie lokálneho jazyka do vizuálu Power BI Pomocou správcu lokalizácie môžete formátovať komponenty, ktoré chcete lokalizovať:

displayName: this.localization.getDisplayName("Font_Color_DisplayNameKey");
description: this.localization.getDisplayName("Font_Color_DescriptionKey");

Ak chcete lokalizovať pomôcky pre model formátovania lokalizáciu pomôcok formátovania.

Zdroje GitHubu

Máte ďalšie otázky? spýtajte sa komunity Power BI