2013-03-15 102 views
0

非常感谢您花时间回答我的问题。将字段添加到SSRS 2008报告中的表达式中

我在SSRS报告系统中遇到表达式问题。 我是从我在报告中提供的数据集添加所需的字段,但是当我尝试预览报告中,我得到以下信息领域:

“用于报表参数‘Policies_Total’ 值表达式指的是一个字段,在报表参数 中不能使用字段。“

这是我的表达:

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

这是suppoed从Crystal转换报告,其中有如下表现:

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

任何帮助深表感谢。

谢谢

回答

0

对于SSRS表达式,你需要使用IsNothingNULL检查,是这样的:

=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") 

另外,你的错误似乎是说,一个参数被引用字段时这是不允许的,这可能不是通过改变语法来解决;我想在这里需要更多关于你想要实现的信息。

+0

非常感谢你。 – user2174391 2013-03-20 12:48:47

+0

不客气。如果您发现答案有帮助,请考虑投票并/或将其设置为接受的答案。 – 2013-03-20 13:03:26

1

我认为这可能很简单,理解应该在创建大部分字段之前将“参数”传递到SSRS。如果此参数取决于首先选择的其他值,则不能先列出它,因为该字段尚未填充到我所知的位置。看起来你正在尝试使用表达式来计算某个数据集中某个字段的某些内容,而只需创建一个数据集并直接引用该字段即可。因此,而不是试图表达你可以选择一些其他选项,而不是:

  1. 选择你的参数“可选值”选择“获取从查询值”的左窗格中。你可以使用你的查询,这是一个'数据集',值是自我解释的,标签是最终用户将看到的显示。

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

你可能会碰到有多个数据集可能需要使用的情况下,多选择或查询的对象。根据我对SSRS的经验,当您尝试引用用于显示数据的数据集时,会发生一些情况,这些数据集用于确定事件或操作。 SSRS的相对性也越慢,你做的表达式就越多,所以做一个完整的报告,除了表达式和使用RDL语言的内置功能,并不是真的值得恕我直言。

+0

我用Ian Preston帮助制作了一个简单的现场盒子,似乎解决了这个问题。谢谢您的意见。 – user2174391 2013-03-20 12:52:13