FORM开发

这篇博客详细介绍了Oracle Forms的开发过程,包括修改FORM级触发器,如PRE-FORM和WHEN-NEW-FORM-INSTANCE,设置块和项的属性,使用QFIND画布,创建CUXCRVAS块并定制其触发器,以及LOV设置。此外,还涉及了程序单元的修改,如APP_CUSTOM包、CUX_CONTROL包、CUX_EVENT包和CUX_PRIVATE包的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、修改FORM级触发器

1.PRE-FORM

app_window.set_window_position('CUXCRVAS', 'FIRST_WINDOW');


2.WHEN-NEW-FORM-INSTANCE

FDRCSID('$Header: TEMPLATE.fmb 115.12 level:6 2013/11/05 10:00:48 pkm ship                                                                                                                                                                                                                                                             $');
APP_STANDARD.EVENT('WHEN-NEW-FORM-INSTANCE');
--
-- app_folder.define_folder_block('template test', 'folder_block', 'prompt_block', 'stacked_canvas', 'window', 'disabled functions');
-- app_folder.event('VERIFY');
--
cux_control.botton_control('when-new-form');
二、创建数据块

1.为QFIND快添加项

设置块和项的属性:

 QFIND画布

 修改块级触发器KEY-NXTBLK:

:parameter.G_query_find := 'TRUE';
app_find.find('CUX_CRVAL');
:parameter.G_query_find := 'FALSE';

分别编写以下触发器:

app_find.clear;
app_find.new('CUX_CRVAL');
:parameter.G_query_find := 'TRUE';
app_find.find('CUX_CRVAL');
:parameter.G_query_find := 'FALSE';

三、创建CUXCRVAS块

画布CUXCRVAS效果:

设置块和项属性

修改ITEM级触发器WHEN_CHECKBOX_CHANGED

BEGIN
        IF :CUX_CRVAL.ATTRIBUTE1 IS NULL THEN
             :CUX_CRVAL.END_DATE := NULL;
             app_item_property.set_property('CUX_CRVAL.END_DATE',INSERT_ALLOWED,PROPERTY_FALSE);
              app_item_property.set_property('CUX_CRVAL.END_DATE',UPDATE_ALLOWED,PROPERTY_FALSE);  
        ELSE
            app_item_property.set_property('CUX_CRVAL.END_DATE',INSERT_ALLOWED,PROPERTY_TRUE);
            app_item_property.set_property('CUX_CRVAL.END_DATE',UPDATE_ALLOWED,PROPERTY_TRUE);  
        END IF;
END;

修改块级触发器:

1、QUERY_FIND

NULL;
APP_FIND.QUERY_FIND('CUXCRVAS','QFIND','QFIND');

2、PRE_INSERT

cux_private.per_insert;

3、PRE_UPDATE

cux_private.per_update;

4、PRE_DELETE

cux_private.per_delete;

5、PRE_QUERY

NULL;
IF :Parameter.G_query_find='TRUE' THEN
:CUX_CRVAL.CUSTOMER_ID:=:QFIND.CUSTOMER_ID;
--:CUX_CRVAL.CUSTOMER_NUMBER:=:QFIND.CUSTOMER_NUMBER;
--:CUX_CRVAL.CUSTOMER_NAME:=:QFIND.CUSTOMER_NAME;
:CUX_CRVAL.STATUS:=:QFIND.STATUS;
:Parameter.G_query_find:='
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值