繁体   English   中英

在SSRS 2008报告中将字段添加到表达式中

[英]Adding Fields into an expression in an SSRS 2008 report

预先感谢您抽出宝贵时间回答我的问题。

我在SSRS报告系统中遇到表达式问题。 字段我正在从报表中提供的数据集中添加必填字段,但是当我尝试预览报表时,出现以下消息:

“用于报表参数'Policies_Total'的值表达式引用一个字段。该字段不能在报表参数表达式中使用。”

这是我的表情:

=IIF(Sum(Fields!policy_id.Value, "DataSet1") Is Null, 0, Count(Sum(Fields!policy_id.Value, "DataSet1")))

假定可以从具有以下表达式的Crystal报表中进行转换:

If IsNull ({usp_rep_agent_cases;1.policy_id}) then
    0
Else
    Count ({usp_rep_agent_cases;1.policy_id}) 

任何帮助深表感谢。

谢谢

我认为可能很简单,那就是在大部分字段创建之前将“参数”传递给SSRS。 如果此参数取决于其他参数的值,那么您将无法首先列出该参数,因为据我所知该字段尚未填充。 看起来当您只是创建数据集并直接引用该字段时,您正试图使用​​表达式来对数据集中的某个字段进行计数。 因此,您可以选择其他几个选项来代替尝试表达式:

  1. 在参数“可用值”的左窗格中选择“从查询中获取值”。 您可以使用作为“数据集”的查询,其值不言自明,标签是最终用户将看到的内容。

  2. 选项“允许为空”值将接受一个空值

您可能会遇到可能需要使用多个数据集,多个选择或查询对象的情况。 以我对SSRS的经验,当您尝试引用用于显示数据的数据集与用于确定事件或动作的数据集时,有时会感到恼火。 您做的表达式越多,SSRS的相对相对性就越慢,因此,只用表达式而不是利用RDL语言的内置功能来完成整个报表就不值得恕我直言了。

对于SSRS表达式,您需要使用IsNothing进行NULL检查,例如:

=IIF(
  IsNothing(Sum(Fields!policy_id.Value, "DataSet1"))
  , 0
  , Count(Sum(Fields!policy_id.Value, "DataSet1"))
)

实际上,整个表达式似乎有些奇怪。 您具体想通过表情实现什么? 您是否只是想计算非空值?

=Sum(IIf(IsNothing(Fields!policy_id.Value), 1, 0), "DataSet1")

另外,您的错误似乎是在不允许使用参数引用字段时,可能无法通过更改语法来解决。 我认为这里需要有关您要实现的目标的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM