IBM Books

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

在異動中設定巨集 HTML 區塊

您可以經由在呼叫 HTML 區塊的 URL 要求中使用名為異動 handle 的識別字, 定義哪些 HTML 區塊是異動的一部份。定義與使用異動 handle 有三個步驟:

  1. 在您的巨集中定義異動 handle。

  2. 呼叫 DTW_ACCEPT 內建函數,將 handle 名稱傳遞給 Net.Data 與 Web 伺服器。

  3. 在 URL 要求中設定 handle 來呼叫您的下一個 HTML 區塊。

定義異動 handle:

  1. 在 DEFINE 區段中定義異動 handle 的變數。例如:
    %DEFINE handle=""
    

  2. 您可以經由在 DEFINE 區段中設定 DTW_RTVHANDLE() 內建函數, 選擇是否要建立唯一的異動 handle。

    語法: @DTW_RTVHANDLE(handle_name)

    範例:

    @DTW_STATIC()
     
    %DEFINE handle = ""
    @DTW_RTVHANDLE(handle)
     
    

異動 handle 可以是任何有效的字串。不過, DTW_RTVHANDLE() 函數會經由建立唯一異動 handle,提供一個安全措施, 阻止其他函數呼叫將在您的異動中執行的巨集。

設定 Net.Data 的異動 handle:

以 DTW_ACCEPT() 內建函數設定 Net.Data 的異動 handle 的值。 因為這個 handle 是傳送到伺服器的 HTTP 表頭中所含資訊的一部份, 所以在巨集建立任何輸出之前,須先呼叫 DTW_ACCEPT() 函數。一般而言, 它將是您的 HTML 區塊中的第一個元素。

語法: @DTW_ACCEPT(handle_name, ["timeout"])

其中 timeout 是可選用的參數,它設定在結束異動之前, Web 伺服器應等待來自瀏覽器的回應的秒數。

您可以在 HTML 區塊內或任何 HTML 區塊內呼叫 DTW_ACCEPT()。 如果在任何 HTML 區塊外呼叫函數,異動 handle 與可選用的逾時值將適用於巨集內的所有 HTML 區塊。

範例 1:設定將在這個異動中執行的後續 URL 要求的異動 handle

@DTW_STATIC()
 
%DEFINE handle = ""
@DTW_RTVHANDLE(handle)
 
 
%HTML(Block1){
@DTW_ACCEPT(handle)
 ...
%}

重要事項:當您呼叫 DTW_ACCEPT() 作為 HTML 區塊中的第一個元素, 請確定在設定 %HTML 陳述式的那一行上沒有空格,且 DTW_ACCEPT() 會呼叫本身。 Net.Data 會將空格視為要傳送到瀏覽器的文字,並發出一個錯誤, 因為在資料傳送到瀏覽器之前,找不到 DTW_ACCEPT() 呼叫。

範例 2:設定將適用於巨集中所有 HTML 區塊的異動 handle

@DTW_STATIC()
 
%DEFINE handle = ""
@DTW_RTVHANDLE(handle)
 
@DTW_ACCEPT(handle)
 
%HTML(Block1){
 ...
%}
 
%HTML(Block2){
 ...
%}

設定當您呼叫 HTML 區塊時要在您的異動中執行的 handle:

在您建立了異動 handle 並呼叫了 DTW_ACCEPT() 函數後, 僅有具有該異動 handle 的 URL 才能在您的異動中執行。 異動 handle 須緊跟在 URL 中的 CGI 程式名稱之後。
注意事項:下列每一 URL 須設定為您的程式碼中的連續字串; 不過,為了便於閱讀,在此會將它們分開。

參數:

server
指定 Web 伺服器的名稱。若伺服器為區域伺服器, 您可以省略伺服器名稱,而使用相關的 URL。

Net.Data_invocation_path
Net.Data 可執行檔的路徑與檔名。例如,/cgi-bin/db2www/

transaction_handle
設定將為 Net.Data 巨集所起始的異動一部份的 URL。 可經由呼叫 DTW_RTVHANDLE 內建函數來取得識別字, 且須跟在 Net.Data_invocation_path 後。

filename
指定 Net.Data 的巨集檔名稱。Net.Data 會進行搜尋, 並嘗試使這個檔名符合 MACRO_PATH 起始設定路徑變數中定義的路徑陳述式。請參閱MACRO_PATH, 以取得有關的詳細資訊。

block
指定所參考之 Net.Data 巨集檔中的 HTML 區塊名稱。

method
指定與此套表搭配使用的 HTML 方法。建議使用 METHOD=POST。

?name=val&...
指定要傳送給 Net.Data 的一或多個選用性參數。

一般而言,您將提供這些 URL 的 HTML 鏈結, 或在您的巨集中的套表動作標籤上設定 URL。

範例 1:具有在同一異動中執行的其他巨集呼叫的鏈結的典型 HTML 區塊

@DTW_STATIC()
 ...
%define handle = ""
@DTW_RTVHANDLE(handle)
 
%html(report) {
@DTW_ACCEPT(handle)
 ...
<a href="/cgi-bin/db2www/$(handle)/qsys.lib/mylib.lib/
   macros.file/pcgi1.mbr/report2">continue</a><br>
<a href="/cgi-bin/db2www/$(handle)/qsys.lib/mylib.lib/
   macros.file/pcgi1.mbr/quit">quit</a><br>
%}
 

範例 2:具有另一個巨集的 FORM ACTION 鏈結的典型 HTML 區塊

@DTW_STATIC()
 ...
%define handle = ""
@DTW_RTVHANDLE(handle)
 
%html(input) {
@DTW_ACCEPT(handle)
 ...
<form method=post action="/cgi-bin/db2www/$(handle)/qsys.lib/
mylib.lib/macros.file/pcgi1.mbr/report2">
<p>您想要看到何種類型的硬體?
<menu>
<li><input type="radio" name="hdware" value="MON" checked>監視器
<li><input type="radio" name="hdware" value="PNT">指標裝置
<li><input type="radio" name="hdware" value="PRT">印表機
<li><input type="radio" name="hdware" value="SCN">掃描器
</menu>
</form>
%}
 


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