Κοινή χρήση μέσω


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);
    }
}