RDLC 子报表参数未按预期工作

RDLC Subreport Parameters Not Working as Expected

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

我在获取在主报表和子报表之间传递的参数时遇到了一些问题。子报表接受一个参数:TransactionID。当我将主报表设置为每行发送 TransactionID 的实际值时,SubreportProcessing 事件处理程序从不触发,并且当我尝试展开子报表时,有关空引用异常的消息出现在调试输出,但我无法捕获此异常以准确找出 what 为空。随着空引用异常,子报表显示:

Error: Subreport could not be shown

作为测试,我尝试对 TransactionID 的值 0 进行硬编码,然后为每一行触发 SubreportProcessing 事件,但结果显然不正确。这让我怀疑主报告行中的 TransactionID 值在尝试将其用作参数时以某种方式出现 null,但我不明白这是怎么发生的,或如何修复它。

编辑: 由于文字值 0 有效,我决定尝试实际报告 (2652791667) 中的 TransactionID 值之一,并发现它在这些条件下也失败了。注意到给定的值超出了 Int32 的范围,我尝试了一个较小的数字,但效果很好。

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

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