IBM Books

解説書


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 の照会によって戻される列名。

Nn は REPORT および ROW ブロックで参照することができます。

例 1: 列名のための変数参照

The name of column 2 is $(N2).

例 2: DTW_ASSIGN を使って REPORT ブロックの外で使用するために列名の値を保管する

%define col1=""
...
%function (DTW_SQL) myfunc() {
  select * from atable
%report {
     @dtw_assign(col1, N1)
     %row{ %}
  %}
%}
 
%html(report) {
@myfunc()
The column name for the first column is $(col1)
%}

この例は、 DTW_ASSIGN を使って REPORT ブロックの外でこの変数を使用する方法を示しています。 詳細については、DTW_ASSIGN を参照してください。

例 3: 列名を定義するための HTML 表の中の Nn

 %REPORT{
<H2>Product directory</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

目的

関数呼び出しまたは照会の結果の、すべての列名のリストを含みます。 デフォルトの区切り記号はスペースです。

NLIST は REPORT および ROW ブロックで参照することができます。

例 1: ALIGN を指定した列名のリスト

%DEFINE ALIGN="YES"
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
  %report{
Your query was on these columns: $(NLIST).
%row {
...
%}
%}
%}

列名のリストでは、ALIGN が YES に設定され、列名と列名の間にスペースが使用されます。

例 2: 区切り記号を " | " に変更する %LIST 変数

%DEFINE %LIST " | " NLIST
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
  %report{
Your query was on these columns: $(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 ブロックで処理する表の列の数。 列は、関数呼び出しまたは照会によって戻されます。

NUM_COLUMNS は REPORT および ROW ブロックで参照することができます。

例 1: NLIST を指定した変数参照として使用される NUM_COLUMNS

 %REPORT{
Your query result has $(NUM_COLUMNS) columns: $(NLIST).
...
%}

NUM_ROWS


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





X


目的

Net.Data が REPORT ブロックで処理する表の行数。 表の行数は、 データを保持している Net.Data 表に対して定義された upper limit パラメーターの値の影響を受けます。 たとえば、upper limit が 30 に設定されていると、 SELECT ステートメントが 1000 行を戻しても NUM_ROWS の値は 30 です。 さらに、upper limit が 30 に設定されていると、 SELECT ステートメントが 20 行を戻しても NUM_ROWS は 20 です。 TABLE ステートメントおよび upper limit パラメーターについての詳細は、 TABLE ステートメント を参照してください。

NUM_ROWS は、START_ROW_NUM が言語環境に渡されない限り、 START_ROW_NUM の値の影響を受けません。 たとえば、START_ROW_NUM が 5 に設定されていて (Web ページに表示される表は 5 行目から移植される)、 SELECT ステートメントが 25 行を戻した場合、NUM_ROWS は 21 ではなく 25 に設定されます。 最初の 4 行は表から廃棄されますが、NUM_ROWS の値には含まれます。 しかし、START_ROW_NUM が言語環境に渡された場合は、 NUM_ROWS には、START_ROW_NUM で指定された行で始まる行数のみが含まれます。 上記の例では、NUM_ROWS は 21 に設定されます。

NUM_ROWS は、REPORT および ROW ブロックで参照することができます。

例 1: REPORT ブロックで処理される名前の数を表示する

%DEFINE DTW_SET_TOTAL_ROWS="YES"
 
 %REPORT{
<H2>E-mail directory</H2>
<UL>
%ROW{
<LI>Name: <a href="mailto:$(V1)">$(V2)</a><BR>
Location: $(V3)
%}
</UL>
Names displayed: $(NUM_ROWS)<BR>
Names found: $(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 表の中で行が 1 行処理されるたびに Net.Data が値を増やす表変数。 この変数はカウンターとして使用でき、その値は処理されている現在行の番号です。

RPT_MAX_ROWS は ROW_NUM の値に影響を与える場合があります。たとえば、表に 100 行含まれていて RPT_MAX_ROWS を 20 に設定している場合、 最後に処理された行は 20 行目なので、最終的な ROW_NUM の値は 20 になります。

ROW_NUM は、ROW ブロック内だけで参照することができます。

例 1: 表の中の各行にラベルを付けるために、 ROW_NUM を使って HTML 出力の中に列を移植する

%REPORT{
<TABLE BORDER=1>
<TR><TD> Row Number </TD> <TD> Customer </TD>
%ROW{
<TR><TD> $(ROW_NUM) </TD> <TD> $(V_custname) </TD>
%}
</TABLE>
%}

REPORT ブロックは、下記に示すものと同じような表を作成します。


Row Number Customer
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>E-mail directory</H2>
<UL>
%ROW{
<LI>Name: <a href="mailto:$(V1)">$(V2)</a><BR>
Location: $(V3)
%}
</UL>
Names found: $(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

目的

現在行の、指定された列名の値。 この変数は、定義されていない列名に対しては設定されません。 同じ名前を持つ 2 つの列名を含む照会では、結果は予期できません。 重複した列の名前を変更するために、SQL で AS 文節を使用することを検討してください。

V_columnName は、ROW ブロック内だけで参照することができます。

V_columnName

表 1. V_columnName の値
説明
columnName データベース表の現在行の中の列名。

例 1: V_columnName を変数参照として使用する

%FUNCTION(DTW_SQL) myQuery() {
 SELECT NAME, ADDRESS from $(qtable)
 %REPORT{
 
%ROW{
 
 Value of NAME column in row $(ROW_NUM) is $(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 ブロックで処理されている現在行のすべてのフィールド値のリスト。

VLIST は、ROW ブロック内だけで参照することができます。 デフォルトの区切り記号はスペースです。

例 1: 照会の結果を表示するためにリスト・タグを使用する

%DEFINE ALIGN="YES"
 
%REPORT{
Here are the results of your query:
<OL>
%ROW{
<LI>$(VLIST)
%}
</OL>
%}
 

例 2: 区切り記号を <P> に変更するためにリスト変数を使用する

%DEFINE %LIST "<P>" VLIST
 
%REPORT{
Here are the results of your query:
%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 の値。

Vn は、ROW ブロック内だけで参照することができます。

Net.Data は、表の中の各フィールドに対して変数を割り当てます。 参照したいフィールドの番号を指定して、変数参照の中で変数を使用します。 ブロックの外でこの変数を使用するためには、前もって定義したグローバル変数、 または OUT あるいは INOUT 関数のパラメーター変数に、Vn の値を割り当てます。

例 1: HTML 表を表示するレポート

%REPORT{
<H2>E-mail directory</H2>
<TABLE BORDER=1 CELLPADDING=3>
<TR><TD>Name</TD><TD>E-mail address</TD><TD>Location</TD>
%ROW{
<TR><TD>$(V1)</TD>
<TD><a href="mailto:$(V2)">$(V2)</a></TD>
<TD>$(V3)</TD>
%}
     </TABLE>
%}

2 番目の列は e-mail アドレスを示します。 リンクをクリックすることによって、その人にメッセージを送ることができます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]