我做了一个Reporting Service报表,其中有一列是根据一些条件来判断是否应该显示,
这是我用的表达式:
=IIF(Parameters!ProjectParentID.Value=1,False,True)
Or
IIF(
Left(
First(Fields!Account_Number.Value, "DataSet_MonthlyInvoice"),3
)="ABB",False,True)
这个语句完全没有问题,在另一个报表中运行很正常,可是一到了这个报表就不正常了。
找了老半天,终于发现,原来我的这个报表中第一行的Account_Number是空值,把这个语句换成这样:
=IIF(Parameters!ProjectParentID.Value=1,False,True)去掉后面就没事了。
让我想不大明白的是,或语句因该市先计算第一个表达式是否为真,如果第一个为真,那么第二个表达式应该忽略掉。可是这里第一个表达式为真的时候,第二个表达式还会影响结果呢?
这是我用的表达式:
=IIF(Parameters!ProjectParentID.Value=1,False,True)
Or
IIF(
Left(
First(Fields!Account_Number.Value, "DataSet_MonthlyInvoice"),3
)="ABB",False,True)
这个语句完全没有问题,在另一个报表中运行很正常,可是一到了这个报表就不正常了。
找了老半天,终于发现,原来我的这个报表中第一行的Account_Number是空值,把这个语句换成这样:
=IIF(Parameters!ProjectParentID.Value=1,False,True)去掉后面就没事了。
让我想不大明白的是,或语句因该市先计算第一个表达式是否为真,如果第一个为真,那么第二个表达式应该忽略掉。可是这里第一个表达式为真的时候,第二个表达式还会影响结果呢?