Form开发指南-第二弹:基本配置与开发流程
FORM版本:0racle Developer Suite 10g - Form Builder
1 拷贝相关程序(配置)
请确保您可以登录到FORM的服务器中去,使用远程连接工具,比如Xshell等。
1.1 拷贝文件
拷贝两个文件夹里的所有文件到本地。预先在本地建立一个开发文件夹,如D:0racleDev,然后把服务器
目录下的forms 和resource 两个文件夹整体拷贝到本地C:0racleDev目录(这个目录需要自己创建的,创建在安装好的Oralce suit10g同目录下就好)下。
注意forms文件夹下有ZHS和US两个文件夹,一般只需拷贝ZHS下的所有文件即中文FORM到本地forms文件夹下即可,如果全部拷贝,注册表路径也需指定到 ZHS 下。
1.2 修改注册表
步骤如下:
- 直接在操作系统运行Regedit命令进入注册表维护界面进入注册表目录:
- 进入注册表目录:【HKEY LOCAL MACHINE 👉 SOFTWARE👉WOW6432Node👉Oracle👉KEY_DevSuiteHome 👉 forms_path (ctrl+F直接搜索forms_path更加简单) 修改其值为:
C:\DevSuiteHome_1\cgenf61\ADMIN;C:\DevSuiteHome_1\forms;C:\OracleDev\forms\ZHS;C:\OracleDev\resource
- 说明:前两个值段是安装form 开发工具后就生成的,只需添加自己从服务器拷贝的标准form及resource 程序的路径。
1.3 验证 Forms Developer是否模板可用
打开 template.fmb文件,如果没有提示错误就说明设置成功了。
2 FORM开发示例 (开发)
打开TEMPLATE.fmb模板文件后,做如下步骤:(
①删除Data Blocks下的两个块--BLOCKNAME、DETAILBLOCK,它们是模版自带的示例主从块。 ②删除Canvases下的一个画布--BLOCKNAME。
←)
—>首先建一个窗口,因为画布放在窗口上。这里将原来的一个窗口BLOCKNAME,改名为WIN_MAIN,并双击进入属性面板修改名称
2.1 数据向导
—>添加要用的数据块:退出属性选项板->右键WIN_MAIN窗口->数据块向导
2.2 布局向导
2.3 改2个触发器、1个程序单元
因为一个Forms有多个Window,所以需要明确指出哪个Window是主Window,这样在关闭主Window的时候将退出整个Forms;此外,我们也须要在源代码中记录作者、开发时间、版本等备注信息。这些是通过代码而非属性来控制的。“
将数据块MAIN里的所有项,右键点击的属性里—>子类信息改为TEXT_ITEM,以下只列出SEGMENT1的截图:
将画布MAIN里的子类信息选为CANVAS,窗口选为WIN_MAIN,因为该画布放在WIN_MAIN 展示:
修改触发器->PRE-FORM ,(设置要显示哪个主题窗口)
修改程序单元->APP_CUSTOM*(程序包主体) :(搜索“wnd”,这个条件选择语句,只需要设置第一个if分支即可)
修改触发器->WHEN-NEW-FORM-INSTANCE:(
①第一行注释的原因:
- 这是一个 版本控制标识,通常由版本管理系统自动生成,用于标记文件版本信息。
- 注释掉它不会影响程序逻辑,只是让代码更简洁,或者避免某些环境下的解析错误。
②新增两行的作用:
-
Go_Block('MAIN');
这句代码的作用是将焦点切换到数据块MAIN
。
在表单启动时,默认焦点可能不在你想要的块上,调用这句确保用户界面定位到MAIN
数据块。 -
Execute_Query;
这句代码执行当前数据块的查询操作,自动加载数据。
这样表单打开时,MAIN
数据块就会显示对应的数据,而不是空白。
)
2.4 调整视图和画布
Canvas(画布)与View(视图):Canvas是整个画布的大小,Item是放置在Canvas上的;View是这个画布的可见部分,如果View小于Canvas,那么通常需要借助滚动条来查看整个Canvas中的内容;可以通过菜单View中的Show View、Show Canvas来确定哪个框是Canvas哪个框是View。←
开发完毕!!!接下来就是FORM编译!
3 将开发完的FORM上传到服务器并编译(编译)
- 最开始当然需要将我们开发好的FORM另存为自己想要的名字,比如TESTJZL.fmb,到Template.fmb同目录下,随后进行如下步骤:
- 首先使用 XShell,登陆上FORM服务器,然后在SecureCRT里通过
(确保自己已经是开发用户,所用的是开发环境的环境配置,可以参考第四点)echo $AU_TOP
- 然后再使用Xftp,到$AU_TOP目录下,将开发完成的FORM传到$AU_TOP/forms/ZHS目录下
- XShell cd 进入 $AU_TOP/forms/ZHS 目录,然后执行下面的命令即可( ①记得修改TESTJZL.fmb为你另存为的fmb文件,我服务器存放开发环境的fmx的环境变量名字是叫$CUX_TOP你们不一定哦 ② userid的账号密码,我的账号密码都是一样的apps,你们也要修改为自己的):
frmcmp_batch userid=apps/apps module=$AU_TOP/forms/ZHS/TESTJZL.fmb output_file=$CUX_TOP/forms/ZHS/TESTJZL.fmx module_type=FORM batch=no
注意!如果运行$AU_TOP等命令没有输出的话,就不是开发用户的话,可以参考切换命令:
su - applsit
切换为applsit开发用户,输入“R”,然后后回车,之后再运行
4 将编译完成的form挂到EBS前台菜单(注册)
—>以应用开发员职责登录,注册表单。(“用户表单名”才是用于手电筒搜索的主要字段,之后也是绑定这个字段)
—>以应用开发员职责登录,定义功能
—>将以上定义的功能加入MENU,此处加入的是 系统管理员职责的MENU。以系统管理员职责登录
以系统管理员职责登录,点击常用菜单里的菜单选项
—>运行FORM。先进入别的职责,再进入系统管理员职责。相当于编译和刷新(我是这么想的)