1

これは簡単かもしれませんが、私はOracleを初めて使用します。Oracle 10gを使用しており、リンクされたテーブルの情報を表形式のレイアウトで一覧表示するフォームがあります。データの最後の列は、有効(T)と無効(F)の要素リストを持つ「リストアイテム」アイテムタイプです。

私が必要としているのは、ユーザーがこのドロップダウンを無効に変更したときに、その行だけで列全体ではなく一部の列を無効にしたいということです。

これは、フォームのロード時に、データベースのEnabledDisabled列から取得される値に応じて、データの行を無効および有効にすることも前提としています。

助けてくれてありがとう!

4

1 に答える 1

0

オプション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トリガーに設定します。

ただし、これによってアイテムが画面上でどのように表示されるかは変わりません。これを解決するために、アイテムインスタンスレベルで視覚的な属性を設定することもできます(たとえば、濃い灰色の背景などを使用するようにアイテムを変更します)。

その他のコメント。

于 2010-03-25T00:38:20.437 に答える