Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere InformationenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
FormattingModel-Utils enthält die Klassen, Schnittstellen und Methoden, die zum Erstellen eines Formatierungseinstellungsmodells erforderlich sind, um die Eigenschaftenbereiche (Format- und Analysebereiche) Ihres benutzerdefinierten visuellen Power BI-Elements auszufüllen.
Der Formatierungseinstellungsdienst empfängt ein Formatierungseinstellungsmodell und wandelt es in ein Formatierungsmodell um, das den Formatierungsbereich ausfüllt. Der Formatierungsmodelldienst unterstützt auch Zeichenfolgenlokalisierungen.
Initialisieren des Formatierungseinstellungsdiensts:
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();
// ...
}
}
Die Schnittstelle für den Formatierungseinstellungsdienst IFormattingSettingsService verfügt über zwei Standardmethoden:
/**
* 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;
Das Einstellungsmodell enthält und umschließt alle Formatierungskarten für den Formatierungsbereich und den Analysebereich.
export class Model {
cards: Array<Cards>;
}
In diesem Beispiel wird ein neues Formatierungseinstellungsmodell deklariert:
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];
}
Eine Karte mit Formatierungseinstellungen legt eine Formatierungskarte im Formatierungs- oder Analysebereich fest. Eine Karte mit Formatierungseinstellungen kann mehrere Formatierungsslices, Container, Gruppen und Eigenschaften enthalten.
Durch das Hinzufügen von Slices zu einer Karte mit Formatierungseinstellungen werden alle diese Segmente in einer Formatierungskarte zusammengefasst.
Karten, Segmente und Gruppen können dynamisch ausgeblendet werden, indem sie den visible
Parameter auf false festlegen (standardmäßig true).
Der Karte kann entweder den Formatierungsbereich oder den Analysebereich ausfüllen, indem der Parameter analyticsPane
auf true bzw. false festgelegt wird.
Beispiel zum Deklarieren der Karte für Formatierungseinstellungen, einschließlich einer Formatierungseinstellungsgruppe und eines Datenschnitts:
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];
}
Die Eigenschaftsdeklaration in capabilities.json sollte wie folgt lauten:
"objects": {
"myVisualCard": {
"properties": {
"myNumericSlice": {
"type": {
"numeric": true
}
},
"myAnotherNumericSlice": {
"type": {
"numeric": true
}
},
}
}
}
Einige Formatierungseinstellungen Karte können Gruppen enthalten. Gruppen bestehen aus Segmenten und können erweitert/reduziert werden.
Beispiel zum Deklarieren der Formatierungseinstellungengruppe mit einem Segment:
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];
}
Der Slicetyp für Formatierungseinstellungen besteht aus zwei Typen von Slices: einfach und zusammengesetzt.
Jeder Slice enthält Formatierungseigenschaften. Es gibt eine lange Liste verfügbarer Formatierungseigenschaftentypen.
Beispiel zum Deklarieren von Formatierungseinstellungen des Typs NumUpDown
mit Einschränkungen:
Der Slicename sollte dem Eigenschaftennamen in capabilities.json entsprechen.
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,
},
}
});
settings.ts
.VisualFormattingSettings
.
Ersetzen Sie den Einstellungscode durch folgenden Code: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];
}
"objects": {
"myVisualCard": {
"properties": {
"myNumericSlice": {
"type": {
"numeric": true
}
}
}
}
}
import { FormattingSettingsService } from "powerbi-visuals-utils-formattingmodel";
import { VisualFormattingSettingsModel } from "./settings";
private formattingSettings: VisualFormattingSettingsModel;
private formattingSettingsService: FormattingSettingsService;
constructor(options: VisualConstructorOptions) {
this.formattingSettingsService = new FormattingSettingsService();
// ...
}
populateFormattingSettingsModel
public update(options: VisualUpdateOptions) {
this.formattingSettings = this.formattingSettingsService.populateFormattingSettingsModel(VisualFormattingSettingsModel, options.dataViews);
// ...
}
getFormattingModel
-APIpublic getFormattingModel(): powerbi.visuals.FormattingModel {
return this.formattingSettingsService.buildFormattingModel(this.formattingSettings);
}
Die optionale Auswahl im Deskriptor für Formatierungseigenschaften bestimmt, wo die einzelnen Eigenschaften in der dataView gebunden werden. Es gibt vier verschiedene Optionen.
Sie können der Formatierungseigenschaft in ihrem Deskriptorobjekt einen Selektor hinzufügen. Dieses Beispiel stammt aus SampleBarChart für das Einfärben benutzerdefinierter visueller Datenpunkte mithilfe von Eigenschaftenselektoren:
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
}
Mithilfe von Formatierungsmodell-Hilfsprogrammen können Sie Einstellungen auf den Standardwert zurücksetzen, indem Sie automatisch alle Formatierungseigenschaftendeskriptoren der Liste der Features auf der Formatierungskarte hinzufügen, die auf Standarddeskriptoren revertToDefaultDescriptors
zurückgesetzt werden sollen.
Sie können das Zurücksetzen von Formatierungseinstellungen hier aktivieren:
Schaltfläche Auf Standard zurücksetzen auf der Formatierungskarte
Schaltfläche Alle Einstellungen auf Standardwerte zurücksetzen in der oberen Leiste des Formatierungsbereichs
Weitere Informationen zum Lokalisierungsfeature und zum Einrichten der Lokalisierungsumgebung finden Sie unter Hinzufügen der lokalen Sprache zu Ihrem visuellen Power BI-Element.
Initialisieren Sie den Formatierungseinstellungsdienst mit dem Lokalisierungsmanager, falls eine Lokalisierung in Ihrem benutzerdefinierten visuellen Element erforderlich ist:
constructor(options: VisualConstructorOptions) {
const localizationManager = options.host.createLocalizationManager();
this.formattingSettingsService = new FormattingSettingsService(localizationManager);
// ...
}
Fügen Sie displayNameKey
oder descriptionKey
anstelle von displayName
und description
in der entsprechenden Formatierungskomponente hinzu, wenn eine Zeichenfolge lokalisiert werden soll.
Beispiel für das Erstellen eines Formatierungsslices mit lokalisiertem Anzeigenamen und einer lokalisierten Beschreibung
myFormattingSlice = new formattingSettings.NumUpDown({
name: "myFormattingSlice",
displayNameKey: "myFormattingSlice_Key",
descriptionKey: "myFormattingSlice_DescriptionKey",
value: 100
});
Die Werte für displayNameKey
und descriptionKey
sollten den resources.json
-Dateien hinzugefügt werden.
Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere Informationen