PDM_MACRO によるマクロ ファイルからのテキストの挿入

<PDM_MACRO> タグは、マクロ ファイルをHTMPLファイルに挿入する場合に使用します。 これはPDM_INCLUDEと同様に機能しますが、以下の2点が大きく異なります。
casm173
<PDM_MACRO> タグは、マクロ ファイルをHTMPLファイルに挿入する場合に使用します。 これはPDM_INCLUDEと同様に機能しますが、以下の2点が大きく異なります。
  • PDM_MACROによって挿入されるファイルには、必須の引数と、デフォルト値を持つ引数が含まれる、正規の引数リストがあります。
  • PDM_MACROによって挿入されるファイルは、現在のユーザのアクセス ポイントとは関係なく、常に環境設定プロパティMacroPathで指定されたディレクトリから挿入さます。
  • NAME=
    macroname
    (必須)挿入するマクロを指定します。 Webエンジンはサフィックス「.mac」を追加し、環境設定ファイルのプロパティMacroPathで指定されたパスでファイルを検索します。
挿入されるマクロに応じて、他のプロパティが必須になることもあります。 マクロ ファイルの一般的なレイアウトを以下に示します。
comments #args name1 [= value1] name2 [= value2] ... #data data to insert
以下に、ファイルのレイアウトを各行について説明します。
  • comments
    - マクロ内で #args ステートメントの前に置かれる有効なステートメントはコメントのみです。 コメントであることは、先頭に#記号または//を付けて示します。
  • #args
    - 上記のとおりにコーディングする必要があります。つまり、列 1 に # 記号を指定し、その行にはほかの情報を記述しません。 このステートメントにより、引数の定義やコメントを指定するargsセクションが開始されます。
  • name [= value]
    - マクロの引数を定義します。 マクロで有効なのは、argsセクションで明示的に指定された引数のみです。 argsセクションで引数に指定される値は、その引数のデフォルト値です。 デフォルト値を持たない引数は必須であり、<PDM_MACRO> ステートメント自体のコール元で指定する必要があります。
  • #data
    - 上記のとおりにコーディングする必要があります。つまり、列 1 に # 記号を指定し、その行にはほかの情報を記述しません。 このステートメントにより、データ セクション(PDM_MACROを使用してファイルに挿入されるマクロの一部となるもの)が開始されます。 データ セクションの内容は、データ セクションの先頭部分のコメント行も含めて、コール元ファイルにすべて挿入されます。
  • data to insert
    - コール元ファイルに挿入するデータです。 以下の形式で、引数への参照をこのデータに含めることができます。
  • &{arg_name}
    - これらの参照は、コール元が指定した引数の値に置き換わります。コール元で値が指定されていない場合は、デフォルト値に置き換わります。
一般に、Webエンジンは、初めて使用するときに一度だけマクロ ファイルを読み取り、解析したマクロをWebエンジン自体のメモリに保存します。 これによりパフォーマンスが向上しますが、マクロを開発するユーザにとっては不便です。 その場合は、環境設定ファイルのプロパティSuppressMacroCacheを使用すると、Webエンジンのこの動作が抑制され、新しいフォームの処理を開始するたびにメモリ内のすべてのマクロが破棄されるようになります。
PDM_MACROタグのコメント アウト
<PDM_MACRO> タグをコメント アウトするには、P の前に感嘆符を入力し、<!PDM_MACRO> のように記述します。 フォームのコメント アウトした部分がブラウザで処理されないようにするには、<!PDM_MACRO> タグの前に <PDM_IF 0> を、コメント アウトした行の後に </PDM_IF> を記述します。たとえば、次のように記述します。
<PDM_IF 0> <!PDM_MACRO NAME=dtlDropdown hdr="Status" attr=status lookup=no evt="onBlur=\\\"detailSyncEditForms(this)\\\""> <!PDM_MACRO NAME=dtlDropdown hdr="Priority" attr=priority lookup=no evt="onBlur=\\\"detailSyncEditForms(this)\\\""> </PDM_IF>