Net.Data は、特に記述されていない限り、 これらの変数を REPORT および ROW ブロックで使用するために定義します。 これらの変数を使って、照会が戻した値を参照します。
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> %}
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 { ... %} %} %}
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). ... %}
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) %}
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 |
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) %}
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
値 | 説明 |
---|---|
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> %} %} %}
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) %} %}
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 アドレスを示します。 リンクをクリックすることによって、その人にメッセージを送ることができます。