我目前有两个文本框。一种是显示名为principal的列中的第一个值。第二个文本框是显示文本,如果值等于零,则显示“主体为零”,否则显示“主体值不为零”。 X是本金额。
使用
填充第一个文本框=First(Fields!Principal.Value, "PaymentInfoDTO")
第二个文本框使用
生成#Error=Switch(First(Fields!Principal.Value, "PaymentInfoDTO") = 0, "The Principal is zero", "The Principal is not zero")
First(Fields!Principal.Value,“PaymentInfoDTO”)产生100000。
请问如何修复我的switch语句,使其停止显示#Erorr
答案 0 :(得分:3)
那里没有switch语句。鉴于表达式的结构,它最适合作为IIF()
= IIF(要评估的条件,如果为真,则结果,如果为假则结果)
=IIF(First(Fields!Principal.Value, "PaymentInfoDTO") = 0, "The Principal is zero", "The Principal is not zero")
另一方面,switch语句只返回每个条件检查的一个结果。
=开关(条件,结果如果为真,条件2,结果如果2为真)
您可以通过执行此操作重新格式化表达式以使用切换。
=Switch(First(Fields!Principal.Value, "PaymentInfoDTO") = 0, "The Principal is zero",
First(Fields!Principal.Value, "PaymentInfoDTO") <> 0, "The Principal is not zero")
当您有多个要单独评估的值时,通常最好使用切换语句。对于简单的布尔返回并不是最好的,例如检查某些东西是否等于0。
答案 1 :(得分:1)
您使用的语法对于IIF运算符是正确的。由于您只进行了一次比较,因此使用它,它应该可以工作。
编辑:在回复您的评论时,如果您希望表达式的错误部分显示实际值,您将执行以下操作:
=IIF(First(Fields!Principal.Value, "PaymentInfoDTO") = 0, "The Principal is zero", "The Principal is "+ CStr(First(Fields!Principal.Value, "PaymentInfoDTO")))
然而,您可以完全摆脱IIF语句并制作表达式:
"The Principal is "+ CStr(First(Fields!Principal.Value, "PaymentInfoDTO"))
并始终显示PaymentInfoDTO的值。