DataViewUtils
Το DataViewUtils
είναι ένα σύνολο συναρτήσεων και κλάσεων για την απλοποίηση της ανάλυσης του αντικειμένου DataView για απεικονίσεις Power BI.
Εγκατάσταση
Για να εγκαταστήσετε το πακέτο, εκτελέστε την ακόλουθη εντολή στον κατάλογο με την τρέχουσα προσαρμοσμένη απεικόνισή σας:
npm install powerbi-visuals-utils-dataviewutils --save
Αυτή η εντολή εγκαθιστά το πακέτο και προσθέτει ένα πακέτο ως εξάρτηση στο αρχείο σας package.json
.
DataViewWildcard
DataViewWildcard
Το παρέχει τη createDataViewWildcardSelector
συνάρτηση για την υποστήριξη της μορφοποίησης υπό όρους μιας ιδιότητας.
createDataViewWildcardSelector
Η επιστρέφει έναν επιλογέα που απαιτείται για τον καθορισμό του τρόπου εφαρμογής της καταχώρησης μορφοποίησης υπό όρους στο τμήμα παραθύρου μορφοποίησης, με βάση το dataviewWildcardMatchingOption (InstancesAndTotals (default), InstancesOnly, TotalsOnly)
.
Παράδειγμα:
import { dataViewWildcard } from "powerbi-visuals-utils-dataviewutils";
let selector = dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals);
// returns {data: [{dataViewWildcard:{matchingOption: 0}}]};
DataRoleHelper
Η DataRoleHelper
παρέχει συναρτήσεις για τον έλεγχο των ρόλων του αντικειμένου dataView.
Η λειτουργική μονάδα παρέχει τις ακόλουθες συναρτήσεις:
getMeasureIndexOfRole
Αυτή η συνάρτηση εντοπίζει τη μέτρηση με το όνομα του ρόλου και επιστρέφει τον δείκτη της.
function getMeasureIndexOfRole(grouped: DataViewValueColumnGroup[], roleName: string): number;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import { dataRoleHelper } from "powerbi-visuals-utils-dataviewutils";
// ...
// This object is actually a part of the dataView object.
let columnGroup: DataViewValueColumnGroup[] = [{
values: [
{
source: {
displayName: "Microsoft",
roles: {
"company": true
}
},
values: []
},
{
source: {
displayName: "Power BI",
roles: {
"product": true
}
},
values: []
}
]
}];
dataRoleHelper.getMeasureIndexOfRole(columnGroup, "product");
// returns: 1
getCategoryIndexOfRole
Αυτή η συνάρτηση εντοπίζει την κατηγορία με το όνομα του ρόλου και επιστρέφει τον δείκτη της.
function getCategoryIndexOfRole(categories: DataViewCategoryColumn[], roleName: string): number;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewCategoryColumn = powerbi.DataViewCategoryColumn;
import { dataRoleHelper } from "powerbi-visuals-utils-dataviewutils";
// ...
// This object is actually a part of the dataView object.
let categoryGroup: DataViewCategoryColumn[] = [
{
source: {
displayName: "Microsoft",
roles: {
"company": true
}
},
values: []
},
{
source: {
displayName: "Power BI",
roles: {
"product": true
}
},
values: []
}
];
dataRoleHelper.getCategoryIndexOfRole(categoryGroup, "product");
// returns: 1
hasRole
Αυτή η συνάρτηση ελέγχει αν ο παρεχόμενος ρόλος καθορίζεται στα μετα-δεδομένα.
function hasRole(column: DataViewMetadataColumn, name: string): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import { dataRoleHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let metadata: DataViewMetadataColumn = {
displayName: "Microsoft",
roles: {
"company": true
}
};
DataRoleHelper.hasRole(metadata, "company");
// returns: true
hasRoleInDataView
Αυτή η συνάρτηση ελέγχει αν ο παρεχόμενος ρόλος καθορίζεται στην dataView.
function hasRoleInDataView(dataView: DataView, name: string): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import { dataRoleHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let dataView: DataView = {
metadata: {
columns: [
{
displayName: "Microsoft",
roles: {
"company": true
}
},
{
displayName: "Power BI",
roles: {
"product": true
}
}
]
}
};
DataRoleHelper.hasRoleInDataView(dataView, "product");
// returns: true
hasRoleInValueColumn
Αυτή η συνάρτηση ελέγχει αν ο παρεχόμενος ρόλος καθορίζεται στη στήλη τιμών.
function hasRoleInValueColumn(valueColumn: DataViewValueColumn, name: string): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewValueColumn = powerbi.DataViewValueColumn;
import { dataRoleHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let valueColumn: DataViewValueColumn = {
source: {
displayName: "Microsoft",
roles: {
"company": true
}
},
values: []
};
dataRoleHelper.hasRoleInValueColumn(valueColumn, "company");
// returns: true
DataViewObjects
Η DataViewObjects
παρέχει συναρτήσεις για την εξαγωγή των τιμών των αντικειμένων.
Η λειτουργική μονάδα παρέχει τις ακόλουθες συναρτήσεις:
getValue
Αυτή η συνάρτηση επιστρέφει την τιμή του συγκεκριμένου αντικειμένου.
function getValue<T>(objects: DataViewObjects, propertyId: DataViewObjectPropertyIdentifier, defaultValue?: T): T;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewObjectPropertyIdentifier = powerbi.DataViewObjectPropertyIdentifier;
import { dataViewObjects } from "powerbi-visuals-utils-dataviewutils";
let property: DataViewObjectPropertyIdentifier = {
objectName: "microsoft",
propertyName: "bi"
};
// This object is actually a part of the dataView object.
let objects: powerbi.DataViewObjects = {
"microsoft": {
"windows": 5,
"bi": "Power"
}
};
dataViewObjects.getValue(objects, property);
// returns: Power
getObject
Αυτή η συνάρτηση επιστρέφει ένα αντικείμενο από καθορισμένα αντικείμενα.
function getObject(objects: DataViewObjects, objectName: string, defaultValue?: IDataViewObject): IDataViewObject;
Παράδειγμα:
import { dataViewObjects } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let objects: powerbi.DataViewObjects = {
"microsoft": {
"windows": 5,
"bi": "Power"
}
};
dataViewObjects.getObject(objects, "microsoft");
/* returns: {
"bi": "Power",
"windows": 5
}*/
getFillColor
Αυτή η συνάρτηση επιστρέφει ένα συμπαγές χρώμα των αντικειμένων.
function getFillColor(objects: DataViewObjects, propertyId: DataViewObjectPropertyIdentifier, defaultColor?: string): string;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewObjectPropertyIdentifier = powerbi.DataViewObjectPropertyIdentifier;
import { dataViewObjects } from "powerbi-visuals-utils-dataviewutils";
let property: DataViewObjectPropertyIdentifier = {
objectName: "power",
propertyName: "fillColor"
};
// This object is actually part of the dataView object.
let objects: powerbi.DataViewObjects = {
"power": {
"fillColor": {
"solid": {
"color": "yellow"
}
},
"bi": "Power"
}
};
dataViewObjects.getFillColor(objects, property);
// returns: yellow
getCommonValue
Αυτή η καθολική συνάρτηση ανακτά το χρώμα ή την τιμή ενός συγκεκριμένου αντικειμένου.
function getCommonValue(objects: DataViewObjects, propertyId: DataViewObjectPropertyIdentifier, defaultValue?: any): any;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewObjectPropertyIdentifier = powerbi.DataViewObjectPropertyIdentifier;
import { dataViewObjects } from "powerbi-visuals-utils-dataviewutils";
let colorProperty: DataViewObjectPropertyIdentifier = {
objectName: "power",
propertyName: "fillColor"
};
let biProperty: DataViewObjectPropertyIdentifier = {
objectName: "power",
propertyName: "bi"
};
// This object is actually part of the dataView object.
let objects: powerbi.DataViewObjects = {
"power": {
"fillColor": {
"solid": {
"color": "yellow"
}
},
"bi": "Power"
}
};
dataViewObjects.getCommonValue(objects, colorProperty); // returns: yellow
dataViewObjects.getCommonValue(objects, biProperty); // returns: Power
DataViewObject
Η DataViewObject
παρέχει συναρτήσεις για την εξαγωγή της τιμής του αντικειμένου.
Η λειτουργική μονάδα παρέχει τις ακόλουθες συναρτήσεις:
getValue
Αυτή η συνάρτηση επιστρέφει μια τιμή του αντικειμένου με το όνομα ιδιότητας.
function getValue<T>(object: IDataViewObject, propertyName: string, defaultValue?: T): T;
Παράδειγμα:
import { dataViewObject } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let object: powerbi.DataViewObject = {
"windows": 5,
"microsoft": "Power BI"
};
dataViewObject.getValue(object, "microsoft");
// returns: Power BI
getFillColorByPropertyName
Αυτή η συνάρτηση επιστρέφει ένα συμπαγές χρώμα του αντικειμένου με το όνομα ιδιότητας.
function getFillColorByPropertyName(object: IDataViewObject, propertyName: string, defaultColor?: string): string;
Παράδειγμα:
import { dataViewObject } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let object: powerbi.DataViewObject = {
"windows": 5,
"fillColor": {
"solid": {
"color": "green"
}
}
};
dataViewObject.getFillColorByPropertyName(object, "fillColor");
// returns: green
converterHelper
Η converterHelper
παρέχει συναρτήσεις για τον έλεγχο των ιδιοτήτων της dataView.
Η λειτουργική μονάδα παρέχει τις ακόλουθες συναρτήσεις:
categoryIsAlsoSeriesRole
Αυτή η συνάρτηση ελέγχει αν η κατηγορία είναι επίσης μια σειρά.
function categoryIsAlsoSeriesRole(dataView: DataViewCategorical, seriesRoleName: string, categoryRoleName: string): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewCategorical = powerbi.DataViewCategorical;
import { converterHelper } from "powerbi-visuals-utils-dataviewutils";
// ...
// This object is actually part of the dataView object.
let categorical: DataViewCategorical = {
categories: [{
source: {
displayName: "Microsoft",
roles: {
"power": true,
"bi": true
}
},
values: []
}]
};
converterHelper.categoryIsAlsoSeriesRole(categorical, "power", "bi");
// returns: true
getSeriesName
Αυτή η συνάρτηση επιστρέφει ένα όνομα της σειράς.
function getSeriesName(source: DataViewMetadataColumn): PrimitiveValue;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import { converterHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let metadata: DataViewMetadataColumn = {
displayName: "Microsoft",
roles: {
"power": true,
"bi": true
},
groupName: "Power BI"
};
converterHelper.getSeriesName(metadata);
// returns: Power BI
isImageUrlColumn
Αυτή η συνάρτηση ελέγχει αν η στήλη περιέχει μια διεύθυνση URL εικόνας.
function isImageUrlColumn(column: DataViewMetadataColumn): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import { converterHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let metadata: DataViewMetadataColumn = {
displayName: "Microsoft",
type: {
misc: {
imageUrl: true
}
}
};
converterHelper.isImageUrlColumn(metadata);
// returns: true
είναιWebUrlColumn
Αυτή η συνάρτηση ελέγχει αν η στήλη περιέχει μια διεύθυνση URL web.
function isWebUrlColumn(column: DataViewMetadataColumn): boolean;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import { converterHelper } from "powerbi-visuals-utils-dataviewutils";
// This object is actually a part of the dataView object.
let metadata: DataViewMetadataColumn = {
displayName: "Microsoft",
type: {
misc: {
webUrl: true
}
}
};
converterHelper.isWebUrlColumn(metadata);
// returns: true
hasImageUrlColumn
Αυτή η συνάρτηση ελέγχει αν η dataView έχει μια στήλη με διεύθυνση URL εικόνας.
function hasImageUrlColumn(dataView: DataView): boolean;
Παράδειγμα:
import DataView = powerbi.DataView;
import converterHelper = powerbi.extensibility.utils.dataview.converterHelper;
// This object is actually part of the dataView object.
let dataView: DataView = {
metadata: {
columns: [
{
displayName: "Microsoft"
},
{
displayName: "Power BI",
type: {
misc: {
imageUrl: true
}
}
}
]
}
};
converterHelper.hasImageUrlColumn(dataView);
// returns: true
DataViewObjectsParser
Η DataViewObjectsParser
παρέχει τον απλούστερο τρόπο ανάλυσης των ιδιοτήτων του πίνακα μορφοποίησης.
Η κλάση παρέχει τις ακόλουθες μεθόδους:
getDefault
Αυτή η στατική μέθοδος επιστρέφει μια παρουσία της DataViewObjectsParser.
static getDefault(): DataViewObjectsParser;
Παράδειγμα:
import { dataViewObjectsParser } from "powerbi-visuals-utils-dataviewutils";
// ...
dataViewObjectsParser.getDefault();
// returns: an instance of the DataViewObjectsParser
αναλύω
Αυτή η μέθοδος αναλύει τις ιδιότητες του πίνακα μορφοποίησης και επιστρέφει μια παρουσία του DataViewObjectsParser
.
static parse<T extends DataViewObjectsParser>(dataView: DataView): T;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import IVisual = powerbi.extensibility.IVisual;
import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions;
import { dataViewObjectsParser } from "powerbi-visuals-utils-dataviewutils";
/**
* This class describes formatting panel properties.
* Name of the property should match its name described in the capabilities.
*/
class DataPointProperties {
public fillColor: string = "red"; // This value is a default value of the property.
}
class PropertiesParser extends dataViewObjectsParser.DataViewObjectsParser {
/**
* This property describes a group of properties.
*/
public dataPoint: DataPointProperties = new DataPointProperties();
}
export class YourVisual extends IVisual {
// implementation of the IVisual.
private propertiesParser: PropertiesParser;
public update(options: VisualUpdateOptions): void {
// Parses properties.
this.propertiesParser = PropertiesParser.parse<PropertiesParser>(options.dataViews[0]);
// You can use the properties after parsing
console.log(this.propertiesParser.dataPoint.fillColor); // returns "red" as default value, it will be updated automatically after any change of the formatting panel.
}
}
enumerateObjectInstances
Σημαντικό
enumerateObjectInstances
Κατα αποσυρθεί στην έκδοση API 5.1. Αντικαταστάθηκε από το getFormattingModel.
Επίσης, ανατρέξτε στο θέμα FormattingModel Utils.
Αυτή η στατική μέθοδος απαριθμεί ιδιότητες και επιστρέφει μια παρουσία του VisualObjectInstanceEnumeration
.
Εκτελέστε την στη enumerateObjectInstances
μέθοδο της απεικόνισης.
static enumerateObjectInstances(dataViewObjectParser: dataViewObjectsParser.DataViewObjectsParser, options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration;
Παράδειγμα:
import powerbi from "powerbi-visuals-api";
import IVisual = powerbi.extensibility.IVisual;
import EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions;
import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration;
import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions;
import { dataViewObjectsParser } from "powerbi-visuals-utils-dataviewutils";
/**
* This class describes formatting panel properties.
* Name of the property should match its name described in the capabilities.
*/
class DataPointProperties {
public fillColor: string = "red";
}
class PropertiesParser extends dataViewObjectsParser.DataViewObjectsParser {
/**
* This property describes a group of properties.
*/
public dataPoint: DataPointProperties = new DataPointProperties();
}
export class YourVisual extends IVisual {
// implementation of the IVisual.
private propertiesParser: PropertiesParser;
public update(options: VisualUpdateOptions): void {
// Parses properties.
this.propertiesParser = PropertiesParser.parse<PropertiesParser>(options.dataViews[0]);
}
/**
* This method will be executed only if the formatting panel is open.
*/
public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration {
return PropertiesParser.enumerateObjectInstances(this.propertiesParser, options);
}
}