为什么我的IF语句会返回错误?

时间:2015-11-03 07:18:10

标签: asp.net vb.net reporting-services report rdlc

我正在使用此表达式在RDLC列中生成“是”或“否”,基于其他列,但它会出错。为什么?

=IIF(Fields!ApprovalsDraftsmanApproval.Value= 0 
or Fields!ApprovalsInspectorApproval.Value= 0 
or Fields!ApprovalsPatwariApproval.Value=0, "No", "False")

更新:

LOGIC:请参阅我在RDLC报告中有10列,有3个BIT类型列,现在我拿最后一列来判断3个BIT列中的任何一个是否有FALSE值然后选择是,否则每行都没有

2 个答案:

答案 0 :(得分:3)

IIF是一个VB特定语句,它不存在于C#中。而是使用"?" tenary运营商。见下文:

var result = Fields!ApprovalsDraftsmanApproval.Value == 0 ||
Fields!ApprovalsInspectorApproval.Value == 0 ||
Fields!ApprovalsPatwariApproval.Value == 0 ? "No" : "False";

修改

你还需要知道 - 在C#中," ="之间存在差异。和" =="。 " ="用于分配值,而" =="用于比较值。因此,您无法使用" ="来比较C#中的值。操作

答案 1 :(得分:0)

我很多次面对这个问题......我的解决方案是崩溃

if then
else
end if

或者我用Val()

玩了一招
=IIF(val(Fields!ApprovalsDraftsmanApproval.Value)= 0 
or val(Fields!ApprovalsInspectorApproval.Value)= 0 
or val(Fields!ApprovalsPatwariApproval.Value)=0, "No", "False")

它一直对我有所帮助