這個範例巨集應用程式顯示員工姓名的列示, 而應用程式使用者只要從列示中選取員工的姓名, 就可取得個別員工的其它資訊。巨集會使用 SQL 語言環境來查詢 EMPLOYEE 表格, 以取得員工姓名及特定員工的相關資訊。
巨集會使用一個併入檔,此檔案含有巨集的 DEFINE 區塊。
%{************************ 範例巨集 ***************************** * 檔名 = sqlsamp1.d2w * * 說明: * * 這個 Net.Data 巨集查詢... * * - 員工表格,以建立要在瀏覽器上 * * 顯示的員工選項列示 * * - 員工表格以取得各別員工的 * * 其它資訊 * * * ********************************************************************%} %{*************************************************************************** * 廣域 DEFINE 的併入檔 - * ****************************************************************************%} %INCLUDE "sqlsamp1.hti" %{**************************************************************************** * 函數: queryDB 語言環境: SQL * * 說明: 查詢 myTable 變數所表示的表格,及 * * 從結果建立選項列示。myTable 變數的值是 * * 指定於併入檔 sqlsamp1.hti 中。 * ****************************************************************************%} %FUNCTION(DTW_SQL) queryDB() { SELECT FIRSTNME FROM $(myTable) %MESSAGE { -204: {<p><b>錯誤 -204:找不到表格 $(myTable)。</b> <p>請確定所用的併入檔無誤。</b> %} : exit +default: "警告 $(RETURN_CODE)" : continue -default: "意外的錯誤 $(RETURN_CODE)" : exit %} %REPORT { <select name=emp_name> %ROW{ <option>$(V1) %} </select> %} %} %{**************************************************************************** * 函數: fname 語言環境: SQL * * 說明: 查詢 myTable 變數所表示的表格, * * 以取得 emp_name 變數所識別出的員工 * * 之其它資料。 * ******************************************************************************%} %FUNCTION(DTW_SQL) fname(){ SELECT FIRSTNME, PHONENO, JOB FROM $(myTable) WHERE FIRSTNME='$(emp_name)' %MESSAGE { -204: "錯誤 -204: 找不到表格 " -104: "錯誤 -104: 語法錯誤" 100: "警告 100: 無記錄" : continue +default: "警告 $(RETURN_CODE)" : continue -default: "意外的 SQL 錯誤" : exit %} %} %{********************************************************************* * HTML 區塊: INPUT 標題: 動態查詢選項 * * * * 說明︰ 查詢員工表格,以建立要在瀏覽器上 * * 顯示的員工選項列示 * **********************************************************************%} %HTML(INPUT) { <html> <head> <title>建立員工選取列示</title> </head> <body> <h3>$(exampleTitle)</h3> <p>此範例會查詢表格,並使用結果來建立使用 <em>%REPORT</em> 區塊的選項列示。 <hr> <form method="post" action="report"> @queryDB()<input type="submit" value="Select Employee" /> </form> <hr /> </body> </html> %} %{*************************************************************************** * HTML 區塊: REPORT * * 說明: 查詢員工表格,以取得各別員工的 * * 其它資訊 * ****************************************************************************%} %HTML(REPORT){ <html> <head> <title>取得員工資訊</title> </head> <body> <h3>您所選的員工名稱 = $(emp_name)</h3> <p>以下為該員工的相關資訊: <pre> @fname() </pre> <hr><a href="input">回到上一頁</a> </body> </html> %} %{ Net.Data 巨集 1 結束 %} |
=========================================================================== %{**************************** 併入檔 ********************************* * 檔名 = sqlsamp1.hti * * 說明: * * 此併入檔提供給 Net.Data 巨集 sqlsamp1.d2w * * 巨集 DEFINE。 * ****************************************************************************%} %define { emp_name ="" reposition = sign exampleTitle = "範例巨集" myTable = "員工" DATABASE = "範例" %} %{ 併入檔結束 %} |