Fra*_*ank 7 reportingservices-2005 reporting-services
我必须start_date
根据报告参数设置我的报告.时间戳在数据库查询中计算.
我的表情看起来像这样:
=SWITCH (
Parameters!report_type.Value = 1,First(Fields!daily_start.Value, "Timestamps")
,Parameters!report_type.Value = 2,First(Fields!weekly_start.Value, "Timestamps")
,Parameters!report_type.Value = 3,First(Fields!monthly_start.Value, "Timestamps")
)
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到错误消息:
用于报告参数"time_from"的值表达式是指字段.字段不能用于报表参数表达式
我知道,这是不允许的,因为SSRS无法确定调用数据集的顺序.但我认为这并不危险.
所有时间戳都是通过查询接收的,没有参数.report_type
在生成报告之前,用户选择该参数.
有人可以给我一个解决方法的提示吗?
这是解决方法 - 使用 SQL 获取值。
创建一个名为 StartDates 的新数据集:
SELECT CASE
WHEN @report_type = 1 THEN daily_start
WHEN @report_type = 2 THEN weekly_start
WHEN @report_type = 3 THEN monthly_start
END AS StartDate
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
您已经有了@report_type
和@time_from
参数。使用该@time_from
参数,将其默认值设置为Get values from a query
使用 StartDates 数据集和 Value 字段 StartDate。
现在,您认为这可能足以使其工作 - 您引用此查询作为默认值,并且当您更改参数时,@report_type
其他参数会刷新,但参数中的第一个日期@time_from
永远不会更改。这是因为刷新发生在可用值查询上,而不是默认值查询上。
因此,您还需要将可用值查询连接到开始日期查询。现在,您的查询将在更改时触发@report_type
,并且默认值将设置为适合您选择的日期。
归档时间: |
|
查看次数: |
18087 次 |
最近记录: |