7.22.1 DEF_COND のパラメータ

NAME

COND

COLHDG

NAME

条件名を指定します。

すべての条件には名前が必要です。条件名の先頭文字は"*" (アスタリスク)、2番目の文字は英字、以降の文字はA~Zまたは0~9である必要があります。すなわち、埋め込みブランクを含む条件名を使用することはできません。

画面パネルに表示されるフィールドやレポートで使用されるフィールドに対して、*R、*P、*L、または*Cで始まり、その後に数字1、2、または3が続く条件名を使用しないでください。このような条件名を使用すると、*R12、*L123、*C01などのフィールド位置決め属性と競合します。

また、条件名として、*COLUMN、*COL、*COLHEAD、*COLHDG、*LAB、*LABEL、*NOID、*NOIDENT、*NEWPAGE、*NEWFORMAT、*DESC、*DESも使用しないでください。

さらに、名前*EQ、*NE、*LT、*LE、*GT、*GE、*AND、*OR、*LIKE、*EQU、*NEU、*LTU、*LEU、*GTU、*GEU、および*LIKEUは予約されているため、使用しないでください。

システム変数名または多言語変数名と競合する名前も避けてください。

条件名は、("*"を含め)最大10文字です。

1つのプログラム内で最大99個の条件を定義できます。すべての条件には、固有の名前が必要です。

条件は、その条件を参照する他のコマンドより前に定義してください。

DEF_CONDコマンドは「定義」を行うもので、厳密には実行することはできないため、通常は、その他すべての定義形式のコマンド(DEFINE、DEF_LIST、GROUP_BYなど)と共にプログラムの先頭に配置します。

COND

条件に「適合」しているかどうかを検査するために評価する条件を指定します。詳細については、「条件および式の指定」を参照してください。

COLHDG

この条件で制御するフィールドに関連付けられたフィールド欄見出しにも条件を適用するかどうかを指定します。

このパラメータを使用すると、印刷行内のフィールドの印刷時またはブラウズ・リスト内のフィールドの表示時に、それに関連付けられた欄見出しを印刷/表示するかどうかを制御できます。

デフォルト値*YESを指定した場合、関連付けられたすべての欄見出しが、関連付けられたフィールドと同様に、その条件によって制御されます。

*NOを指定した場合、関連付けられた欄見出しは、どの条件によっても制御されず、通常の規則に従って印刷または表示されます。

例えば、列全体を非表示にするとします。

DEF_COND NAME(*AUTSAL) COND('#GROUP = HO') COLHDG(*YES)
 
DEF_LINE NAME(#DETAIL) FIELDS(#A #B #C (#SALARY *AUTSAL))
 

この指定により、フィールド#SALARYとその欄見出しは、#GROUP = HOの場合のみレポートに印刷されます。すなわち、グループがHO以外のときは、給与列がレポートに印刷されなくなります。

ここで、フィールドを選択的に非表示にするとします。

DEF_COND NAME(*PRTAMT) COND('(#CREDLMT *EQ 0) *OR (#OVERDUE *GT 30)') COLHDG(*NO)
 
DEF_LINE NAME(#DETAIL) FIELDS(#A #B #C (#AMTDUE *PRTAMT) #D #E #F)
 

この指定により、フィールド#AMTDUEは、与信限度が0の場合か、未払い期間が30日を超えている場合のみ印刷されます。ただし、関連付けられた欄見出しは、レポートに常に印刷されます。

注1:欄見出しを制御する条件は、欄見出しの印刷または表示時に検査されます。レポートの場合は、レポート・ページの先頭行の印刷時、表示の場合は、DISPLAY、REQUEST、またはPOP_UPコマンドの実行時がこれにあたります。

注2:ブラウズ・リスト内のフィールドを制御する条件は、ブラウズ・リストの項目が追加または更新された場合のみ検査されます。

注3:タイプ*TRAILINGのDEF_BREAK (ブレークの定義)行内のフィールドに対して条件を指定しようとすると、混乱や誤解を招く可能性があります。これは、処理するデータに関して、その行がプログラムより暗黙的に「遅れて」いるためです。

注4:印刷行またはブラウズ・リストの項目にあるすべてのフィールドが表示されないよう条件付けされている場合でも、レポートまたは表示パネルには「ブランク」行が印刷/表示されます。