随笔 - 571  文章 - 4  评论 - 253  阅读 - 72万

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   东方瀚海  阅读(1474)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

点击右上角即可分享
微信分享提示