技术开发 频道

ORACLE ERP开发之OracleForms基础(一)

  【IT168 技术文档】
      
ORACLEERP开发基础之前言    http://tech.it168.com/a2009/0427/274/000000274048.shtml

  Forms基本对象概念

  明白了上面的基本概念,就可以开工了。

  设置ITEM为必填项

  Setup:

  Effect:

  此效果与是set_item_property('test.l_test',required,property_true)一样的。

  设置ITEM的初始值为当前日期

  实现按“ENTER”自动跳至下一条记录

  设置BLOCK属性:导航器风格:改变记录。

  使用堆叠画布

  Effect:

  1. 先将数据块、画布布局好(用向导的方式就可以了,具体操作就不用讲了吧)。

  2. 在画布中创建一个堆叠画布。

  3. 将项的画出属性更为堆叠画布(这一步最关键了)。

  4.调整后得到下面这效果了。

  深入了解Forms的事务触发机制

  编写一个健壮的FORMS应用程序,免不了要做各种数据的检验动作。所以必须了解FORMS事务触发器的工作原理。其他类型的触发器相对来说比较好理解,就不详说了。

  ① FORMS处理事务分成发送(POST)和提交(COMMIT)两个阶段。这个跟JAVA中的事务操作类似,也就是Statement和Commit两个阶段。但FORMS一些规则比较死,也就是说规定好POST之前会触发PRE触发器之类等等。

  ② 事务触发器分成三类,PRE-XXX、ON-XXX、POST-XXX,它们的执行顺序可以直接从其英文缩写得出。

  例:执行INSERT操作,会按以下顺序进行。 1.1从数据项复制数据。 1.2触发PER-INSERT触发器。 1.3检查记录的惟一性。 1.4插入行到其表或者触发ON-INSERT触发器。 1.5触发POST-INSERT触发器。

  创建FORMS数据块的主从关系

  1、先创建两个数据块,当然这两个数据块在DB应该有外键的关系(不是一定要创建数据库外键关联哦?)。
        2、选择从表的数据块,然后点击菜单数据块向导。

  3、选择关联属性。

  非孤立:表示当有从记录时,不允许删除主记录(默认)。 级联:当删除主记录时,从记录也一起删除(推荐使用)。 孤立:当删除主记录时,从记录保留不变(不推荐使用)。 事实上,当选择不同的属性时,FORMS会在主数据块中,自动创建两个触发器 ON-POPULATE-DETAILS:当插入主数据块记录时,自动将主键赋值给从数据块外键字段。 ON-CHECK-DELETE-MASTER:实现从删除主数据块记录时,从数据块要执行何种操作。

        4、设置主键及报FRM-30100错误。 ①如果数据块属性设成使用主键,那么该数据块的ITEM必须有一个设成主键,否则报FRM-30100错误。 ②即使数据块设成不使用主键。但该块的查询数据源名称与DML数据目标名称不一致时,也是必须设至少一个ITEM为主键。否则报FRM-30100错误。如图:

  注:查询数据源与DML数据目标不一致时,数据INSERT、UPDATE、DELETE都会发生在DML数据目标那张表。 例如:以视图为查询数据源,而在数据表中仅保留ID。而查询时,自动匹配查询到相应的number、description 将视图的字段设置如下,否则会报无法找到这个字段之错误。

  5、主键赋值。 按数据库设计模式范式要求,每张表都应该有一个PRIMARY KEY。而且此字段一般不让用户操作,由sequence自动维护。我们可以数据块的PRE-INSERT触发器中加入代码:
        select hek_test_sq.nextval into :hek_test_headers.hid from dual;

4
相关文章