Share via


FormattingModel utils

A formázási modell utils tartalmazza a Formázási beállítások modell létrehozásához szükséges osztályokat, felületeket és metódusokat a Power BI egyéni vizualizáció tulajdonságpaneljeinek (formátum- és elemzési paneljeinek) feltöltéséhez.

Formázási beállítások szolgáltatás

A formázási beállítások szolgáltatás megkapja a formázási beállítások modelljét, és egy formázási modellté alakítja, amely feltölti a formázási panelt. A formázási modellszolgáltatás a sztringek honosítását is támogatja.

A formázási beállítások szolgáltatás inicializálása:

import { FormattingSettingsService } from "powerbi-visuals-utils-formattingmodel";

export class MyVisual implements IVisual {
    // declaring formatting settings service 
    private formattingSettingsService: FormattingSettingsService;

    constructor(options: VisualConstructorOptions) {
        
        this.formattingSettingsService = new FormattingSettingsService();
        
        // ...
    }
}

A Formázási beállítások szolgáltatás felületének IFormatting Gépház Szolgáltatás két fő metódusa van:

    /**
     * Build visual formatting settings model from metadata dataView
     * 
     * @param dataViews metadata dataView object
     * @returns visual formatting settings model 
     */
    populateFormattingSettingsModel<T extends Model>(typeClass: new () => T, dataViews: powerbi.DataView[]): T;

    /**
     * Build formatting model by parsing formatting settings model object 
     * 
     * @returns powerbi visual formatting model
     */
    buildFormattingModel(formattingSettingsModel: Model): visuals.FormattingModel;

Formázási beállítások modellje

A beállításmodell tartalmazza és körbefuttatja a formázási és elemzési panel összes formázási kártyáját.

export class Model {
    cards: Array<Cards>;
}

Ez a példa egy új formázási beállításmodellt deklarál:

import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

import FormattingSettingsCompositeCard = formattingSettings.CompositeCard;
import FormattingSettingsCards = formattingSettings.Cards;
import FormattingSettingsModel = formattingSettings.Model;

export class VisualSettingsModel extends FormattingSettingsModel {
    // Building my visual formatting settings card
    myVisualCard: FormattingSettingsCompositeCard = new myVisualCardSettings();

    // Add formatting settings card to cards list in model
    cards: FormattingSettingsCards[] = [this.myVisualCard];
}

Formázási beállítások kártyája

A formázási beállítások kártyája egy formázási kártyát határoz meg a formázási vagy elemzési panelen. A formázási beállítások kártyája több formázási szeletet, tárolót, csoportot és tulajdonságot tartalmazhat.

Ha szeleteket ad hozzá a formázási beállítások kártyához, az összes szeletet egy formázási kártyára helyezi.

A kártyák, szeletek és csoportok dinamikusan rejthetők el, ha a visible paramétert hamisra állítja (alapértelmezés szerint igaz).

A kártya kitöltheti a formázási vagy elemzési panelt a analyticsPane paraméter igaz vagy hamis értékre állításával.

Példa a formázási beállítások kártya deklarálására, beleértve egy formázási beállításcsoportot és szeletet:

  • A kártya nevének meg kell egyeznie a capabilities.json objektum nevével
  • A szelet nevének meg kell egyeznie a capabilities.json tulajdonság nevével
import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

import FormattingSettingsCompositeCard = formattingSettings.CompositeCard;
import FormattingSettingsGroup = formattingSettings.Group;
import FormattingSettingsSlice = formattingSettings.Slice;

// Formatting settings group
class myVisualGroupSettings extends FormattingSettingsGroup {
    // Formatting settings slice
    myAnotherNumericSlice = new formattingSettings.NumUpDown({
        name: "myAnotherNumericSlice",
        displayName: "My Formatting Numeric Slice in group",
        value: 15,
        visible: true,
    });

    name: string = "myVisualCard";
    displayName: string = "My Formatting Card";
    analyticsPane: boolean = false;
    visible: boolean = true;
    slices: Array<FormattingSettingsSlice> = [this.myNumericSlice];
}

