マクロからの他のマクロの呼出し
マクロから他のマクロを呼び出すには、次のようなマクロ定義を作成します。この例では、#make_date
マクロが#assign_date
マクロ内にネストされ、#assign_date
の実行時に呼び出されます。
ネストされたマクロは、ベース・マクロに定義された同じパラメータの全部またはサブセットを定義している必要があります。つまり、ベース・マクロの呼出し時の入力値が両方のマクロのパラメータに解決される必要があります。
次では、#assign_date
を定義しています。
MACRO #assign_date PARAMS (#target_col, #year, #month, #day) BEGIN #target_col = #make_date (#year, #month, #day) END;
次では、#make_date
を定義しています。このマクロでは、2桁の入力日付の前に世紀値(19または20)を付ける必要があるかどうかを最初に判別した後、4桁の年を含む日付書式を作成します。#make_date
のPARAMS
文には、#assign_date
マクロ内のパラメータのサブセットが含まれています。
MACRO #make_date PARAMS (#year, #month, #day) BEGIN @DATE ('YYYY-MM-DD', 'CC', @IF (#year < 50, 20, 19), 'YY', #year, 'MM', #month, 'DD', #day) END;
次の構文は#assign_date
を呼び出します。
#assign_date (COL1, YEAR, MONTH, DAY)
前の入力値および埋込み#make_date
マクロを想定すると、マクロは次のように展開されます。
COL1 = @DATE ('YYYY-MM-DD', 'CC', @IF (YEAR < 50, 20, 19),'YY', YEAR, 'MM', MONTH, 'DD', DAY)