Oracle Forms で簡単なプログラムを作成しました。以下のコードは、送信ボタンが押されたときのトリガーです。
ここにあります:
BEGIN
CREATE_RECORD;
IF :USERS.USERNAME IS NULL THEN
MESSAGE('Please enter Username');
GO_ITEM('USERNAME');
ELSIF :USERS.PASSWORD IS NULL THEN
MESSAGE('Please enter Password');
GO_ITEM('PASSWORD');
ELSIF :USERS.PASSWORD2 IS NULL THEN
MESSAGE('Please confirm your Password');
GO_ITEM('PASSWORD2');
ELSIF :USERS.PASSWORD != :USERS.PASSWORD2 THEN
MESSAGE('Password did not match');
GO_ITEM('PASSWORD2');
ELSIF :USERS.NAME IS NULL THEN
MESSAGE('Please enter your Name');
GO_ITEM('NAME');
ELSIF :USERS.POSITION IS NULL THEN
MESSAGE('Please enter your Position');
GO_ITEM('POSITION');
END IF;
IF :USERS.ACCESS_LEVEL = 'admin' THEN
IF :USERS.ADMIN_PASS = 'eweb1' THEN
alert:= show_alert('USER_CREATED');
IF alert = alert_button1 THEN
MESSAGE('OK');
END IF;
ELSE
MESSAGE('Administrator Password did not match');
GO_ITEM('ADMIN_PASS');
END IF;
ELSE
alert:= show_alert('USER_CREATED');
IF alert = alert_button1 THEN
/* foo */
END IF;
END IF;
END;
2 番目のパスワード (password2) が一致しない場合や、「パスワードが一致しませんでした」というメッセージが表示された場合など、フォームでエラーが発生した場合でも、停止してボタンが押されるのを待つ代わりに、フローして次のステートメントを読み取ります。また。これを修正できることを願っています。tnx