AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
指定表格中的起始列號,此列將於函數 REPORT 區塊內或產生預設報告時 (若未指定 REPORT 區塊) 進行處理。
資料庫語言環境使用此變數,決定結果組內要開始處理的起始列。 為了顯著改善大型結果組的執行效能, 請使用此變數與 RPT_MAX_ROWS,將大型結果組分割成較小的表格。
OS/400、Windows NT、OS/2 及 UNIX 使用者: 若要將此變數傳遞至語言環境,請在 Net.Data 起始設定檔的資料庫語言環境 ENVIRONMENT 陳述式中, 將此變數設定為 IN 參數。 關於資料庫語言環境陳述式的詳細資訊, 請參閱您作業系統的 Net.Data 管理及程式設計指南中架構這一章。
OS/390 使用者: 定義於巨集中的 START_ROW_NUM, 會暗中傳遞至資料庫語言環境
使用 DEFINE 陳述式或 以 @DTW_ASSIGN() 函數來設定這個變數值。
值
START_ROW_NUM="number"
值 | 說明 |
---|---|
number | 一個正整數,代表開始顯示報告的列號。 預設值是 1。
如果 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> %}