RDLC #Error让我疯狂(每页小计)

时间:2014-06-10 12:39:40

标签: c# .net reporting-services rdlc

我的报告中有一张表格如下:

UserCode|RecordID|OriginatingBranch|OriginatingAccount|HomingBranch|HomingAccount|Amount|ActionDate|SeqNo|Onus|Homedback

最后两列是布尔值,它们包含Y或N.实际上,Onus列只包含Y.我需要在每个页面末尾有一个小计,显示有多少Onus交易及其价值,以及Onus交易的相同。

我尝试了几件事情,包括here所描述的所有事情,但当我尝试时,我的报告中留下了一个不起眼的#Error。我没有错误或日志或任何内容,只有#Error我应该有一个号码。

现在我正在尝试here的答案,其中说:

  
      
  1. 添加其他列并输入以下表达式:= Runningvalue(Fields!YourValue.Value,Sum,“yourtable1”),并将其hidden属性设置为true。

  2.   
  3. 在页眉或页脚中,使用表达式:= Last(ReportItems!textbox12.Value)来获取所有先前页面的小计。(假设上面列的详细信息行是textbox12)

  4.   

我把它放在我的桌子上,这是我的表达:

=RunningValue(IIF(Fields!HomedBack.Value="Y", Fields!Amount2.Value, 0),Sum,"Items")
//my tablix is called "Items" and my "Amount" field is a formatted string, 
//the actual value is kept in "Amount2"

瞧,我再次得到了着名的#Error。我的第一行包含0,之后的每一行都包含#Error

我应该注意到,我没有在浏览器中查看报告,也没有以交互方式或类似的方式查看报告,我正在使用我公司的旧报告库,这个报告很糟糕,需要重写(我希望),而且几乎就是这样获取数据集和RDLC并将其吐出为PDF。

我的表情有什么明显的错误吗?我对RDLC很新,所以我觉得我错过了一些愚蠢的东西。还有什么方法可以准确显示这些#Error实际上意味着什么或对应什么?

另外一点,我在VS2013中设计了我的RDLC,如果这有任何区别的话。

1 个答案:

答案 0 :(得分:1)

由于数据类型不匹配,SSRS可以提供​​#Error。它可能正在将Amount2评估为字符串字段而不是数字。要避免此类情况,请执行显式转换

试试这个:

=RunningValue(IIF(Fields!HomedBack.Value="Y", Fields!Amount2.Value*1.0, 0.0),Sum,"Items")

OR

=RunningValue(IIF(Fields!HomedBack.Value="Y", CDBL(Fields!Amount2.Value), 0.0),Sum,"Items")

OR

=RunningValue(IIF(Fields!HomedBack.Value="Y", CDEC(Fields!Amount2.Value), 0),Sum,"Items")