Net.Data 巨集檔包含 HTML 區塊及 HTML 區塊中的結構, 這些結構可建立 Web 瀏覽器的文字呈現陳述式,如 HTML。在巨集檔案中, 您必須至少設定一個 HTML 區塊,但若您想要的話,可以設定多個。 每一個 HTML 區塊會在瀏覽器中建立單一網頁。每一次呼叫 Net.Data 時,它僅會處理一個 HTML 區塊, 且 HTML 區塊的內容會控制 Net.Data 其餘的呼叫部份。 若要建立一個由多個網頁組成的應用程式,您可以呼叫 Net.Data 多次, 使用標準的 HTML 導引技術 (如鏈結與套表) 來處理 HTML 區塊。
任何有效的文字呈現陳述式 (如 HTML 或 JavaScript) 可以出現在 HTML 區塊中。 另外,您可在 HTML 區塊中使用 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> 監視器
<dd><input type="radio" name="hdware" value="PNT">指標裝置
<dd><input type="radio" name="hdware" value="PRT">印表機
<dd><input type="radio" name="hdware" value="SCN">掃描器
</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 巨集語言結構的任何事物都會被假設成 HTML 陳述式並傳送至瀏覽器來顯示。
當使用者做好選擇並按「提出」按鈕後,Net.Data 即開始執行 HTML FORM 元素的 ACTION 部份, 它指定呼叫 Net.Data 巨集的 HTML(REPORT) 區塊。 之後, Net.Data 會以 HTML(INPUT) 區塊的方式來處理 HTML(REPORT) 區塊。
然後,Net.Data 會處理 myQuery() 函數呼叫,該呼叫接著再呼叫 SQL FUNCTION 區塊。 當 SQL 陳述式中的 $(hdware) 變數參照,被換成輸入格式中傳回的值後, Net.Data 即開始查詢。 此時,Net.Data 會再度將 HTML 報表傳給瀏覽器, 並根據 REPORT 區塊中設定的呈現文字陳述式來顯示查詢結果。
在 Net.Data 完成 REPORT 區塊處理程序之後,即會傳回 HTML(REPORT) 區塊,並完成處理程序。