IBM 書籍

參考手冊


Net.Data 表格處理程序變數

除非另有附註,否則 Net.Data 定義這些變數乃是用於 REPORT 及 ROW 區塊。 請使用這些變數參照您的查詢所傳回的值。

Nn


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

含有對直欄 n 的函數呼叫或查詢所傳回的直欄名稱。

您可參照在 REPORT 及 ROW 區塊中的 Nn

範例

範例 1:直欄名稱的變數參照

直欄 2 的名稱是 $(N2)。

範例 2: 使用 DTW_ASSIGN 儲存直欄名稱的值, 用於 REPORT 區塊之外

%define col1=""
...
%function (DTW_SQL) myfunc() {
  select * from atable
%report {
     @dtw_assign(col1, N1)
     %row{ %}
  %}
%}
 
%html(report) {
@myfunc()
第一直欄的名稱是 $(col1)
%}

下面範例示範如何藉由 DTW_ASSIGN 將 這個變數使用於 REPORT 區塊之外。 有關詳細資訊,請參閱DTW_ASSIGN

範例 3:在 HTML 表格內用來定義直欄名稱的 Nn

%REPORT{
<H2>產品目錄</H2>
<TABLE BORDER=1 CELLPADDING=3>
<TR><TD>$(N1)</TD><TD>$(N2)</TD><TD>$(N3)</TD>
%ROW{
<TR><TD>$(V1)</TD><TD>$(V2)</TD><TD>$(V3)</TD>
%}
     </TABLE>
 
%}

NLIST


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

包含所有來自函數呼叫或查詢結果的直欄名稱。其預設的區隔符號是一個空格。

您可參照在 REPORT 及 ROW 區塊中的 NLIST。

範例

範例 1:有 ALIGN 的一串直欄名稱

%DEFINE ALIGN="YES"
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
  %report{
您的查詢是在這些直欄上:$(NLIST)。
%row {
...
%}
%}
%}

在直欄名稱的列示中, 直欄名稱之間是以空格加以分隔 (將 ALIGN 設為 YES)。

範例 2:使用 %LIST 變數將區隔符號改為 " | "

%DEFINE %LIST " | " NLIST
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
  %report{
您的查詢是在這些直欄上:$(NLIST)。
%row {
...
%}
%}
%} 

NUM_COLUMNS


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

Net.Data 在報告區塊中處理的表格直欄數目; 這些直欄數是由函數呼叫或查詢傳回。

您可參照在 REPORT 及 ROW 區塊中的的 NUM_COLUMNS。

範例

範例 1: 將 NUM_COLUMNS 作為有 NLIST 的變數參照使用

%REPORT{
您的查詢結果有 $(NUM_COLUMNS) 個直欄:$(NLIST)。
...
%}

NUM_ROWS


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

Net.Data 在 REPORT 區塊中處理的表格列數。 列數會受 upper limit 參數的值影響,該值是定義來供保留資料的 Net.Data 表格使用。 例如,如果上限設定為 30,但是 SELECT 陳述式傳回 1000 列, 則 NUM_ROWS 的值為 30。此外,如果上限設定為 30,而 SELECT 陳述式傳回 20 列,則 NUM_ROWS 等於 20。有關 TABLE 陳述式及上限參數的詳細資訊, 請參閱TABLE 陳述式

只要 START_ROW_NUM 不被傳到語言環境,NUM_ROWS 就不受 START_ROW_NUM 值的影響。 例如,如果 START_ROW_NUM 設定為 5 (設定顯示在 Web 首頁上的表格應由第 5 列開始移項), 而 SELECT 陳述式傳回 25 列,則 NUM_ROWS 將被設成 25, 而非 21。前四列將從表格中被捨棄,但仍內含於 NUM_ROWS 的值中。然而, 如果 START_ROW_NUM 被傳到語言環境,則 NUM_ROWS 只會包含由 START_ROW_NUM 指定開始的列數。 在以上範例中,NUM_ROWS 會被設定為 21。

您可參照在 REPORT 及 ROW 區塊中的 NUM_ROWS。

範例

範例 1: 顯示在 REPORT 區塊被處理的名稱數目。

%DEFINE DTW_SET_TOTAL_ROWS="YES"
 
%REPORT{
<H2>電子郵件目錄</H2>
<UL>
%ROW{
<LI>名稱: <a href="將電子郵件傳到:$(V1)">$(V2)</a><BR>
位置:$(V3)
%}
</UL>
所顯示的名稱:$(NUM_ROWS)<BR>
所找到的名稱:$(TOTAL_ROWS)
%}

