8

Oracleフォーム(v6.0)を学習しようとしています。ボタンが押されたときのトリガーで、データブロックのすべてのレコードをループしようとしています。これまでのところ、次のコードがあります。

BEGIN
    GO_BLOCK('MY_BLOCK');
    FIRST_RECORD;
    LOOP
    MESSAGE(:MY_BLOCK.DSP_NAME);
    EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
    NEXT_RECORD;            
    END LOOP;   
END;

コードを実行すると、最後の値を除くすべてのDSP_NAME値が表示されます。追加した場合:

MESSAGE(:MY_BLOCK.DSP_NAME);

ループの後、最後のレコードのDSP_NAME値が表示されます。なぜそのようなのですか?メッセージは最後のレコードチェックの前に表示されますか?そして、レコードをループする正しい方法は何でしょうか?

4

2 に答える 2

8

あなたのループは正しいです。ポップアップ ウィンドウとしてではなく、フォームの下部にあるステータス バーに最後のメッセージが表示されていると思われます。

于 2013-02-19T19:20:11.690 に答える
2

ポップアップ ウィンドウを表示するには、同じ行を 2 回使用します。

MESSAGE(:MY_BLOCK.DSP_NAME);

MESSAGE(:MY_BLOCK.DSP_NAME);

このように取得します。

于 2014-03-25T08:32:15.263 に答える