1 / 9
文档名称:

oracleform开发之调用form.doc

格式:doc   大小:35KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

oracleform开发之调用form.doc

上传人:好用的文档 2021/7/26 文件大小:35 KB

下载得到文件列表

oracleform开发之调用form.doc

文档介绍

文档介绍:oracleform开发之调用form
Oracle Form二次开发实战总结 调用Form Form开发中经常会用到Form间相互调用的功能,总结了以下,大概有以下3种方法:
方法1
PROCEDURE shot_plan_new IS
fm_id FormModule;
BEGIN
fm_id := Find_Form('TVSNPMPSCRNMT');
if id_null(fm_id) then
('TVSN','TVSNPMPSCRNMT');
--Application Name --Function Name
else
go_form('TVSNPMPSCRNMT');
end if;
END;
实现思路:首先检测是否已经打开了目标Form,是的话就是目标Form成为当前窗体,否的话就新打开一个目标Form。假如在目标Form需要随源Form自动查询出数据,须将代码写在when-window-actived trigger中。
注意:go_form会引起源Form的when-window-deactived和目标form的when-window-actived trigger,when-window-actived trigger在form切换时都会被触发,因此目标form如果有弹出日历等调用新窗体的操作时,需要设置是否是第一次触发标识作判断,否则可能达不到设计的效果,,否则会引起死锁。另外此种go_form方法如需要传递参数的话,只能依靠:,关闭窗体时需要在close-windows或WHEN-WINDOW-CLOSED事件中清除,否则可能导致不需要的后果。

方法2
declare pl_id ParamList;
fm_id FormModule;
BEGIN
pl_id := Get_Parameter_List('SCRNMTPL');
IF NOT Id_Null(pl_id) THEN
Destroy_Parameter_List( pl_id );
END IF;
pl_id := Create_Parameter_List('SCRNMTPL');
Add_Parameter(pl_id,'SHOT_DATE',TEXT_PARAMETER,to_char(d_from,'YYYY-MM-DD'));
Add_Parameter(pl_id,'CHANNEL_TYPE_ID', TEXT_PARAMETER,:);
Add_Parameter(pl_id,'CHANNEL_TYPE_NAME', TEXT_PARAMETER,:);

fm_id := Find_Form('TVSNPMPSCRNMT');