次の方法で共有


データ フィールドを構成する

視覚エフェクトを作成すると、割り当てられたデータ フィールドに従ってビジュアルがレンダリングされます。 この記事では、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}])`;