2017-08-07 55 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")) 

用途:

​​