RDLC子报表参数无法按预期工作

时间:2018-09-19 13:51:36

标签: c# reporting rdlc subreport

我有一个RDLC报告,其中显示了有关金融交易的基本信息,并且在该报告中,我有一个子报告来显示这些交易的详细信息。

我在使参数在主报表和子报表之间传递时遇到一些麻烦。子报表接受一个参数:TransactionID。当我将主报告设置为为每行发送TransactionID的实际值时,SubreportProcessing事件处理函数将永远不会触发,并且当我尝试扩展子报告时,将出现有关空引用异常的消息调试输出,但我无法捕获此异常以确切地找出什么为空。除了空引用异常外,子报表还显示:

  

错误:无法显示子报表

作为测试,我尝试对0的值TransactionID进行硬编码,然后为每一行触发SubreportProcessing事件,但结果显然不正确。这使我怀疑主报表行中的TransactionID值在尝试使用它作为参数时以某种方式出现null,但我不知道该怎么回事,或解决方法。

编辑: 由于文字值0有效,因此我尝试从实际报告(TransactionID)中尝试2652791667值之一,并发现在这些情况下它也失败了。注意到给定的值超出了Int32的范围,我尝试了一个较小的数字,它起作用了。

1 个答案:

答案 0 :(得分:0)

Int32问题就是答案。我尝试将子报表的TransactionID参数更改为Text,但显然无法自动将TransactionID的数值从主报表数据转换为字符串。

最后,我在数据集中添加了一个名为TransactionIDStr的字段,并用TransactionID.ToString()填充了该字段,现在它可以正常运行了。