IBM Books

解説書


Net.Data マクロ構文

Net.Data マクロは、以下のことを行う一連の Net.Data マクロ言語構成要素から構成されるテキスト・ファイルです。

それぞれのステートメントは、1 つまたは複数の言語構成要素で構成されます。 さらに、これらの言語構成要素は、キーワード、特殊文字、 ストリング、名前、および変数で構成されます。 以下の図は、構文的に有効な Net.Data マクロのグローバルな構造を示します。 グローバルな構造の各要素の詳しい構文については、マクロ言語構成要素 を参照してください。



   .-----------------------------.
   V                             |
>>----+-----------------------+--+-----html block--------------->
      +-comment block---------+
      +-define statement------+
      +-define block----------+
      +-function block--------+
      +-macro if block--------+
      +-macro_function block--+
      +-include statement-----+
      +-include_url statement-+
      '-message block---------'
 
      .----------------------------------------------.
      V                                              |
>--------+-----------------------+---+------------+--+---------><
         +-comment block---------+   '-html block-'
         +-define statement------+
         +-define block----------+
         +-function block--------+
         +-macro if block--------+
         +-macro_function block--+
         +-include statement-----+
         +-include_url statement-+
         '-message block---------'
 

Net.Data マクロには、宣言パーツと表示パーツという 2 つのパーツが含まれています。 これらのパーツは、任意の順序で何度でも使用することができます。

図 1 では、マクロの宣言および表示パーツを示します。

図 1. マクロの構造


Figure dtwa1107 not displayed.

宣言または表示パーツで使用する変数と関数は、 変数参照または関数呼び出しで使用する前に、 あらかじめ定義しておかなければなりません。

図 2 では、マクロのパーツを示します。 宣言パーツには、DEFINE および FUNCTION 定義ブロックが含まれています。HTML ブロックは、入出力ブロックとして機能します。

図 2. マクロ・テンプレート形式

%{ **********************       Define block        ************************%}
%DEFINE {
   page_title="Net.Data macro Template"
%}
 
%{ ********************** Function Definition block ************************%}
%FUNCTION(DTW_REXX) rexx1 (IN input) returns(result)
    { %EXEC{ompsamp.cmd %}
%}
 
%FUNCTION(DTW_REXX) today () RETURNS(result)
  {
      result = date()
%}
 
%{ **********************      HTML Block: Input    ************************%}
%HTML(INPUT){
<html>
<head>
<title>$(page_title)<title>
</head><body>
<h1>Input Form</h1>
Today is @today()
 
<FORM  METHOD="post" ACTION="output">
Type some data to pass to a REXX program:
<INPUT NAME="input_data" TYPE="text" SIZE="30">
<p>
<INPUT TYPE="submit" VALUE="Enter">
 
<hr>
<p>[<a href="/">Home page]
</body></html>
%}
 
%{ **********************    HTML Block: Output     ************************%}
%HTML (OUTPUT) {
<html>
<head>
<title>$(page_title)</title>
</head><body>
<h1>Output Page</h1>
<p>@rexx1(input_data)
<p><hr>
<p>[<a href="/">Home page</a> |
<a href="input">Previous page</a>]
</body></html>
%}
 

Net.Data マクロ言語は自由形式の言語であるため、 マクロを柔軟に作成することができます。 特に断りのない限り、余計な空白文字は無視されます。 それぞれの Net.Data マクロ言語構成要素については、 構成要素を定義するのに使用するその他のいくつかの要素と共に、 以下のセクションで説明します。 Net.Data マクロ言語は、 逆方向の互換性のために、DB2 WWW Connection 言語要素をサポートします。 これらの言語要素については 付録 B. DB2 WWW Connectionで説明していますが、Net.Data 言語構成要素を使用することをお勧めします。

例では、マクロで言語構成要素、変数、関数、 およびその他の要素を使用できる方法の一部を示します。さらに広範囲の例については、 以下の Net.Data Web ページからサンプルとデモをダウンロードすることができます。


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