IBM Books

OS/400 版的 Net.Data 管理與程式設計手冊

FUNCTION 區塊

FUNCTION 區塊含有 HTML 區塊所呼叫的函數的宣告。函數是由語言環境來處理,可執行程式、SQL 查詢或儲存程序。

下列範例顯示兩個 FUNCTION 區塊,它們會定義一個對外部 REXX 程式的函數呼叫, 以及一個對巨集檔內所含函數的函數呼叫。

%{ ********************** FUNCTION 區塊 **********************************%}
%FUNCTION(DTW_REXX) rexx1 (IN input) returns(result) { <-- 此函數接受
                                                       一個參數,並傳回一個
                                                       替代了相關函數的
                                                       呼叫                                                       
     %EXEC{ompsamp.mbr %}  <-- 函數會執行一個名為
                               "ompsamp.mbr" 的外部 REXX 程式
%}
 
%FUNCTION(DTW_REXX) today () RETURNS(result) {
      result = date()  <-- 此函數的單一來源陳述式
                           是包含於列入程式中。
%}

第一個函數區塊 (rexx1) 為一個 REXX 函數宣告,它會執行名為 ompsamp.mbr 的外部 REXX 程式。 一個輸入變數 input 是由此函數來接受,且自動地傳送至外部 REXX 命令。 REXX 命令也會傳回一個稱為 result 的變數。 REXX 命令中 result 變數的內容, 會置換 Output 區塊中呼叫的 @rexx1() 函數呼叫。 變數 inputresult 可由 REXX 程式直接存取, 請參閱 ompsamp.mbr 的原始程式:

/* REXX */
result = 'REXX 程式從巨集中收到 "'input'"。'

此函數中的程式碼會對傳給它的資料做出回應。 您可以使用一般的 mark-up 樣式標籤 (例如 <b> 或 <em>), 括住要求的 @rexx1() 函數呼叫,來按照自己的意思製作結果本文的格式。 不使用 result 變數,而是使用 REXX SAY 陳述式, REXX 程式即可將寫好的 HTML 陳述式以標準格式輸出。

第二個函數區塊,也參照 REXX 程式 today。不過,本例中的整個 REXX 程式 (一整行) 都包含在其本身的函數宣告中。 不需要一個外部程式。 REXX 和 Perl 函數都可接受列入 (inline) 程式, 這是因為它們皆為解譯過的語言,可動態解析及執行之。 列入程式不需用到另一個程式檔來管理,因此具有簡便上的好處。 第一個 REXX 函數也已用列入方式處理。


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