// Formatting settings card
class myVisualCardSettings extends FormattingSettingsCompositeCard {
    // Formatting settings slice
    myNumericSlice = new formattingSettings.NumUpDown({
        name: "myNumericSlice",
        displayName: "My Formatting Numeric Slice",
        value: 50,
        visible: true,
        options: {
            minValue: {
                type: powerbi.visuals.ValidatorType.Min,
                value: 0,
            },
            maxValue: {
                type: powerbi.visuals.ValidatorType.Max,
                value: 100,
            },
        }
    });

    name: string = "myVisualCard";
    displayName: string = "My Formatting Card";
    analyticsPane: boolean = false;
    visible: boolean = true;

    groupSetting = new myVisualGroupSettings(Object())
    groups: Array<FormattingSettingsGroup> = [this.groupSetting]
    slices: Array<FormattingSettingsSlice> = [this.myNumericSlice];
}

A capabilities.json tulajdonságdeklarációnak a következőnek kell lennie:

"objects": {
    "myVisualCard": {
        "properties": {
            "myNumericSlice": {
                "type": {
                    "numeric": true 
                }
            },
            "myAnotherNumericSlice": {
                "type": {
                    "numeric": true 
                }
            },
        }
    }
}

Formázási beállítások csoport

Egyes formázási beállítások kártyáiban lehetnek csoportok. A csoportok szeletekből állnak, és kibonthatók/összecsukhatók.

Példa a formázási beállítások csoport egy szeletel történő deklarálására:

import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

import FormattingSettingsGroup = formattingSettings.Group;
import FormattingSettingsSlice = formattingSettings.Slice;

class myVisualGroupSettings extends FormattingSettingsGroup {
    myAnotherNumericSlice = new formattingSettings.NumUpDown({
        name: "myAnotherNumericSlice",
        displayName: "My Formatting Numeric Slice in group",
        value: 15,
        visible: true
    });

    name: string = "myVisualCard";
    displayName: string = "My Formatting Card";
    analyticsPane: boolean = false;
    visible: boolean = true;
    slices: Array<FormattingSettingsSlice> = [this.myNumericSlice];
}

Formázási beállítások szelete

A formázási beállítások szelettípusa két szelettípusból áll : egyszerű és összetett.

Minden szelet formázási tulajdonságokat tartalmaz. A rendelkezésre álló formázási tulajdonságok hosszú listája található.

Példa a formázási beállítások típusszeletének NumUpDown korlátozásokkal történő deklarálására:

A szelet nevének meg kell egyeznie a capabilities.json tulajdonság nevével.

    import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

    myNumericSlice = new formattingSettings.NumUpDown({
        name: "myNumericSlice",
        displayName: "My Formatting Numeric Slice",
        value: 50,
        visible: true,
        options: {
            minValue: {
                type: powerbi.visuals.ValidatorType.Min,
                value: 0,
            },
            maxValue: {
                type: powerbi.visuals.ValidatorType.Max,
                value: 100,
            },
        }
    });

Formázási panelmodell létrehozása a FormattingModel Utils használatával

  1. Nyissa meg a settings.ts fájlt.
  2. Saját formázási beállításokat tartalmazó modellt hozhat létre az összes összetevőjével (kártyák, csoportok, szeletek, tulajdonságok ...), és nevezze el.VisualFormattingSettings Cserélje le a beállítások kódját a következőre:
import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

import FormattingSettingsCompositeCard = formattingSettings.CompositeCard;
import FormattingSettingsSlice = formattingSettings.Slice;
import FormattingSettingsModel = formattingSettings.Model;

export class VisualSettingsModel extends FormattingSettingsModel {
    // Building my visual formatting settings card
    myVisualCard: FormattingSettingsCard = new myVisualCardSettings();

    // Add formatting settings card to cards list in model
    cards: Array<FormattingSettingsCompositeCard> = [this.myVisualCard];
}

class myVisualCardSettings extends FormattingSettingsCompositeCard {
    myNumericSlice = new formattingSettings.NumUpDown({
        name: "myNumericSlice",
        displayName: "My Formatting Numeric Slice",
        value: 100,
    });

