參考手冊

START_ROW_NUM


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"

表 6. START_ROW_NUM 值
說明
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>
  %}


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]