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