我正在从Crystal Reports切换到SSRS报告。在Crystal Reports中,有一种方法可以在每个报告的末尾显示“选择标准”。这显示了开发人员对报表数据所做的所有数据操作。 示例:(这将显示在Crystal中每个报告的末尾)
选择标准:
usp.Members.MemberID <>2 and
usp.Members.Active = "Y" and
if(usp.Members.Location = "M1" then "Admission Location" else " ")
在SSRS中,我可以在很多地方操纵数据; “数据集属性”,“文本框/字段表达式”和“过滤器”中的“查询构建器”。
是否有任何我可以显示我所做的所有报表表达式,或者在报表末尾显示用于生成数据集的查询,以向用户显示数据背后的逻辑?
我明白我的要求可能很难理解。任何帮助表示赞赏。
答案 0 :(得分:6)
您可以使用如下表达式查看数据集查询:
=DataSets!DataSet1.CommandText
其中DataSet1
是数据集的名称。
举个例子,假设我有一个包含查询的报告:
我有一个基于此的简单报告:
您可以看到文本框表达式与上面相同:
表达式显示错误,但无论如何都可以:
有关详细信息,请参阅What DataSet Query Text Is Executed。
不确定从报告中提取所有表达式,但希望这就足够了。
在评论后修改
OP提到它只是在报告标题中为他工作,但在我的例子中,这是在身体中工作。
从Using Built-in Collections in Expressions来看,似乎还有一些进一步的限制:
表示从a的主体引用的数据集的集合 报告定义。不包括仅在页面中使用的数据源 页眉或页脚。不适用于本地预览。
这解释了为什么它对我有用 - 它也被用在一张桌子里。
作为一个简单的解决方法,您只需在报表正文的某处添加隐藏文本框即可引用所需的数据集;这应该允许.CommandText
在身体中工作。