共用方式為


設定數據欄位

當您建立視覺效果時,視覺效果會根據指派的數據欄位來呈現。 本文說明如何使用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}])`;