Configure data fields
When you create a visualization, the visual is rendered according to the assigned data fields. This article shows how to use Power BI report authoring APIs to interact with data fields and assign them to data roles. To determine what data roles a visual has, use the getCapabilities
method.
Add a data field
To add a data field to a visual data role, call the addDataField
method of the visual.
addDataField(dataRole: string, dataField: models.IBaseTarget, index?: number): Promise<models.IError>
This method has the following variables:
dataRole
- The name of the data role to which the data field should be assigned. ThedataRole
parameter is equivalent to the data rolename
property. To retrieve the available data roles and names, use thegetCapabilities
method.dataField
- The data field to add to the data role. The data field is a target object, which can be a column, column with aggregation, measure, hierarchy, or hierarchy with aggregation. For more information about targets, see Use targets to select which data field to act on.index
(optional) - The index at which the data field should be added. The default behavior is for the field to be added last.
For example:
const dataField = {
$schema: "http://powerbi.com/product/schema#column",
table: "Store",
column: "Name"
};
await visual.addDataField('Category', dataField);
Get data fields
To get a list of the data fields that are defined in a data role, call the getDataFields
method of the visual.
getDataFields(dataRole: string): Promise<models.IBaseTarget>
This method has the dataRole
variable, which is the name of the data role from which to retrieve the data fields.
For example:
let dataField = await visual.getDataFields('Category');
Remove data fields
To remove a data field that's applied on a data role, call the removeDataField
method of the visual.
removeDataField(dataRole: string, index: number): Promise<models.IError>
This method has the following parameters:
dataRole
- The name of the target data role to which the data field is associated.index
- The index of the data field to delete.
For example:
await visual.removeDataField('Category', 2);
To get the index of the data field, you can use the index of the target in the getDataFields
results array.