12.4.2 フィールド条件付け属性

LANSA

12.4.2 フィールド条件付け属性


属性

説明

*axxxxxxxx

*axxxxxxxxには、DEF_CONDコマンドによってあらかじめ定義されている条件の名前が入ります。名前*axxxxxxxxは、条件定義に適用される命名規則に従う必要があります。*UL、*INなど、別のタイプの属性名と重複する条件名は使用しないでください。

*axxxxxxxx属性だけを使用すると、条件が真のとき、関連するフィールドが画面パネルまたはレポートに表示されるだけです。

*INOUTCOND *IOCOND

この2つの属性は、同義です。

この属性を*axxxxxxxx属性と共に使用すると、画面パネルにフィールドが存在するかどうかを条件付けるのではなく、フィールドがユーザーによって入力可能または変更可能かどうかを条件付けることができます。

関連する条件が真の場合、フィールドは、(現在の画面モードに関係なく)入力可能になります。同様に、関連する条件が偽の場合、フィールドは、(現在の画面モードに関係なく)入力不可になります。

複数の*IOCOND(または*INOUTCOND)をフィールド属性として使用した場合、最後の1つだけが、フィールドを入力可能にするかどうかを制御するために使用されます。それ以外は無視されます。

重要:

この属性は、レポート・レイアウトでは有効ではありません。また、この属性は、一部のユーザーが体験する特別な状況に対応するために実装されています。さまざまなパネル上の複数のフィールドでこの属性を継続して使用している場合、ユーザーのアプリケーション・アーキテクチャを簡略化し、この属性の使用回数を減らすことを十分に検討してください。

例:

このコマンドによって、表示パネルが作成され、課番号が462(経理課)である場合、またはアプリケーション・グループがHOFF(本社)の場合、フィールド#SALARYが画面パネルに表示されます。

DEF_COND NAME(*AUTSAL) COND('(#DEPT = 462) *OR (#GROUP = HOFF)')

DISPLAY  FIELDS(#A #B (#SALARY *AUTSAL) #C #D #E #F)

次のコマンドでは、表示パネルが作成され、課番号が462(経理課)である場合、またはアプリケーション・グループがHOFF(本社)の場合、フィールド#SALARYは入力可能になります。上記以外の場合、フィールドSALARYは表示されますが、ユーザーによってそのフィールドを入力(つまり、変更)することはできません。

DEF_COND NAME(*CHGSAL) COND('(#DEPT = 462) *OR (#GROUP = HOFF)')

DISPLAY  FIELDS(#A #B (#SALARY *CHGSAL *IOCOND) #C #D #E #F)