目的
DEFINE 區段在巨集中的宣告部份定義變數名稱, 可以是陳述式或是區塊。
變數定義使用雙引號 (""),可以在單一行, 或使用大括弧加上百分比符號 ({ %}),可以分成多行。 定義了變數之後,您可以在巨集的任何地方參考它。
語法
>>-%DEFINE----+----------------------------+--------------------> | (1) | '-(--+-STATIC---------+---)--' | (1) | '-TRANSIENT------' >-----+-| 定義登錄 |---------------------------+--------------->< '-{--+---------------------------+---%}--' | .---------------------. | | V | | '----+-定義登錄-------+--+--' '-include 陳述式-' 定義登錄 .----------------. V | |---+-變數名稱--=--+-"-----+----------+--+---"---+-+------------| | | +-字串-----+ | | | | +-變數參照-+ | | | | '-函數呼叫-' | | | | .----------------. | | | | V | | | | +-{-----+----------+--+---%}--+ | | | +-字串-----+ | | | | +-變數參照-+ | | | | +-函數呼叫-+ | | | | '-換行-----' | | | +-exec 陳述式-----------------+ | | +-table 陳述式----------------+ | | +-envvar 陳述式---------------+ | | +-| 條件式變數 |--------------+ | | '-| 縮寫的條件式變數 |--------' | '-列示陳述式-----------------------------------' 條件式變數 .----------------. V | |---變數名稱---?----+-"-----+----------+--+---"---+-------------> | +-字串-----+ | | +-變數參照-+ | | '-函數呼叫-' | | .----------------. | | V | | '-{-----+----------+--+---%}--' +-字串-----+ +-變數參照-+ '-函數呼叫-' .----------------. V | >-------:--+-"-----+----------+--+---"---+----------------------| | +-字串-----+ | | +-變數參照-+ | | '-函數呼叫-' | | .----------------. | | V | | '-{-----+----------+--+---%}--' +-字串-----+ +-變數參照-+ '-函數呼叫-' 縮寫的條件式變數 .----------------. V | |---?----+-"-----+----------+--+---"---+------------------------| | +-字串-----+ | | +-變數參照-+ | | '-函數呼叫-' | | .----------------. | | V | | '-{-----+----------+--+---%}--' +-字串-----+ +-變數參照-+ '-函數呼叫-'
註:
值
上下文
DEFINE 區塊或陳述式必須在巨集的 IF 區塊之內,或在 Net.Data 巨集宣告部份的其它區塊之外。
限制
%DEFINE var = "The value is $(var)."
範例
範例 1:簡式變數定義
%DEFINE var1 = "orders" %DEFINE var2 = "$(var1).html"
執行時,變數參照 $(var2) 被運算為 orders.html。
範例 2:字串內含雙引號
%DEFINE hi = "say ""hello""" %DEFINE empty = ""
顯示時,變數 hi 的值為 say "hello"。 變數 empty 包含空字串。
範例 3: 多重變數的定義
%DEFINE{ DATABASE = "testdb" home = "http://www.ibm.com/software" SHOWSQL = "YES" PI = "3.14150" %}
範例 4:變數的多行定義
%DEFINE text = {This variable definition spans two lines %}
範例 5:這個條件式變數的範例示範 如果結果值不包含任何 NULL 值時,變數 var 如何取用 引號 ("") 內的結果值。
%DEFINE var = ? "Hello! $(V)@MyFunc()" %}