在 RDLC 报告的 IIF 条件中,else 块始终执行并引发异常

In RDLC report's IIF condition's else block always executed and throwing the exception

提问人:Abdul Salam 提问时间:11/1/2023 更新时间:11/2/2023 访问量:22

问:

我正在尝试在RDLC报告中针对MyColumn列执行以下表达式,


=IIF(IsNothing(Fields!Incident_Custom_Column_152.Value)=True,
    "Nothing",
    Fields!Incident_Custom_Column_152.value.IndexOf("/")
)

当 Incident_Custom_Column_152.value 为 null 时,我得到了 #Error。请让我们知道为什么还要评估区块?

C# RDLC SSRS-2008-R2

评论

0赞 jdweng 11/1/2023
查看 sqlservercentral.com/articles/...
0赞 Abdul Salam 11/2/2023
该示例仅适用于值,如果我们有任何字符串操作,例如 Fields,它将抛出异常!Incident_Custom_Column_152.IndexOf,字段!Incident_Custom_Column_152.斯普利特等据我所知,这两个表达式都是首先执行的,请让我们知道如何解决这个问题。

答:

0赞 Abdul Salam 11/2/2023 #1

我通过添加自定义函数,然后从列表达式调用自定义函数解决了这个问题,

功能

公共函数 TestFucntion(ByVal rca as String) as String 将结果调暗为字符串 如果 IsNothing(rca) 那么 结果=RCA 还 如果(rca.IndexOf(“/”) = -1) 然后 结果=RCA。子字符串(0, Len(rca) - rca.索引 (“/”) - 1 ) 还 结果=RCA 如果结束 如果结束 返回结果 结束功能

在列表达式中按如下方式调用

=Code.TestFucntion(字段!Incident_Custom_Column_153.价值)

评论

0赞 jdweng 11/2/2023
所有代码所做的就是在测试它是否为“Nothing”之前将 rca 转换为字符串。