【问题标题】:Loop through all the records of datablock in Oracle forms循环遍历Oracle表单中datablock的所有记录
【发布时间】:2013-02-04 13:21:58
【问题描述】:

我正在尝试学习 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 值。为什么会这样 - 在最后一次记录检查之前显示消息?什么是循环记录的正确方法?

【问题讨论】:

    标签: forms oracle


    【解决方案1】:

    您的循环是正确的。我怀疑最后一条消息显示在表单底部的状态栏中,而不是弹出窗口。

    【讨论】:

    • 你说得对,我以为每次迭代都会出现一个消息框,然后弄糊涂了。谢谢!
    【解决方案2】:

    要获得一个弹出窗口,请使用同一行两次:

    MESSAGE(:MY_BLOCK.DSP_NAME);
    
    MESSAGE(:MY_BLOCK.DSP_NAME);
    

    你会这样理解的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2016-04-27
      • 2017-03-09
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      相关资源
      最近更新 更多