FlagsSelection 格式设置切片

FlagsSelection 切片是一个简单的格式设置切片,用于表示 capabilities.json 文件中的枚举对象类型。 有两种 FlagSelection 切片:ItemFlagsSelection 和 AutoFlagsSelection

它们的区别在于,对于 AutoFlagsSelection 切片,需要在 capabilities.json 文件中的相应对象下声明其枚举项列表,而对于 ItemFlagsSelection,则需要在格式设置类中进行声明。

示例:FlagsSelection 实现

在此示例中,我们演示如何使用格式模型 utils 生成 FlagsSelection 切片。 以下选项卡显示了 ItemFlagsSelection 和 AutoFlagsSelection 切片的示例

ItemFlagsSelection 的屏幕截图。

Capabilities 对象

将以下 JSON 片段插入 capabilities.json 文件中。

{
  // ... same level as dataRoles and dataViewMappings
  "objects": {
    "labels": {
      "properties": {
        "itemFlag": {
          "type": {
            "enumeration": []
          }
        },
      }
    }
  }
}

格式设置模型类

将以下代码片段插入设置文件中。

import powerbi from "powerbi-visuals-api";
import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";

const itemFlagOptions : powerbi.IEnumMember[] = [
    {value : "1", displayName : "Top"}, 
    {value : "2", displayName : "Bottom"},
    {value : "4", displayName : "Left"}, 
    {value : "8", displayName : "Right"}
];

class LabelsCardSetting extends formattingSettings.SimpleCard {
    name: string = "labels"; // same as capabilities object name
    displayName: string = "Labels";

    public itemFlag: formattingSettings.ItemFlagsSelection = new formattingSettings.ItemFlagsSelection({
        name: "itemFlag", // same as capabilities property name
        displayName: "Item flag",
        items: itemFlagOptions,
        value: "1"
    });

    public slices: formattingSettings.Slice[] = [ this.itemFlag ];
}

export class VisualSettings extends formattingSettings.Model {
    public labels: LabelsCardSetting = new LabelsCardSetting();
    public cards: formattingSettings.SimpleCard[] = [this.labels];
}