2017-08-07 60 views
0

我正在尝试编写一个表达式来执行以下操作: 如果此字段等于此文本,并且创建日期与到达日期之间的天差异小于90天,然后使它红色,否则白 OR 如果该字段等于本文以及创建和到达日期不到60天的日差,然后使它红色,否则白SSRS:如何使用OR结合AND表达式

这里是表达我迄今为止。

=iif((Fields!Type.Value="Discovery Email Sent") 
    and (datediff("d",Fields!CreatedDate.Value,Fields!ArrivalDate.Value)<90),"red","white") 
or (iif((Fields!Type.Value="Menu Proposal Sent") and 
(datediff("d",Fields!CreatedBy.Value,Fields!ArrivalDate.Value)<60),"red","white")) 

他们都自己工作,但是当我用“或”把他们放在一起时,即使条件得到满足,也没有东西变红。

有什么想法?谢谢!!

回答

0

尝试:

=iif 
(((Fields!Type.Value="Discovery Email Sent") and (datediff("d",Fields!CreatedDate.Value,Fields!ArrivalDate.Value)<90)) 
or 
((Fields!Type.Value="Menu Proposal Sent") and (datediff("d",Fields!CreatedBy.Value,Fields!ArrivalDate.Value)<60)), 
"red","white") 

的间距只是为了澄清。如果符合您指定的这两个条件中的任何一个(它们本身由两个条件组成),那么我将这些条件组合成一个语句。

0

使这两个块分开。 相反的:

if((Fields!Type.Value="Discovery Email Sent") and (datediff("d",Fields!CreatedDate.Value,Fields!ArrivalDate.Value)<90),"red","white") or (iif((Fields!Type.Value="Menu Proposal Sent") and (datediff("d",Fields!CreatedBy.Value,Fields!ArrivalDate.Value)<60),"red","white")) 

用途:

​​