目的
定義一個可以從 Net.Data 巨集呼叫的次常式。 在 MACRO_FUNCTION 區塊中的可執行的陳述式必須是 Net.Data 巨集語言來源陳述式。
語法
>>-%MACRO_FUNCTION--函數名稱--| 參數傳送規格 |------------------> >-----| 傳回規格 |--{--| 函數本體 |----%}-----------------------> .-----------------. V | >--------+-----------+--+--%}---------------------------------->< '-報表區塊--' 參數傳送規格 |---(--+-----------------------------+---)----------------------| | .-,---------------------. | | | (1) | | | V .-IN-------. | | '----+----------+---名稱---+--' +-OUT------+ '-INOUT----' 傳回規格 |---+----------------------+------------------------------------| '-RETURNS--(--名稱--)--' 函數本體 .----------------------. V | |------+----------------+--+------------------------------------| +-變數參照-------+ +-if 區塊--------+ +-函數呼叫-------+ +-HTML 陳述式----+ +-include 陳述式-+ '-while 區塊-----'
註:
值
上下文
在這些上下文中可找到 MACRO_FUNCTION 區塊:
限制
MACRO_FUNCTION 區塊可以包含這些元素:
範例
範例 1: 指定訊息處理的巨集函數
%MACRO_FUNCTION setMessage(IN rc, OUT message) { %IF (rc == "0") @dtw_assign(message, "函數呼叫順利完成。") %ELIF (rc == "-1") @dtw_assign(message, "函數失敗,記憶體不足。") %ELIF (rc == "-2") @dtw_assign(message, "函數失敗,參數無效。") %ENDIF %}
範例 2: 指定表頭資訊的巨集函數
%MACRO_FUNCTION setup(IN browserType) { %{ 在巨集中每一個 HTML 區塊頂端呼叫這個函數 %} %INCLUDE "header_info.html" @dtw_rdate() %IF (browserType == "IBM") @setupIBM() %ELIF (browserType == "MS") @setupMS() %ELIF (browserType == "NS") @setupNS() %ELSE @setupDefault() %ENDIF %}
範例 3︰ 包含 REPORT 區塊的巨集函數
%MACRO_FUNCTION myfunc (INOUT table) { %REPORT { <table> %ROW { <tr><td>$(V1)</td><td>$(V2)</td></tr> %} </table> %} %}
範例 4︰ 使用 RETURNS 關鍵字的巨集函數
%MACRO_FUNCTION myfunc () RETURNS(VALUE) { @DTW_ASSIGN(VALUE, "Success...") %}