ROW_NUM


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

一個表格變數,每當在 Net.Data 表格中的一列處理完後,Net.Data 會增加它的值。 這個變數有如一個計數器,它的值就是目前正被處理的列數。

RPT_MAX_ROWS 會影響 ROW_NUM 的值。例如,如果表格中有 100 列, 而您已設定 RPT_MAX_ROWS 為20, 則 ROW_NUM 最後的值為20,因為最後被處理是第 20 列。

您只能參照 ROW 區塊中的 ROW_NUM。

範例

範例 1:在 HTML 輸出中移入一個直欄, 並用 ROW_NUM 替表格中的每一個橫列製作標籤

%REPORT{
<TABLE BORDER=1>
<TR><TD> 列號 </TD> <TD> 客戶 </TD>
%ROW{
<TR><TD> $(ROW_NUM) </TD> <TD> $(V_custname) </TD>
%}
     </TABLE>
%}

REPORT 區塊產生的表格如下所示:


列號 客戶
1 Jane Smith
2 Jon Chiu
3 Frank Nguyen
4 Mary Nichols

TOTAL_ROWS


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

查詢所傳回的總列數,無論 TABLE 語言結構 upper_limit 的值為何。 比方說,如果 RPT_MAX_ROWS 被設定的最大值為 20 列, 但是查詢卻傳回 100 列,則在 ROW 處理之後,此變數將設為 100。

作業系統的差異性:

語言環境限制:此變數僅用於下列資料庫語言環境:

必要條件: 您必需將 DTW_SET_TOTAL_ROWS 設定為 YES, 才能使用這個變數。有關詳細資訊,請參閱DTW_SET_TOTAL_ROWS

範例

範例 1: 顯示已尋找到的名稱號碼

%DEFINE DTW_SET_TOTAL_ROWS="YES"
 
%REPORT{
<H2>電子郵件目錄</H2>
<UL>
%ROW{
<LI>名稱: <a href="將電子郵件傳到:$(V1)">$(V2)</a><BR>
位置:$(V3)
%}
</UL>
所找到的名稱:$(TOTAL_ROWS)
%}

V_columnName


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

現行列之指定欄名的值。未定義的欄名不會有變數存在。 含有兩個同名直欄的查詢,會產生不可預期的結果。請考慮在您的 SQL 中使用一個 AS 子句, 將重複的欄名加以更改。

您可參照只在 ROW 區塊中的 V_columnName

V_columnName

表 1. V_columnName 值

說明
columnName 資料庫表格現行列的直欄名稱。

範例

範例 1: 使用 V_columnName 作為變數參照

%FUNCTION(DTW_SQL) myQuery() {
 SELECT NAME, ADDRESS from $(qtable)
%REPORT{
 
%ROW{
 
 在列 $(ROW_NUM) 中之「名稱」直欄的值是$(V_NAME)。<BR>
 %}
 %}
 %}

VLIST


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

一列目前在 ROW 區塊中所處理的現行列之所有欄位值。

您可參照只在 ROW 區塊中的 VLIST。其預設的區隔符號是一個空格。

範例

範例 1:使用列示標籤來顯示查詢結果

%DEFINE ALIGN="YES"
 
%REPORT{
下面是您的查詢結果:
<OL>
%ROW{
<LI>$(VLIST)
%}
</OL>
%}
 

範例 2:使用列示變數將區隔符號變更為<P>

%DEFINE %LIST "<P>" VLIST
 
%REPORT{
下面是您的查詢結果:
%ROW{
<HR>$(VLIST)
%}
%}

Vn


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X X

目的

現行橫列之指定直欄號碼 n 的值。

您可參照只在 ROW 區塊中的 Vn

Net.Data 為表格的每一個欄位指定變數;在變數參照中使用此變數, 指定您要參考的欄位號碼。 若要使用這個變數在區塊之外, 可指定 Vn 的值給一個先前已定義的廣域變數或一個 OUT 或 INOUT 函數參數變數。

範例

範例 1:顯示 HTML 表格的報告

%REPORT{
<H2>電子郵件目錄</H2>
<TABLE BORDER=1 CELLPADDING=3>
<TR><TD>名稱</TD><TD>電子郵件位址</TD><TD>位置</TD>
%ROW{
<TR><TD>$(V1)</TD>
<TD><a href="mailto:$(V2)">$(V2)</a></TD>
<TD>$(V3)</TD>
%}
     </TABLE>
%}

第二欄則顯示電子郵件位址。 您可以按一下該鏈結,傳送一則訊息給某人。


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