オプション1:ENABLED
itemプロパティを使用します。
ENABLED
残念ながら、Oracle Formsでは、アイテムのプロパティをアイテムインスタンスレベルで変更することはできません。
ただし、ユーザーがレコードを入力するときにアイテム全体を有効または無効にすることができます-WHEN-NEW-RECORD-INSTANCE
トリガーを使用します-リストアイテムの現在のレコードの値の値に応じて、トリガーはENABLED
プロパティをPROPERTY_TRUE
またはに設定しますPROPERTY_FALSE
。
もちろん、リストアイテムのWHEN-LIST-CHANGED
トリガーにも同じコードが含まれます。
このアプローチの欠点は、列全体がユーザーには無効になっているように見え、それらの無効なアイテムを使用して別のレコードを選択できないことです。
オプション2:INSERT_ALLOWED
andUPDATE_ALLOWED
プロパティを使用します。
これらのプロパティは、を使用してアイテムインスタンスレベルで設定できますSET_ITEM_INSTANCE_PROPERTY
。それらをブロックのPOST-QUERY
トリガーとリストアイテムのWHEN-LIST-CHANGED
トリガーに設定します。
ただし、これによってアイテムが画面上でどのように表示されるかは変わりません。これを解決するために、アイテムインスタンスレベルで視覚的な属性を設定することもできます(たとえば、濃い灰色の背景などを使用するようにアイテムを変更します)。
その他のコメント。