管理及程式設計指南

HTML 和 XML 區塊

從屬站應用程式指定巨集名稱和巨集的進入點名稱來呼叫 Net.Data。 巨集的進入點可以是 HTML 或 XML 區塊。這些區塊包含大部份文件標記而且是呼叫函數的地方。 它們是巨集的主程式區塊。

因為進入點區塊驅動巨集的執行,所以在巨集中必須至少有一個進入點區塊。 可以有多個 HTML 或 XML 區塊,但每一個從屬站要求只執行一個區塊。 而且就每一個要求而言,會有一個文件傳回從屬站。 若要建立一個由許多從屬站文件組成的應用程式, 您可使用標準導引技術 (例如鏈結和套表) 呼叫 Net.Data 數次以處理不同 HTML 或 XML 區塊。

任何文字呈現陳述式都可出現在 HTML 或 XML 區塊 (只要對於從屬站來說是有效區塊的話)。 例如,HTML 區塊可包含 HTML 或 JavaScript。 Net.Data 沒有執行 JavaScript,但是它與其餘的 HTML 區塊輸出一起傳給從屬站以執行和顯示它們。 在 HTML 或 XML 區塊,您也可包括函數呼叫、變數參照和 INCLUDE 陳述式。 下例顯示在 Net.Data 巨集中 HTML 區塊的一般用法:

%DEFINE DATABASE="MNS96"
 
%HTML(INPUT) {
<h1>硬體查詢表格</h1>
<hr>
<form method="post" action="/cgi-bin/db2www/equiplst.d2w/report">
<dl>
<dt>您要列出什麼硬體?
<dd><input type="radio" name="hdware" value="MON" checked />Monitors
<dd><input type="radio" name="hdware" value="PNT" />Pointing devices
<dd><input type="radio" name="hdware" value="PRT" />Printers
<dd><input type="radio" name="hdware" value="SCN" />Scanners
</dl>
<hr />
<input type="submit" value="Submit" />
</form>
%}
 
%FUNCTION(DTW_SQL) myQuery() {
SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE=$(hdware)
%REPORT{
<b>這裡是您所要求的列示︰</b><br />
%ROW{
<hr>
$(N1): $(V1)    $(N2): $(V2)
<p>
$(V3)
%}
%}
%}
 
%HTML(report){
@myQuery()
%}

您可從 HTML 鏈結呼叫 Net.Data 巨集。

<a href="http://www.ibm.com/cgi-bin/db2www/equiplst.d2w/input">List of hardware</a>

當應用程式使用者按一下此鏈結時,Web 瀏覽器會呼叫 Net.Data,且 Net.Data 會解析巨集。 Net.Data 開始處理在呼叫時指定的 HTML 區塊(就此案例而言是 HTML(input)),會開始處理區塊內的文字。若有任何事物無法被 Net.Data 辨識為 Net.Data 巨集語言結構, 它將傳送至瀏覽器來顯示。

使用者做了選擇並按「提出」按鈕之後,Net.Data 會執行 HTML FORM 元素的 ACTION 部份, 它指定呼叫 Net.Data 巨集的 HTML(output) 區塊。 然後 Net.Data 採取處理 HTML(input) 區塊的方式來處理 HTML(output) 區塊。

然後,Net.Data 會處理 myQuery() 函數呼叫,該呼叫接著再呼叫 SQL FUNCTION 區塊。 當 SQL 陳述式中的 $(hdware) 變數參照,被換成從輸入格式中傳回的值後, Net.Data 即開始查詢。此時,Net.Data 會再度處理報表, 並根據 REPORT 區塊中設定的呈現文字陳述式來顯示查詢結果。

在 Net.Data 完成 REPORT 區塊處理程序之後,即會傳回 HTML(OUTPUT) 區塊,並完成處理程序。


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