条件付き書式を追加する
条件付き書式設定を使用すると、レポートの作成者は数値に従って、レポート上での色の表示方法を指定できます。
この記事では、Power BI 視覚化に条件付き書式機能を追加する方法について説明します。
現在、条件付き書式は色にのみ適用できます。
条件付き書式をプロジェクトに追加する
このセクションでは、既存の Power BI 視覚化に条件付き書式を追加する方法について説明します。 この記事のサンプル コードは、SampleBarChart 視覚エフェクトに基づいています。 barChart.ts のソース コードを調べることができます。
[書式] ウィンドウに条件付きの色の書式設定エントリを追加する
このセクションでは、[書式] ペイン内のデータ ポイントに、条件付きの色の書式設定エントリを追加する方法について説明します。
VisualObjectInstance
内のpropertyInstanceKind
配列を使用します。これはpowerbi-visuals-api
によって公開されています。 ファイルに次のインポートが含まれていることを確認します。import powerbiVisualsApi from "powerbi-visuals-api";
適切な種類の書式設定 (Constant、ConstantOrRule、または Rule) を指定するには、
VisualEnumerationInstanceKinds
列挙型を使用します。 次のインポートをファイルに追加します。import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;
書式設定プロパティ インスタンスの種類を設定します
条件付き書式をサポートするプロパティを書式設定するには、その descriptor
に必要なインスタンスの種類を設定します。
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule // <=== Support conditional formatting
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
VisualEnumerationInstanceKinds.ConstantOrRule
によって、定数の書式設定 UI 要素と共に、条件付き書式 UI のエントリが作成されます。
条件付き書式の動作方法を定義する
書式設定がデータ ポイントに適用される方法を定義します。
powerbi-visuals-utils-dataviewutils
の下で宣言された createDataViewWildcardSelector
を使用して、条件付き書式をインスタンス、合計、またはその両方に適用するかどうかを指定します。 詳細については、「DataViewWildcard」を参照してください。
条件付き書式を適用するプロパティに対して、次の変更を行います。
selector
値をdataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)
呼び出しに置き換えます。DataViewWildcardMatchingOption
によって、条件付き書式をインスタンス、合計、またはその両方に適用するかどうかを定義します。selector
プロパティ用に以前に定義した値を使用して、altConstantValueSelector
プロパティを追加します。
条件付き書式をサポートするプロパティを書式設定するには、その descriptor
に必要なインスタンスの種類を設定します。
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
// Define whether the conditional formatting will apply to instances, totals, or both
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
// Add this property with the value previously defined for the selector property
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
考慮事項と制限事項
条件付き書式は、次のビジュアルではサポートされていません。
テーブル ベースのビジュアル
マトリックス ベースのビジュアル
系列では条件付き書式を使用しないことをお勧めします。 代わりに、顧客が各系列を個別に書式設定できるようにする必要があります。これにより、系列を視覚的に区別しやすくなります。 系列を使用した大多数のすぐに使用できるビジュアルで、この方法を共有しています。