參考手冊

MACRO_FUNCTION 區塊

目的

定義一個可以從 Net.Data 巨集呼叫的次常式。 在 MACRO_FUNCTION 區塊中的可執行的陳述式必須是 Net.Data 巨集語言來源陳述式。

語法

>>-%MACRO_FUNCTION--函數名稱--| 參數傳送規格 |------------------>
 
>-----| 傳回規格 |--{--| 函數本體 |----%}----------------------->
 
      .-----------------.
      V                 |
>--------+-----------+--+--%}----------------------------------><
         '-報表區塊--'
 
參數傳送規格
 
|---(--+-----------------------------+---)----------------------|
       |  .-,---------------------.  |
       |  |      (1)              |  |
       |  V .-IN-------.          |  |
       '----+----------+---名稱---+--'
            +-OUT------+
            '-INOUT----'
 
傳回規格
 
|---+----------------------+------------------------------------|
    '-RETURNS--(--名稱--)--'
 
函數本體
 
    .----------------------.
    V                      |
|------+----------------+--+------------------------------------|
       +-變數參照-------+
       +-if 區塊--------+
       +-函數呼叫-------+
       +-HTML 陳述式----+
       +-include 陳述式-+
       '-while 區塊-----'
 

註:

  1. 在參數列示開頭沒有指定的參數類型時,引用預設值參數 IN 類型。 無參數類型的參數使用最新指定在參數列示 上的類型,或若無指定類型時使用 IN 類型。 例如, 在參數列示 (parm1,INOUT parm2parm3,OUT parm4parm5)中, 參數 parm1parm3parm5 沒有參數型類。 因為沒有指定最初的參數類型,所以參數 parm1 是 IN 類型。 參數 parm3 是 INOUT 類型,因為它是最新指定的參數類型。 同樣地,參數 parm5 有 OUT 的類型, 因為它是最近在參數列示中指定的參數類型。

%MACRO_FUNCTION
一種關鍵字,指定一個可以從 Net.Data 巨集呼叫的次常式。在 MACRO_FUNCTION 區塊中的可執行的陳述式必須包含 Net.Data 可以直接解譯的語言陳述式。

函數名稱
定義的函數名稱。一個以英文字母或底線開頭的英文或數字字串, 可以是英文字母、數字或底線字元的任意組合。

參數傳送規格:

IN
指定 Net.Data 傳送輸入資料給語言環境。 IN 是預設值。

OUT
指定語言環境傳回輸出資料給 Net.Data。

INOUT
指定 Net.Data 傳送輸入資料給語言環境, 及語言環境傳回輸出資料給 Net.Data。

名稱
一個以英文字母或底線開頭的英文或數字字串, 可以是英文字母、數字或底線字元的任意組合。name 可以代表 Net.Data 表格或結果設定。

傳回規格:

RETURNS
函數完成後宣告含有函數值的變數。

函數本體:

變數參照
傳回變數值,並以 $ 及 () 符號指定。例如: 如果 VAR='abc', 則 $(VAR) 傳回值 'abc'。 有關語法的詳細資訊, 請參閱變數參照

IF 區塊
此為 IF 區塊。 執行條件字串處理。 條件列示中的字串值, 如果是代表整數且前端或尾端沒有空白時,將被作為數字來比較。 它們可以有單一加號 (+) 或減號 (-) 置於前端。

函數呼叫
呼叫一或多個 FUNCTION 或 MACRO_FUNCTION 區塊, 或一個具有指定引數的 Net.Data 內建函數。 有關語法及範例,請參閱函數呼叫 (@)

HTML 陳述式
包含任何英數字元,以及從屬站瀏覽器的格式化 HTML 標籤。

include 陳述式
INCLUDE 陳述式。讀取及納入檔案到 Net.Data 巨集。 有關語法及範例,請參閱 INCLUDE 陳述式

WHILE 區塊
WHILE 區塊。以條件式字串處理程序執行迴路。 有關語法及範例,請參閱 WHILE 區塊

報表區塊
REPORT 區塊。函數呼叫的輸出的格式化指示。 您可以在報告中使用表頭及註腳資訊。 有關語法及範例,請參閱 REPORT 區塊

上下文

在這些上下文中可找到 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...")
%}


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]