技术开发 频道

ORACLEERP开发基础之OracleForms基础(二)

  Forms数据提交的方式

  1、commit_form

  先针对form上面的数据变动进行commit,然后对于代码中的类似DML语句也进行提交; 如果form上面的数据变动和代码中的数据变动有冲突,最后以FORM上的为准。 适用:一般来在直接修改Form上的数据时,就使用commit_form。

  2、commit

  对form和数据库进行提交。如果form上面的数据和代码中的数据变动有冲突,最后以FORM上的为准。 适用:一般来在直接使用DML代码修改数据时,就使用commit。

  3、do_key('commit_form')

  会首先寻找form下的triggers中的KEY-COMMIT这个trigger,并执行KEY-COMMIT中所写的代码。 如果没有KEY-COMMIT这个trigger,则会针对form和代码一起提交。 如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准。 适用:只是更改了一下代码执行的任先顺序,没有什么实质区别。

  4、forms_ddl('commit')

  只针对代码中的update,insert,delete语句进行提交。如果form上面的数据有变动,是不会提交的。 适用:一般不用。

  在一个FORM中调用不同的WINDOW

  1、基础概念:

  ① 一个FORM是可以包含多个WINDOW,一个WINDOW可以切换不同的CANVAS。

  ②对于包含有多个WINDOW的FORM,FORM的“第一个导航块”属性,决定了首先打开的WINDOW。

  ③另外在EBS开发中,template模板中FORM-LEVEL的PRE-FORM触发器,会有如下代码:

  app_standard.event('PRE-FORM');

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

  上述代码也会决定,加载FORM时首先要打开的WINDOW

  2、FORM调用WINDOW的例子: 对于包含有多个WINDOW的FORM,在已打开的WINDOW上,通过按钮打开另一个WINDOW。

  BEGIN

  SHOW_WINDOW('Test_W',2,2);

  SET_WINDOW_PROPERTY('Test_W',TITLE,'标题');

  END;

  Effect:

  3.错误: 关闭窗口时出现以下提示

  解决:在该画布上必须要有一个可以导航的item。该ITEM必须满足以下其中一个条件:

  1.该item是可用的,并且该ITEM所属的块必须是数据块。

  2.该item是失效的,即enabed为property_false。

0
相关文章