我有一个RDLC报告,其中显示了有关金融交易的基本信息,并且在该报告中,我有一个子报告来显示这些交易的详细信息。
我在使参数在主报表和子报表之间传递时遇到一些麻烦。子报表接受一个参数:TransactionID
。当我将主报告设置为为每行发送TransactionID
的实际值时,SubreportProcessing
事件处理函数将永远不会触发,并且当我尝试扩展子报告时,将出现有关空引用异常的消息调试输出,但我无法捕获此异常以确切地找出什么为空。除了空引用异常外,子报表还显示:
错误:无法显示子报表
作为测试,我尝试对0
的值TransactionID
进行硬编码,然后为每一行触发SubreportProcessing
事件,但结果显然不正确。这使我怀疑主报表行中的TransactionID
值在尝试使用它作为参数时以某种方式出现null
,但我不知道该怎么回事,或解决方法。
编辑:
由于文字值0
有效,因此我尝试从实际报告(TransactionID
)中尝试2652791667
值之一,并发现在这些情况下它也失败了。注意到给定的值超出了Int32
的范围,我尝试了一个较小的数字,它起作用了。
答案 0 :(得分:0)
Int32
问题就是答案。我尝试将子报表的TransactionID
参数更改为Text,但显然无法自动将TransactionID
的数值从主报表数据转换为字符串。
最后,我在数据集中添加了一个名为TransactionIDStr
的字段,并用TransactionID.ToString()
填充了该字段,现在它可以正常运行了。