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