2014-07-18 21 views
1

我有if語句一個小問題陳述,因爲它填充只持續ELSEIFIF在AMPScript

%%[IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN 
     SET @WhichNom1 = "1" 
     SET @WhichNom2 = "2" 

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN 
     SET @WhichNom1 = "1" 
     SET @WhichNom2 = "3" 

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN 
     SET @WhichNom1 = "1" 
     SET @WhichNom2 = "3" 
]%% 
@WhichNom1 
@WhichNom2 
%%[ENDIF]%% 

上面的代碼會顯示兩個變量當最後ELSEIF是TRUE。我需要做什麼來檢查3條語句並顯示每個場景的WhichNom1和WhichNom2?

感謝 丹

回答

2

我設法得到它排序中使用兩個略微不同的方式IF語句

%%[IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN 
SET @WhichNom1 = "1" 
SET @WhichNom2 = "2" 
SET @Status = "T" 

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN 
SET @WhichNom1 = "1" 
SET @WhichNom2 = "3" 
SET @Status = "T" 

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN 
SET @WhichNom1 = "2" 
SET @WhichNom2 = "3" 
SET @Status = "T" 

ELSE 

SET @Status = "F" 

ENDIF]%% 

%%[IF @Status == "T" THEN]%% 
@WhichNom1 
@WhichNom2 
%%[ENDIF]%% 

感謝您的幫助來搶!

3

你只是打印變量如果最後ELSEIF是真實的。

移動他們是這樣的:

...  
ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN 

     SET @WhichNom1 = "1" 
     SET @WhichNom2 = "3" 
]%% 
%%[ENDIF]%% 

@WhichNom1 
@WhichNom2 

因此,他們的IF/ELSEIF之外。這樣他們將始終打印,但變量將根據子句設置不同。

編輯:

如果你只是想,如果在語句中有一個爲真變量打印出來,那麼你將(如你所提到的)需要if語句中打印出來,或者你可以:

SET @WhichNom1 = "" 
SET @WhichNom2 = "" 

前的if語句,之後他們然後做:

IF @WhichNom1 != "" THEN @WhichNom1 
IF @WhichNom2 != "" THEN @WhichNom2 

所以你只有在他們已經被設置爲「」其他的東西打印出來。

+1

是的,我知道,但是這兩個變量只顯示如果以上的條件之一是真正。 有沒有其他的方法來做到這一點,而不是在每種情況下打印變量3次? – dan123

+1

我設法使用IF語句以稍微不同的方式對它進行排序。我會盡快發佈回覆我自己的帖子,否則我不能包含代碼 – dan123

1

Rob是正確的。此外,如果你想打印@WhichNom1@WhichNom2AMPscript塊的,你可能需要爲代碼:

%%[ 
IF @Add3 == "Y" AND @Add4 == "Y" AND @Add5 == "N" THEN 
SET @WhichNom1 = "1" 
SET @WhichNom2 = "2" 
SET @Status = "T" 

ELSEIF @Add3 == "Y" AND @Add4 == "N" AND @Add5 == "Y" THEN 
SET @WhichNom1 = "1" 
SET @WhichNom2 = "3" 
SET @Status = "T" 

ELSEIF @Add3 == "N" AND @Add4 == "Y" AND @Add5 == "Y" THEN 
SET @WhichNom1 = "2" 
SET @WhichNom2 = "3" 
SET @Status = "T" 

ELSE 

SET @Status = "F" 

ENDIF 
]%% 

%%[ IF @Status == "T" THEN ]%% 

%%= v(@WhichNom1) =%%<br /> 
%%= v(@WhichNom2) =%% 

%%[ ENDIF ]%% 
+1

請將您的問題全包。如果羅布將他的答案排除在某個位置之外,那麼這個答案就沒有什麼用處了! – Conduit