7.21.1 DEF_HEADのパラメータ

LANSA

7.21.1 DEF_HEADのパラメータ


ACROSS_SEP

DESIGN

DOWN_SEP

FIELDS

FOR_REPORT

IDENTIFY

NAME

TEXT

TRIGGER_BY

NAME

このコマンドで定義するレポート印刷行のグループに付ける名前を指定します。指定する名前は、ファンクション内で固有でなければなりません。

FIELDS

レポートに印刷するフィールドを指定します。このパラメータでは、拡張可能なグループ式を使用できます。

RDMLフィールドのみサポートします。

TRIGGER_BY

このコマンドで定義する見出し行の印刷を「トリガー」するための条件を指定します。

デフォルト値*OVERFLOWを指定した場合、見出し行は、前のレポート・ページがいっぱいになった(すなわち、オーバーフローした)時点で印刷されます。

*OVERFLOWを指定しない場合は、見出し行の印刷をトリガーするために使用するフィールド名のリスト(または拡張可能なグループ式)を指定してください。いずれかのレポート行が印刷されるたびに、LANSAは、このリストで指定されたフィールドとその直前の値を比較します。リストに指定されたいずれかのフィールドの値が変化している場合、見出し行が生成されます。

TRIGGER_BYパラメータの使用方法を理解するために、以下の例について考えます。

DEF_HEAD  NAME(#HEADING) FIELDS(#COMPANY) TRIGGER_BY(#COMPANY)
DEF_LINE  NAME(#DETAIL)  FIELDS(#REGION #PRODUCT #VALUE)
 

新しいページが、#COMPANYの変化によってトリガーされるため、レポートは以下のようになります。

           会社名:ACME                  1ページ

      地域  製品         値          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

 

      会社名:ALLIED                     2ページ

      地域  製品         値          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

 

会社名の変化によって2ページ目が「トリガー」され、1ページ目がいっぱいになっていない時点で2ページ目が開始されていることに注意してください。

会社ACMEについての情報が1ページに収まらない場合は、生成されるレポートは以下のようになります。

      会社名:ACME                  1ページ

      地域  製品         値          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

 

      地域  製品         値       2ページ

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

 

      会社名:ALLIED                     3ページ

      地域  製品         値          

       XXXXX  XXXXXXXXXXXXX  999.99          

       XXXXX  XXXXXXXXXXXXX  999.99          

 

会社名が2ページ目に印刷されないことに注意してください。これは、DEF_HEADコマンドで、#COMPANYが変化した場合のみ見出しを生成するよう指定されており、1ページ目から2ページ目へのオーバーフローではこの値が変化していないためです。

この機能により、「特別な」見出し行や「ブレーク」見出し行の指定が可能になります。ただし、この例を含む多くの場合、以下のようにDEF_HEADコマンドを指定するのが適切でしょう。

DEF_HEAD  NAME(#HEADING) FIELDS(#COMPANY) 
          TRIGGER_BY(#COMPANY *OVERFLOW)
 

このコマンドでは、ページ見出しの詳細は、#COMPANYの変化またはページのオーバーフローによって「トリガー」され、前ページがオーバーフローした場合でも、すべてのページに会社名が印刷されるよう指定しています。

TEXT

画面パネルまたはレポート上に出力する最大50個の「テキスト文字列」を指定できます。指定する各テキスト文字列は、最大20文字に制限されます。

テキスト文字列を指定する際は、テキスト文字列の後に、そのテキスト文字列を画面パネルまたはレポートに出力する行番号と列/位置番号を指定します。

例:

TEXT(('ACME' 6 2)('ENGINEERING' 7 2))
 

この場合、2つのテキスト文字列は、それぞれ6行目の2番目の位置と7行目の2番目の位置に出力されます。

移植性に関する考慮事項

Visual LANSAでこのパラメータを編集するときは、必ず、テキストをテキスト・マップで置き換える画面またはレポート・ペインターを使用してください。コマンド・プロンプトや自由形式のエディターでテキストを入力しないでください。LANSA/ADにチェックインしたときに、全構文検査に失敗します。

すべてのプラットフォーム

テキスト・マップは、画面パネルまたはレポート行に関連付けられたすべてのテキスト文字列の詳細を保管するために、画面またはレポート設計機能で使用されます。

画面またはレポートのレイアウトを「構成」して保管すると、レイアウトに含まれるすべてのテキストの詳細が「テキスト・マップ」に保管されます。このテキスト・マップは、再度「ペインター」を使用することで変更できます。

テキスト・マップの存在は、以下の例のようなTEXTパラメータで示されます。

TEXT((*TMAPnnn 1 1))
 

ここで、"nnn"は、保管されているテキスト・マップを識別する(このファンクション内で)固有の番号です。

以下の「テキスト・マップ」および*TMAPnnn識別子に関する非常に重要な事柄について理解しておく必要があります

·         独自の*TMAPnnn識別子を指定したり、*TMAPnnn識別子の値を変更したりしないでください。*TMAPnnn識別子の割り当てと管理は、画面およびレポートの設計機能に任せておいてください。

·         *TMAPnnn識別子を含むコマンドをコピーするときは、コピーしたコマンドから*TMAPnnn参照(すなわち、TEXTパラメータ全体)を削除してください。これを行わないと、全構文検査で*TMAPnnn識別子の重複使用が検出され、データ損失前に致命的エラー・メッセージが発行されます。

·         コマンドから*TMAPnnn識別子を削除しないでください。削除すると、全構文検査またはコンパイル中に、関連付けられたテキスト・マップが削除されるか、別のコマンドで再利用される可能性があります。また、結果的にテキストの詳細が失われる可能性があります。

·         有効な*TMAPnnn識別子を含むコマンドを「コメント」にしないでください。上記の警告と同様に、テキストが失われたり再利用されたりする恐れがあります。

·         アプリケーション・テンプレート内で*TMAPnnn値を指定しないでください。テンプレート内では、*TMAPnnn値を指定しても意味がありません。アプリケーション・テンプレートによって生成され、そのアプリケーション・テンプレート内で使用されているコマンドでは、「テキスト文字列」形式を使用してください。

FOR_REPORT

このコマンドを関連付けるレポートを指定します。1つのファンクションで一度に生成できるレポートは最大8個です。各レポートは1〜8の番号で識別されます。このレポートのデフォルト値はレポート番号1です。

DESIGN

特定の位置決め属性を持たないフィールドに対して使用する設計/位置決め方法を指定します。

DEF_HEADコマンドのデフォルト値*ACROSSを指定した場合、フィールドは、レポート行「全体」に(すなわち、左から右へ)配置されます。

*DOWNを指定した場合、フィールドは、レポート・ページの「下方向」へ(すなわち、上から下へ)配置されます。

IDENTIFY

特定の識別属性を持たないフィールドに対して使用するデフォルトの識別方法を指定します。

DEF_HEADコマンドのデフォルト値*LABELを指定した場合、フィールドは、それに関連付けられたラベルで識別されます。

*COLHDGを指定した場合、フィールドは、それに関連付けられた欄見出しで識別されます。

*NOIDを指定した場合、フィールドの識別が要求されず、単にフィールド自体がレポート行に挿入されます。

DOWN_SEP

レポートの自動設計時に使用するレポートの行間隔を指定します。指定する値は、1〜10の数値でなければなりません。DEF_HEADコマンドのデフォルト値は1です。

ACROSS_SEP

レポートの自動設計時に使用するレポートの列間隔を指定します。指定する値は、0〜10の数値でなければなりません。DEF_HEADコマンドのデフォルト値は5です。