请求聚合的小计数据
使用“总计和小计 API”,具有矩阵数据视图的自定义视觉对象可以从 Power BI 主机请求聚合的小计数据。 为整个矩阵语义模型计算小计,或者为矩阵数据层次结构的各个级别指定小计。 有关 Power BI 视觉对象中的“总计和小计 API”的示例,请查看示例报表。
注意
版本 2.6.0 及更高版本中支持请求分类汇总数据。 rowSubtotalType
属性在版本 5.1.0 及更高版本中可用。 若要了解所使用的版本,请检查 pbiviz.json 文件中的 apiVersion
。
每次视觉对象刷新其数据时,视觉对象都会向 Power BI 后端发出 数据提取请求。 这些数据请求通常用于用户拖动到视觉对象字段井的字段的值。 有时,视觉对象需要将其他聚合或小计(例如 sum、count)应用于这些字段井。 使用 Total 和 Subtotal API 可以自定义传出数据查询,以请求更多聚合或分类汇总数据。
小计 API
API 为每个数据视图类型提供以下自定义项(目前仅矩阵数据视图)。
rowSubtotals
:(布尔值)指示是否应为行字段井中的所有字段请求小计数据。rowSubtotalsPerLevel
:(布尔值)指示是否可以为行字段井中的各个字段切换小计数据。columnSubtotals
:(布尔值)指示是否应为列字段井中的所有字段请求小计数据。columnSubtotalsPerLevel
:(布尔值)指示是否可以为列字段井中的各个字段切换小计数据。levelSubtotalEnabled
:(布尔值)指示是否为行或列请求小计。 与所有其他属性不同,此属性将应用于单个行或列。rowSubtotalsType
:(“Top”或“Bottom”)指示是否应在其余数据之前 (top
) 或之后 (bottom
) 检索包含总计数据的行。 如果此属性设置为bottom
,则只能在提取所有数据后显示总计。 默认值为bottom
。
每个开关都根据属性窗格中的相关属性和默认值分配一个值。
如何使用小计 API
视觉对象的 capabilities.json 文件必须:
- 指定每个开关映射到的属性。
- 提供在未定义属性时要使用的默认值。
这些开关使用类似于以下示例的格式:
"rowSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "rowSubtotals"
},
"defaultValue": true
},
上面的代码指示行小计由 subTotals
对象中的 rowSubtotals
属性启用。 该属性的默认值为 true
。
每当在 capabilities.json 文件中定义小计结构和所有开关映射后,就会自动为视觉对象启用 API。
以下代码是 capabilities.json 文件中的完整 API 配置示例(从 API 示例视觉对象复制):
"subtotals": {
"matrix": {
"rowSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "rowSubtotals"
},
"defaultValue": true
},
"rowSubtotalsPerLevel": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "perRowLevel"
},
"defaultValue": false
},
"columnSubtotals": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "columnSubtotals"
},
"defaultValue": true
},
"columnSubtotalsPerLevel": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "perColumnLevel"
},
"defaultValue": false
},
"levelSubtotalEnabled": {
"propertyIdentifier": {
"objectName": "subTotals",
"propertyName": "levelSubtotalEnabled"
},
"defaultValue": true
},
"rowSubtotalsType": {
"propertyIdentifier": {
"objectName": "subtotals",
"propertyName": "rowSubtotalsType"
},
"defaultValue": "Bottom"
}
}
}
视觉对象的 enumerateProperties()
函数与 capabilities.json 文件中指定的默认值保持一致,这一点很重要。 自定义逻辑根据指定的默认值运行。 如果 enumerateProperties()
函数和默认值不一致,则实际的小计自定义项可能与用户预期不同。
enum RowSubtotalType {
Top = "Top",
Bottom = "Bottom",
}
若要查看可用的自定义项,请在“格式”属性窗格中展开“小计”下拉菜单。 修改小计设置,并在“可视化效果”窗格中跟踪对小计演示(称为“总计”)的更改。
注意事项和限制
rowSubtotalsType
属性仅适用于行。 不能将列小计设置为列的开头。展开和折叠功能替代了
rowSubtotals
。 即使rowSubtotals
设置为 false,也会在展开行时显示小计。