ユーザーがテーブルから取得した複数行のデータを表示できるフォームを作成しました。ユーザーは行を選択し、ボタンを押してその行のデータを拒否するオプションがあります (一部の STATUS フィールドで拒否としてマークされます)。
また、ユーザーがコメントや拒否の理由を入力できる拒否確認ダイアログも設計しました。
Type プロパティを Dialog に設定して、ダイアログ キャンバスを独自のウィンドウに表示するように設定しました。
ユーザーが拒否する行を選択すると、次のコードが実行されます。
BEGIN
GO_BLOCK('BLK_ALL_RECORDS');
FIRST_RECORD;
IF :FRM_ALL_ROWS.CHK_SELECT = 1 THEN
:FRM_REJECTION.ID := :FRM_ALL_ROWS.ID;
GO_BLOCK('BLK_REJECTION');
SHOW_VIEW('CNV_REJECTION');
EXIT;
ELSE
NEXT_RECORD;
END IF;
END;
また、拒否フォームには 2 つのボタンがあり、1 つは確認用、もう 1 つはキャンセル用です。ここでは、キャンセル ボタンに注目してみましょう。[キャンセル] ボタンが押されたときに実行されるコードは次のとおりです。
:BLK_ALL_ROWS.CHK_SELECT := 0; /* Forces removal of the check mark */
GO_BLOCK('BLK_ALL_RECORDS');
HIDE_VIEW('CNV_REJECTION');
唯一の問題は、ダイアログ フォームが表示されると、フォームが閉じられるまで親フォームが非表示になることです。ダイアログフォームを親フォームの上に表示して、両方を表示するにはどうすればよいですか (モーダルな方法で?)