【问题标题】:PowerBi Report Builder (Paginated Report) to "ALL" inside Single Selection ParameterPowerBi 报表生成器(分页报表)在单选参数中设置为“全部”
【发布时间】:2021-12-30 19:51:35
【问题描述】:

如何在分页报表(PowerBi 报表生成器)的单个选择参数中包含“全选”或“全部”。谢谢。

【问题讨论】:

  • 非常感谢您的详细解释和换班响应。我只是想知道如何使用针对 DAX 而不是 SQL 优化的 powerbi 构建器来做同样的事情。

标签: reporting-services parameters powerbi


【解决方案1】:

您必须将选项添加到提供参数值的数据集查询中,通常您将额外的值合并到其中。例如,如果您有来自Categories 表的类别列表,它可能看起来像这样。

CategoryID CategoryName
1 Cars
2 Bikes
3 Trucks

然后数据集查询看起来像

SELECT * 
    FROM 
        (SELECT * FROM Categories
        UNION 
        SELECT 0, 'Select All'
        ) a 
    ORDER BY 
        CASE CategoryID WHEN 0 THEN 0 ELSE 1 END, 
        CategoryName 

这里我使用CASE 语句按字母顺序排序,除了 CategoryID 为 0 以确保它始终出现在列表中的首位。

这给出了以下输出,您可以将其用作参数值..

然后在您的主数据集查询中,您可以执行类似的操作。

SELECT *
    FROM myTable 
    WHERE (catID = @catID OR @catID = 0)

@catID 是 SSRS 参数的名称,0 是您为“全选”选择的任何值

【讨论】:

  • 对于 SQL Server,请考虑将 OPTION RECOMPILE 添加到包含 WHERE (catID = @catID OR @catID = 0) 的查询中,以便在优化查询计划之前修剪包含“SELECT ALL”值的 WHERE 子句。否则,它将为单个选定的@cadIDSelect All 重复使用相同的计划。
  • 非常感谢您的详细解释和换班响应。我只是想知道如何使用针对 DAX 而不是 SQL 优化的 powerbi 构建器来做同样的事情。
  • 您需要将 DAX 标签添加到您的问题中以使其清楚。您可以尝试使用 DAX UNION 函数,例如。 UNION( YourCurrentTableExpression ,{(0,"Select All")}) 。查看这些链接 docs.microsoft.com/en-us/dax/union-function-daxradacad.com/…
猜你喜欢
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多