2017-06-19 7 views
1

ステータス・カラムのデータベース表には、すでにステータスがO(OPEN) OR C(CLOSE)のように格納されています。Oracle Formsの条件付きトリガー

この状態は、oracleフォーム開発者のフロントエンド状態の列にOPENCLOSEとして表示する必要があります。

  1. どのトリガーを使用する必要がありますか?
  2. そのトリガーの予想されるクエリの条件は何ですか?あなたのブロック名がAとフィールド名であると仮定すると、アイテムレベルであなただけの、次を使用することができますいずれかの方法をデータ・ブロック・レベルでNEW-RECORD-INSTANCEを使用し、またはNEW-ITEM-INSTANCEでき
+0

この表では、値はOおよびC? – user75ponic

+0

はい、そのような...! –

+0

あなたのブロックはテーブルまたはビューに基づいていますか?ビューに基づいている場合は、ケース条件を含めてOとCをチェックすることができます。 – user75ponic

答えて

2

STATUSは次のとおりです。

if nvl(:a.status,'C') = 'O' then 
    :a.status := 'Open'; 
else 
    :a.status := 'Closed'; 
end if; 
+0

ステータスカラムからOとCのみを取得します。クエリモード、私は 'オープン'と '閉じる'を表示する必要があります。 その形式では新しいモードはありません。修飾モードと照会モードのみが存在します –

+0

これらの2つのトリガーは、ブロックがロードまたは作成されるたびに実行され、現在のモードに依存しません。POST-QUERYを使用してこれを行うこともできます。 –

+0

これは、この目的のための適切なトリガーではありません。これらはナビゲーションイベントです。 –

1

あなたはこのためにリストアイテムを使用することができます。

Item typeList Style Poplistにそして、あなたがマップすることができますリストのプロパティ要素に設定し List Itemにを入れて自分の価値観:C

その後、あなたはオープンとクローズの値を持つドロップダウンリストを持っていますし、自動的にそれがでそれに接続値を使用しますに休館O

オープンデータベース。

+0

変更モードでステータス列の変更を無効にする方法は? –

+0

データベースプロパティで許可されたプロパティのinsertおよびupdateをNoに設定するか、またはプロパティを有効にする – nightfox79

0

ブロックレベルのポストクエリートリガーを追加し、非ベーステーブルの列にデータを取り込みます。開閉状態を保持する。

関連する問題