EBS Form开发建立一个最简单的Form并部署到到EBS中(1)
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
1. 从要开发的EBS服务器上,拷贝下来$AU_TOP/forms/US/和$AU_TOP/resource/目录下的文件到Windows目录。
2. 编辑Windows注册表,把上面的两个目录加入到FORMS_PATH项上面去,如下图,不然的话在引用或者打开EBS上的已有的fmb时会报错。
3. 打开Form Builder,选择菜单File->New->Form using Template…,如下图。
4. 然后选择我们从$AU_TOP/forms/US/目录下载下来的TEMPLATE.fmb,因为它实现了EBS中需要已有的功能,做任何EBS form开发,最好都选择它,当然也可以用其它以TMPLATE.fmb的form来做起始的form,比如做收货相关的二次开发或新功能就可以使用RCVCOFND.fmb/RCVSTAND.fmb作为模板。建立好保存为另一个名字,如下:
5. 上面新建的form里面包含了一些TEMPLATE自带的对象,比如Data Block里面的BLOCKNAME和DETAIL BLOCK, Canvas里面的BLOCKNAME,以及Windows里面的BLOCKNAME.通常开始时把他们都删除掉,以便对新的开发有影响,其实也可以不删除直接修改。这里都删除掉。
6. 删除掉无关的对象后,我们需要新建一个窗口,我们选中对象浏览器中Windows节点,然后点击工具栏中的+按钮。并设置它的subclass为WINDOW(propertyclass),title为自己想显示的任意文字。
7. 再选中Canvas节点来新建一个Canvas,Canvas是放在Window中用来放置要显示的Item的,至少要有一个.设置相应的Name, Subclassinformation 和Window属性如下图。
8. 现在回头修改刚才新建的Window上的Primary Canvas属性为刚才新建的Canvas.
9. 修改Form level的trigger PRE-FORM的内容,来指定Form执行的时的第一个Window为我们刚才新建的RESULT Window如下图。
10. 修改Program Unit中的CUSOTM package body中的close_windowprocedure,指定在关闭窗户时的处理。CUSOTM.close_window会被form level的CLOSE_WINDOW trigger调用。
11. 现在Form已经建立好了,但实际上上面啥都没有,现在需要建立Block和Item以便能在Cavas上显示出东西来。选中对象浏览器上的DataBlock节点,点击+新建一个Data Block,这里做一个不访问数据库的最简单的block,所以选择’Build a new block manually’,并设置属性如下
12. 在BLOCK的Items节点,点击+来新建一个Push Button的简单Item,并设置属性如下,主要设置LABEL(按钮上要显示的文字)和Cavas(按钮要放在哪个canvas上显示)属性。
13. 上面先建的按钮的位置在右上角,位置不好,可以选中RESULT Canvas,然后右键选择布局编辑器来调整它的位置和大小,这样会自动修改ITEM相应的属性。
14. 保存form,然后编译成fmx文件并传到服务器上相应的文件目录下,如果服务器和开发环境的系统不一样的话要在服务器上编译,因为form/pll的可执行文件都是平台依赖的。我的文件放到了$PO_TOP/forms/US/目录下。
15. 现在要登陆到EBS新建相应的form,切换到职责ApplicationDeveloper,路径Applications->Form,如下
16. 为上面的form定义相应的Function, 职责ApplicationDeveloper,路径Applications->Function,如下
17. 把上面的Function加入到菜单中. 职责Application Developer,路径Applications->Menu,如下
18. 切换到包含Receiving菜单的职责,点开Receiving 的菜单,可以看到我们新加的Form.点击打开没有问题,点击关闭也没有任何问题。
一个最最简单的Form就最好了.