您可以在表示式標籤本身內嵌現行及前一個欄位值標籤。欄位值切勿包含單引號或雙引號。如果欄位值包含奇數個單引號或雙引號,該值可能導致表示式錯誤; 將無法正確驗證 EmailPlusTemplate 範本。這是 EmailPlus 套件的一項已知限制。
較好的方式是使用 EmailPlus 函數來評估欄位值。如果您要比較欄位值,請使用 quotemeta() Perl 函數來跳出任何非英數字元,以確保表示式能夠獲得正確評估。例如,若欄位值不包含單引號或雙引號,則可正確評估下列表示式:
#@expression::if (#?Description?# ne #%Description%#) { "Description field has changed\n" .#%Description%#; }@#
#@expression::if (quotemeta(Gfv("Description")) ne quotemeta(Gfov("Description"))) { "Description field has changed\n" .Gfov("Description"); }@#
再舉另一個範例,假設您想要顯示問題報告記錄中的提交日期,但不想要使用預設日期格式。您想要改以不同的格式顯示日期。這裡是使用 meta 標籤的一個簡易範例表示式:
#@expression::use Date::Format;use Date::Parse; ctime( str2time( #?SubmitDate?# ));@#
這展開為下列範例。它在語法上是有效的表示式。並會傳回日期物件。
#@expression::use Date::Format;use Date::Parse; ctime( str2time( "2010-07-12 10:45:18" ));@#
評估此表示式時,它會傳回下列資訊,此資訊會替代成輸出訊息:
Mon Jul 12 10:45:18 2010
下表列出在 meta 標籤內展開舊欄位或現行欄位值時所傳回的各種資料類型。
欄位類型 | 傳回的表示式 |
---|---|
INT | 整數,例如 54 |
DATE_TIME | "YYYY-MM-DD hh:mm:ss" 格式 的 24 小時日期字串,例如 "2012-10-20 15:23:04" |
SHORT_STRING、MULTILINE_STRING、ID、STATE、RECORDTYPE、DBID、REFERENCE 及任何其他未指定的類型 | 雙引號內的字串值,例如:"some text"。在內嵌於原始欄位值之雙引號內的字串會正確處理,以產生語法正確的字串值。 |
REFERENCE_LIST | 雙引號內之含括值陣列的參照,例如 ["value 1", "value 2" ] |