如何在Paginated Report/SSRS中按日期筛选获取组织历史快照(基于Power BI数据集)
在嵌入Power BI的Paginated Report中实现员工历史状态日期筛选
以下两种方案均可实现你要的需求,按需选择:
方案一:复用Power BI数据集的现有度量值逻辑
- 确认已发布的Power BI数据集包含
HistoricalDate度量值和Calendar表。 - 在Paginated Report中连接目标Power BI数据集后,创建一个日期参数(命名为
SelectedDate):- 参数类型设为
Date/Time,取消勾选“允许空白值”,可设置默认日期,并启用日期选择器控件。
- 参数类型设为
- 在数据集的筛选配置中添加规则:
- 选择
HistoricalDate度量值,条件设为等于,值绑定参数表达式:=MAX('Calendar'[Date]) = Parameters!SelectedDate.Value
或者直接在报表表格的行组属性中设置行可见性: - 表达式填写:
=IIF(Fields!HistoricalDate.Value = 1, True, False)
注:需确保Calendar表已通过参数筛选为SelectedDate,可在数据集查询中补充DAX语句'Calendar'[Date] = @SelectedDate。
- 选择
方案二:直接在Paginated Report中实现筛选逻辑(无需依赖Power BI度量值)
- 创建日期参数
SelectedDate,配置同方案一,确保用户可选择单个目标日期。 - 修改Paginated Report的数据集查询为自定义DAX语句:
这里的EVALUATE FILTER( 'Table', 'Table'[Effective Date] <= @SelectedDate && 'Table'[Effective To] >= @SelectedDate )@SelectedDate会自动关联你创建的报表参数,执行后数据集将直接返回符合筛选日期的员工行。 - 基于该数据集构建报表表格即可,导出时用户选择目标日期就能得到对应历史状态的结果。
关键注意事项
- 确保Power BI数据集中的
Effective Date和Effective To字段为标准日期类型,避免格式不匹配导致筛选失效。 - 若需和Power BI主报表联动筛选,可将
SelectedDate参数设置为“从Power BI接收值”,实现跨报表的日期同步。
内容的提问来源于stack exchange,提问作者ccmiller10
相关产品推荐
相关产品推荐

