Form_Form Builder开发基于视图页面和自动代码生成包(案例)

 2014-01-06 Created By BaoXinjian

一、摘要


Oracle EBS二次开发中,由于功能要求复杂的缘故和数据库设计的要求,基于表的Form开发并不多见,为了能够更好的利用Form的特性,

需要开发基于视图的表单,开发基于视图的表单和基于表的表单实质并没有区别,

只是基于视图的表单中需要开发人员来明确编写增、删、改、锁的程序逻辑,而基于表的表单自动帮助完成这些功能。

1. Oracle Form开发的两种模式

(1). 基于Database Table开发

(2). 基于Database View开发

2. 基于视图的Form需要引入4个块级别的触发器:

(1).ON-INSERT 编写插入数据的SQL语句或程序逻辑

(2).ON-UPDATE 编写更新数据的SQL语句或程序逻辑

(3).ON-DELETE 编写删除数据的SQL语句或程序逻辑

(4).ON-LOCK 编写锁定记录的程序逻辑

针对上面的增删改的常用功能,可以引用Hand技术的大侠们提供的PLSQL包生产代码 HAND_PLSQL_AUTOCREATE

 

二、HAND_PLSQL_AUTOCREATE


1. procedure - regist_table

2. procedure - form_view_iud

3. procedure - table_handle_pkg

 

三、案例


1. 打开包hand_plsql_autocreate

2. 视图:form_view_iud

3. 输入4个参数:

数据块的名称

数据库对应数据库视图对应的基表

据库表的所有者

数据库表的主键

4. 执行,查看运行结果:

到form中建包:包名:数据块名称+_PRIVATE

5. 添加块触发器:

on-insert : 数据块名称+_PRIVATE.insert_row

on-update : 数据块名称+_PRIVATE.update_row

on-lock : 数据块名称+_PRIVATE.lock_row

on-delete : 数据块名称+_PRIVATE.delete_row --若数据块不允许删除数据,则可以省略此触发器

6. 调用方式

7. 复制代码至Package中,建立增删改锁程序

CREATE OR REPLACE PACKAGE cux_order_headers_pkg AS

  ** PROCEDURE:   insert_row()
  PROCEDURE insert_row();

  ** PROCEDURE:   lock_row()
  PROCEDURE lock_row();

  ** PROCEDURE:   update_row()
  PROCEDURE update_row();

  ** PROCEDURE:   delete_row()
  PROCEDURE delete_row();

END;

8. 添加Form Trigger中调用insert/update/lock/delete procedurer

 

Thanks and Regards

转载:张礼军/黄建华大侠 - http://oracleseeker.com/2009/09/28/view_based_form_development_for_oracle_ebs/

转载:百度文库 - http://wenku.baidu.com/

posted on 2014-11-11 22:25  东方瀚海  阅读(1470)  评论(0编辑  收藏  举报