【问题标题】:problem with timer in oracle formoracle形式的计时器问题
【发布时间】:2011-09-24 22:34:13
【问题描述】:

我正在开发一个由 oracle forms(6i) 创建的应用程序。 我尝试在我的一种形式中使用计时器,在测试期间一切都很好,我将我的形式转移到生产中。 当我打开表单进入生产时,我尝试在打开表单时访问另一个表单,我遇到了问题。 不幸的是,我不知道为什么我的菜单不能正常工作,我的意思是当这个表单运行时我的菜单会打开另一个表单。

菜单和表格之间没有任何关系,请告诉我。在那些应用程序的旧规范渲染的系统中也面临问题。我的意思是我有一个带有菜单的主窗体,其中包含背景图片,系统闪烁以呈现该背景。

我根据这篇文章创建了我的表,它工作正常

Updating board in oracle form

我将计时器长度从 300 更改为 1000 无效:(

我正在使用 Oracle forms 6i,但我也可以转换为 10g。我的 oracle 服务器版本是 9。

我的计时器:

触发 WHEN-NEW-FORM-INSTANCE

DECLARE
    timer_id timer;

BEGIN   
    timer_id := CREATE_TIMER('TIMER1',1000,REPEAT);
END; 

当定时器到期时触发

declare 
    timer_id timer;
    nv_temp varchar2(400);
    nv_temp_ch varchar2(2);
begin
    IF length(:NB_VTB.NB_STATUS) > 4 THEN
        nv_temp := substr(:NB_VTB.NB_STATUS,2,length(:NB_VTB.NB_STATUS));

        IF(:parameter.TP_STR_LEN = 0 )THEN
                nv_temp := nv_temp ||'    ('||to_char(SYSDATE,'hh:mm:ss')||')   ';          
        END IF;
        nv_temp_ch := substr(:NB_VTB.NB_STATUS,1,1);

        if (nv_temp_ch = ' ') then
            nv_temp_ch := '`';
        else
            nv_temp := replace(nv_temp,'`',' ');    
        end if;

         nv_temp := nv_temp || nv_temp_ch;  

        :NB_VTB.NB_STATUS := nv_temp;
        :parameter.TP_STR_LEN := :parameter.TP_STR_LEN + 1;

        IF :parameter.TP_STR_LEN > length(:NB_VTB.NB_STATUS)THEN
            :parameter.TP_STR_LEN := 0;
            :NB_VTB.NB_STATUS := FPG_FORM_STARTUP.ffn_get_status;
        END IF;
    END IF;
end;

【问题讨论】:

  • 我们需要停止计时器,但我不知道在哪里或如何在不使用的情况下找到我的表单以及如何停止计时器

标签: oracle plsql oracle10g oracleforms


【解决方案1】:

试试这个,应该可以的。

过程 Delete_Timer IS tm_id 定时器; 开始 tm_id:=Find_Timer('TIMER1'); 如果不是 Id_Null(tm_id) 那么 Delete_Timer(tm_id); 别的 Message('定时器'||'已经被取消。'); 万一; 结尾;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多