這個樣本巨集應用程式顯示員工姓名的列示, 而應用程式使用者只要從列示中選取員工的姓名, 就可取得個別員工的其它資訊。巨集會使用 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 = "樣本"
%}
%{ 併入檔結束 %}
|