配置数据字段

创建可视化效果时,视觉对象将根据分配的数据字段呈现。 本文介绍如何使用 Power BI 报表创作 API 与数据字段交互,并将其分配给数据角色。 若要确定视觉对象具有哪些数据角色,请使用 getCapabilities 方法。

添加数据字段

若要向视觉对象数据角色添加数据字段,请调用视觉对象的 addDataField 方法。

addDataField(dataRole: string, dataField: models.IBaseTarget, index?: number): Promise<models.IError>

此方法具有以下变量:

  • dataRole - 应向其分配数据字段的数据角色的名称。 dataRole 参数等效于数据角色 name 属性。 若要检索可用的数据角色和名称,请使用 getCapabilities 方法。
  • dataField - 要添加到数据角色的数据字段。 数据字段是一个目标对象,可以是包含聚合、度量值、层次结构或具有聚合的列。 有关目标的详细信息,请参阅 使用目标选择要对执行哪些数据字段。
  • index (可选) - 应在其中添加数据字段的索引。 默认行为是最后添加字段。

例如:

const dataField = {
  $schema: "http://powerbi.com/product/schema#column",
  table: "Store",
  column: "Name"
};

await visual.addDataField('Category', dataField);

获取数据字段

若要获取数据角色中定义的数据字段的列表,请调用视觉对象的 getDataFields 方法。 该列表将同时包含隐藏字段和可见字段。

getDataFields(dataRole: string): Promise<models.IBaseTarget>

此方法具有 dataRole 变量,该变量是从中检索数据字段的数据角色的名称。

例如:

let dataField = await visual.getDataFields('Category');

删除数据字段

若要删除应用于数据角色的数据字段,请调用视觉对象的 removeDataField 方法。

removeDataField(dataRole: string, index: number): Promise<models.IError>

此方法具有以下参数:

  • dataRole - 与数据字段关联的目标数据角色的名称。
  • index - 要删除的数据字段的索引。

例如:

await visual.removeDataField('Category', 2);

若要获取数据字段的索引,可以在 getDataFields 结果数组中使用目标索引。

设置数据字段的可见性

若要控制数据字段的可见性,请使用 setFieldHidden 视觉对象上的方法。 只能隐藏或显示聚合字段、度量值和视觉计算。 此作相当于在视觉计算编辑模式下切换字段可见性。

setFieldHidden(dataRole: string, index: number, isHidden: boolean): Promise<models.IError>

此方法具有以下参数:

  • dataRole - 与数据字段关联的目标数据角色的名称。
  • index - 要隐藏或取消隐藏的数据字段的索引。
  • isHidden - 用于确定应隐藏位置的布尔值

例如:

await visual.setFieldHidden('Values', 0, /*isHidden*/ true);

设置数据字段的格式字符串

若要设置特定字段中显示的数据的格式,请调用 setFieldFormatString 视觉对象的方法。

setFieldFormatString(dataRole: string, index: number, formatString: string): Promise<models.IError>

此方法具有以下参数:

  • dataRole - 与数据字段关联的目标数据角色的名称。
  • index - 要设置格式字符串的数据字段的索引
  • formatString - 需要 .NET 格式字符串

例如:如果希望字段中的每一个值都以 $ 开头,请执行以下作:

await visual.setFieldFormatString('Values', 0, /*formatString*/ "$0.00");

获取数据字段的格式字符串

若要检索字段的格式字符串,请调用 getFieldFormatString 视觉对象的方法。

getFieldFormatString(dataRole: string, index: number): Promise<string>

此方法具有以下参数:

  • dataRole - 与数据字段关联的目标数据角色的名称。
  • index - 用于获取格式字符串的数据字段的索引
let formatString = await visual.getFieldFormatString('Values', 0);

获取数据字段的名称

视觉对象中的每个字段都具有派生自其显示名称的唯一名称。 此唯一标识符用于在创建视觉计算时引用 DAX 表达式中的字段。 若要检索此唯一名称,请调用 getDataFieldName 视觉对象的方法。

getDataFieldName(dataRole: string, index: number): Promise<string>

此方法具有以下参数:

  • dataRole - 与数据字段关联的目标数据角色的名称。
  • index - 要获取字段名称的数据字段的索引
let dataFieldName = await visual.getDataFieldName('Values', 0);
let visualCalcDax = `RUNNINGSUM([${dataFieldName}])`;