這些變數可以幫助您自行設定報告。 您必須先定義這些變數,才能使用它們。
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
負責控制與報告處理變數 NLIST 和 VLIST 同用的前後空格。
效能要訣:僅在需要 Net.Data 決定表格中所有直欄的最大直欄長度, 來計算填補需求時,才使用 ALIGN。這個處理會影響執行效能。
當它被設定為 YES 時, ALIGN 會提供填補,對齊表格處理變數,以便顯示。如果要將查詢結果內含在 HTML 鏈結或套表動作中, 可使用預設值 NO,以防止 Net.Data 在報告變數前後加上空白。
使用 DEFINE 陳述式或 以 @DTW_ASSIGN() 函數來設定這個變數值。
值
ALIGN="YES"|"NO"
| 值 | 說明 |
|---|---|
| YES | Net.Data 會新增前端及尾端的空格 來對齊含有空格的報告變數,以利顯示。 |
| NO | Net.Data 不會新增前端或尾端的空格。 NO 是預設值。 |
範例
範例 1:使用 ALIGN 變數用空格來分隔每一個直欄
%DEFINE ALIGN="YES" <P>您的查詢在這些直欄上:$(NLIST)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
決定 Net.Data 是否為不具 REPORT 區塊的函數產生預設報告。此變數設定為 YES,Net.Data 會產生預設報告;設定為 NO,Net.Data 則抑制預設報告的產生。 抑制不產生預設的報告是有用的,例如,如果您在表格變數中收到函數呼叫的結果, 而希望將這些結果傳給另一個函數加以處理時,即可捨棄預設的報告。
使用 DEFINE 陳述式或 以 @DTW_ASSIGN() 函數來設定這個變數值。
值
DTW_DEFAULT_REPORT="YES"|"NO"
| 值 | 說明 |
|---|---|
| YES | Net.Data 會替不具 REPORT 區塊的函數產生預設報告, 並將結果顯示在瀏覽器上。 YES 是預設值。 |
| NO | Net.Data 會捨棄替不具 REPORT 區塊的函數所預設的報告。 |
範例
範例 1:置換 Net.Data 所產生的預設報告
%DEFINE DTW_DEFAULT_REPORT="NO"
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
將結果顯示在 HTML 表格中,而非將表格以文字類型格式顯示(也就是, 使用 TABLE 標籤,而非 PRE 標籤)。
所產生的 TABLE 標籤中,包括邊框和資料格填補規格:
<TABLE BORDER CELLPADDING=2>
使用 DEFINE 陳述式或 以 @DTW_ASSIGN() 函數來設定這個變數值。
值
DTW_HTML_TABLE="YES"|"NO"
| 值 | 說明 |
|---|---|
| YES | 使用 HTML 表格標籤顯示表格資料。 |
| NO | 使用 PRE 標籤,顯示文字格式的表格資料。 NO 是預設值。 |
範例
範例 1:用 HTML 標籤顯示 SQL 函數的結果
%DEFINE DTW_HTML_TABLE="YES"
%FUNCTION(DTW_SQL){
SELECT NAME, ADDRESS FROM $(qTable)
%}
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
指定顯示在由函數 REPORT 區塊產生的表格中的列數
使用 DEFINE 陳述式或 @DTW_ASSIGN() 函數,指定這個變數的值。
OS/400, Windows NT, OS/2 與 UNIX 的效能要訣: 將 RPT_MAX_ROWS 傳遞到資料庫語言環境將協助您限制從語言環境傳回的列數,因而可改善執行效能。 若要將 RPT_MAX_ROWS 傳遞到語言環境 (例如,DTW_SQL), 請在您使用的資料庫語言環境的 ENVIRONMENT 陳述式中,併入此變數作為該陳述式的 IN 變數。請參閱 Net.Data 管理及程式設計手冊中的架構章節, 以取得關於資料庫語言環境陳述式的詳細資料。
值
RPT_MAX_ROWS="ALL"|"0"|"number"
| 值 | 說明 |
|---|---|
| ALL | 顯示在沒有限制由函數呼叫所產生的表格中的列數。所有列數都會顯示。 |
| 0 | 指定表格中所有的列數都會被顯示。 這個值同於指定 ALL。 |
| 號碼 | 一個正整數,用於顯示在由函數 call 區塊產生的表格中的列數。
如果 FUNCTION 區塊包含 REPORT 及 ROW 區塊, 則這個數字所指定的是執行 ROW 的次數。 |
範例
範例 1:在 DEFINE 陳述式中定義 RPT_MAX_ROWS
%DEFINE RPT_MAX_ROWS="20"
以上的方法可將任何函數所傳回的列數限制為 20。
範例 2:使用 HTML 輸入,以針對 HTML 套表定義變數
要傳回的列數上限 (0 表示沒有限制): <INPUT TYPE="text" NAME="RPT_MAX_ROWS" SIZE=3>
以上幾行可以置於 FORM 標籤中, 讓應用程式使用者設定他們希望讓查詢所傳回的列數。
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X |
| X | X | X | X |
目的
指定一個開始顯示 Net.Data 表格結果的列號。 將這個變數與 RPT_MAX_ROWS 一起使用, 可以將具有大型結果表格的查詢分成幾個小組, 並使用「下一步」按鈕,來導覽結果表格。
OS/400, OS/2, Windows NT 與 UNIX 的效能要訣: 確定 START_ROW_NUM 指定為資料庫 LE 的 ENVIRONMENT 陳述式上的 IN 變數。 不然,資料庫 LE 會傳回開始於第一列的結果設定。如果未在 ENVIRONMENT 陳述式上指定, Net.Data 須捨棄直到指定列的所有列,如此 LE 才不會傳回第一位置中的橫列。
使用 DEFINE 陳述式或 以 @DTW_ASSIGN() 函數來設定這個變數值。
值
START_ROW_NUM="number"
| 值 | 說明 |
|---|---|
| 號碼 | 一個正整數,代表開始顯示報告的列號。
如果 START_ROW_NUM 在起始設定檔案中的資料庫語言環境之 ENVIRONMENT 陳述式中被指定, 則這個號碼所代表的是資料庫語言環境已經處理的結果組之列號。
如果 START_ROW_NUM 沒有被傳送到語言環境, 則這個號碼所指定的是 Net.Data 表格的列號,用於顯示報告。 |
範例 1: 使用 HTML 套表的“下一步”及“前一步”按鈕捲動
%define {
DTW_HTML_TABLE = "YES"
START_ROW_NUM = "1"
RPT_MAX_ROWS = "10"
totalSize = ""
includeNext = "YES"
includePrev = "YES"
includeLast = "YES"
includeFirst = "YES"
%}
%function(DTW_SQL) myQuery(){
select * from NETDATADEV.CUSTOMER
%}
%function(DTW_SQL) count(OUT size){
select count(*) from NETDATADEV.CUSTOMER
%report{
%row{
@DTW_ASSIGN(size,V1)
%}
%}
%}
%html(report) {
%{ 如果尚未完成,先取得記錄總數 %}
%if (totalSize == "")
@count(totalSize)
%endif
%{ 根據使用者按下的按鈕設定 START_ROW_NUM %}
%if (totalSize <= RPT_MAX_ROWS)
%{ 只有一頁的資料 %}
@DTW_ASSIGN(START_ROW_NUM, "1")
@DTW_ASSIGN(includeFirst, "NO")
@DTW_ASSIGN(includeLast, "NO")
@DTW_ASSIGN(includeNext, "NO")
@DTW_ASSIGN(includePrev, "NO")
%elif (submit == "First Page" || submit == "")
%{ 首次使用的,或由使用者選取的“首頁”按鈕 %}
@DTW_ASSIGN(START_ROW_NUM, "1")
@DTW_ASSIGN(includePrev, "NO")
@DTW_ASSIGN(includeFirst, "NO")
%elif (submit == "Last Page")
%{ 使用者選取的“末頁”按鈕 %}
@DTW_SUBTRACT(totalSize, RPT_MAX_ROWS, START_ROW_NUM)
@DTW_ADD(START_ROW_NUM, "1", START_ROW_NUM)
@DTW_ASSIGN(includeLast, "NO")
@DTW_ASSIGN(includeNext, "NO")
%elif (submit == "Next")
%{ 使用者選取的“下一步”按鈕 %}
@DTW_ADD(START_ROW_NUM, RPT_MAX_ROWS, START_ROW_NUM)
%if (@DTW_rADD(START_ROW_NUM, RPT_MAX_ROWS) > totalSize)
@DTW_ASSIGN(includeNext,"NO")
@DTW_ASSIGN(includeLast, "NO")
%endif
%elif (submit == "Previous")
%{ 使用者選取的“前一步”按鈕 %}
@DTW_SUBTRACT(START_ROW_NUM, RPT_MAX_ROWS, START_ROW_NUM)
%if (START_ROW_NUM <= "1" )
@DTW_ASSIGN(START_ROW_NUM,"1")
@DTW_ASSIGN(includePrev,"NO")
@DTW_ASSIGN(includeFirst,"NO")
%endif
%endif
%{ 執行查詢以取得資料 %}
@myQuery()
%{ 在報告底端輸出正確的按鈕 %}
<center>
<form method="POST" action="report">
<input name="START_ROW_NUM" type="hidden" value="$(START_ROW_NUM)">
<input name="totalSize" type="hidden" value="$(totalSize)">
%if (includeFirst == "YES" )
<input name="submit" type="submit" value="First Page">
%endif
%if (includePrev == "YES" )
<input name="submit" type="submit" value="Previous">
%endif
%if (includeNext == "YES" )
<input name="submit" type="submit" value="Next">
%endif
%if (includeLast == "YES" )
<input name="submit" type="submit" value="Last Page">
%endif
</form>
</center>
%}