    name: string = "myVisualCard";
    displayName: string = "My Formatting Card";
    analyticsPane: boolean = false;
    slices: Array<FormattingSettingsSlice> = [this.myNumericSlice];
}
  1. A képességfájlban adja hozzá a formázási objektumokat és tulajdonságokat
"objects": {
    "myVisualCard": {
        "properties": {
            "myNumericSlice": {
                "type": {
                    "numeric": true 
                }
            }
        }
    }
}
  1. A vizualizációs osztályban importálja a következőket:
import { FormattingSettingsService } from "powerbi-visuals-utils-formattingmodel";
import { VisualFormattingSettingsModel } from "./settings";
  1. Formázási beállítások és formázási beállítások deklarálása szolgáltatás
   private formattingSettings: VisualFormattingSettingsModel;
   private formattingSettingsService: FormattingSettingsService;
  1. A formázási beállítások szolgáltatás inicializálása a konstruktorban
constructor(options: VisualConstructorOptions) {
    this.formattingSettingsService = new FormattingSettingsService();

    // ...
}
  1. Formázási beállítások létrehozása az Update API-ban a Formázási beállítások szolgáltatással populateFormattingSettingsModel
public update(options: VisualUpdateOptions) {
    this.formattingSettings = this.formattingSettingsService.populateFormattingSettingsModel(VisualFormattingSettingsModel, options.dataViews);
    // ...
}
  1. Formázási modell létrehozása és visszaadja az API-ban getFormattingModel
public getFormattingModel(): powerbi.visuals.FormattingModel {
    return this.formattingSettingsService.buildFormattingModel(this.formattingSettings);
}

Formázási tulajdonságválasztó

A formázási tulajdonságok leírójának választható választója határozza meg, hogy az egyes tulajdonságok hol vannak kötve a dataView-ban. Négy különböző lehetőség közül választhat.

A leíró objektumban lévő formázási tulajdonsághoz választót is hozzáadhat. Ez a példa az egyéni vizualizációk adatpontjainak színezésére szolgáló SampleBarChart elemből származik a tulajdonságválasztók használatával:

new formattingSettings.ColorPicker({
    name: "fill",
    displayName: dataPoint.category,
    value: { value: dataPoint.color },
    selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
    altConstantSelector: dataPoint.selectionId.getSelector(),
    instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule
}

Beállítások visszaállítása alapértelmezettre

A formázási modell segítségével alaphelyzetbe állíthatja a beállításokat az alapértelmezett értékre, ha automatikusan hozzáadja az összes formázási tulajdonságleírót a formázási kártya azon funkcióinak listájához, amelyeket vissza szeretne állítani az alapértelmezett leírókhoz revertToDefaultDescriptors.

A formázási beállítások alaphelyzetbe állítását a következő helyről engedélyezheti:

  • A formázási kártya alaphelyzetbe állítása az alapértelmezett gombra

    Screenshot of format card reset to default button.

  • A formázási panel felső sávja az összes beállítást alaphelyzetbe állítja az alapértelmezett gombra

    Screenshot of format pane reset all settings to default button.

Honosítás

A honosítási funkcióról és a honosítási környezet beállításáról további információt a Helyi nyelv hozzáadása a Power BI-vizualizációhoz című témakörben talál.

Init formatting settings service with localization manager abban az esetben, ha honosításra van szükség az egyéni vizualizációban:

constructor(options: VisualConstructorOptions) {

    const localizationManager = options.host.createLocalizationManager();
    this.formattingSettingsService = new FormattingSettingsService(localizationManager);
    
    // ...
}

Adja hozzá displayNameKey vagy descriptionKeydescription használja a megfelelő formázási displayName összetevőt, amikor egy sztring honosítását szeretné. Példa formázási szelet létrehozására honosított megjelenítendő névvel és leírással

 myFormattingSlice = new formattingSettings.NumUpDown({
        name: "myFormattingSlice",
        displayNameKey: "myFormattingSlice_Key",
        descriptionKey: "myFormattingSlice_DescriptionKey",
        value: 100
    });

displayNameKey és descriptionKey értékeket kell hozzáadni a fájlokhoz resources.json .