我有一个基于 SSAS 表格模型源的分页报告。 它有一个名为@Color的多选参数。
要求是,如果用户从@Color参数下拉列表中选择一个或多个值,并且如果选择包含值“ALL”,则参数列的所有值都应传递到数据集ClientSales,否则如果选择不包含“ ALL”,则仅应传递选定的值。
(我已将值“ALL”联合到名为 ColorNames 的数据集,该数据集用于 @Color 参数的可用值)
可以从以下链接访问包含数据和分页报告 rdl 的相关 Power BI 文件 (请考虑通过打开 PBIX 文件并使用 DAX Studio 复制本地主机服务器名称来更改 rdl 中的源)
如有任何帮助,我们将不胜感激。
我同意@David Bacci,已经有了“全选”选项(就像法国人说的“ne réinvente pas la roue”)。 据我所知,UI/UX 团队正在寻找对报告的最终用户更友好的东西。我提供的解决方案即使满足了需求,也可能会影响性能。
我的解决方案影响了模型,因为我为包括“全部”的颜色创建了一个单独的表:(使用 Power Query 或将其作为源中的工作表导入)
然后您需要在源中添加一个额外的列,其中所有行都有“ALL”,这是一个示例:
然后将您的来源链接到颜色表:
活跃关系:
非活跃关系:
现在说到计算/测量,这就是如何使用这两种关系:
ConditionalSum =
VAR SelectedColor = SELECTEDVALUE(Colors[Color], "All")
RETURN
IF(
SelectedColor = "All",
CALCULATE(
SUM(datavehicles[CostPrice]),
ALL(Colors), // Removes any filter from the Colors table.
USERELATIONSHIP(datavehicles[All Colors], Colors[Color]) // This should be the active relationship.
),
CALCULATE(
SUM(datavehicles[CostPrice]),
USERELATIONSHIP(datavehicles[Color], Colors[Color]), // This should be the inactive relationship.
Colors[Color] = SelectedColor
)
)
当选择“全部”时,我使用全部(颜色)从整个颜色表中删除任何过滤器。