2024年2月23日发(作者:)
安装
1.1JDeveloper 10g的安装
1.1.1 解压
JDeveloper 10g有两个光盘如下图示:
图1
分别解压后成B24499-01和B24500-01
图2
1.1.2开始安装
B24499-01为第一个光盘容应首先安装,B24500-01为第二个光盘内容在第一个光盘安装完后再装。双击B24499-01中的
图3
1.1.3设置安装路径
图4
1.1.4选择安装类型
图5
图6
1.1.5邮箱为空
图7
1.1.6安装过程中切换第二张光盘
图8
1.1.7选择目录
图9
1.1.8安装完成后开始菜单
图10
1.1.9服务配置
图11
图12
1.1.10修改注册表
<1>、NLS_LANG
HKEY_LOCAL_MACHINESOFTWAREORACLE
搜索NLS_LANG,出现NLS_LANG=ZHS16GBK或者NLS_LANG=ZHS16CGB231280的地方请全部修改成
NLS_LANG=AMERICAN_8
<2>、FORMS60_PATH变量
在后面加上TEMPLATE/所在的路径(F:WORKFORM)和PLL文件所在的路径(F:WORKPLL)。
1.2WORK FLOW的安装
1.2.1解压
图13
1.2.2安装
进入workflow_2.6.3_r12wfclient2635双击
图14
1.2.3选择安装目录
图15
1.2.4开始安装
图16
图17
图18
1.2.5安装完后查看开始菜单
图19
1.2.6服务配置
图20
图21
1.3XML_DESKTOP的安装
1.3.1JDK和JRE的安装
运行 和 可以完成JRE和JDK的安装,在安装JDK的同时,会装JRE也装上
图22
1.3.2环境变量的配置
图23
1.3.3开始安装
运行 XML 进行安装。安装过程中,需要关闭所有WORD文档。
图24
1.3.4选择JRE安装目录
图25
图25
图26
图27
图28
1.3.5在开始菜单查看安装结果
图29
1.4 SecureCRT6.5.0
此软件为一绿色软件,只需运行即可,也可以发送快捷方式到桌面
图30
1.5FlashFXP
此软件为一绿色软件,只需运行即可,也可以发送快捷方式到桌面
图31
操作
2.1开发环境及基础
PC硬件要求:内存要大于1G,CPU最好是双核,硬盘80G以上,在PC上安装JDeveloper 10g,FTP工具,注册EBS工具,XML工具,Work Flow。
如果想单机操作必除上述条件外还必需Oracle ERP系统,Oracle ERP数据库, EBS。
2.2开发操作大致流程
用FTP工具连接并下载标准FORMForm Builder中打开标准FORM对此FORM修改并重命名利用FTP工具上传改好的FROM远程登录EBS管理控制台在开发员页面远程注册FORM 利用远程发布FORM工具进行发布进入总帐管理员页面查看并测试功能及代码
2.3具体操作流程(以添加功能为例)
2.3.1下载标准FORM
Oracle JDeveloper官方提供了标准的FROM:,在开发FOMR的时候最好是对其进行修改操作,除非你有百分之百的把握在建基础FORM时不出错。下载路径:/d01/appl/DEV/apps/apps_st/appl/au/12.0.0/forms/ZHS/
图32
2.3.2修改并保存标准FORM(以添加功能为例)
2.3.2.1打开并修改标准FORM的名字
用FROM Builder打开标准FORM:,并保存为
图33
2.3.2.2在数据库中建表
表要事先设计好,建表代码要事先写好,也可以用视图方式添加
图35
2.3.2.3删除系统数据块
对FORM的开发是基于这些数据块的,不删除可能会给以后的开发造成不可预计的麻烦
图36
2.3.2.4建数据块
根据需要添加表或视图中的相应字段为数据项
图37
2.3.2.5添加画布
点击画布,点左上角的加号增加画布
图38
2.3.2.6添加窗体
点击画布,点左上角的加号增加画布
图39
2.3.2.7添加FORM页面ITEMS
也可以画布的“布局编辑器”中托拉添加ITEMS,但那样不容易控制(培训说的,没试过)
图40
2.3.2.8添加触发器和程序体
触发器相当于事件,程序体相当于方法,程序包相当于抽象类;从触发器调用程序体中的方法,程序体中的方法可以在程序包中事先声明,也可以在程序体内声明并实现
图41
2.3.3利用FTP工具上传改后的FORM
FTP工具在这一步将编写好的FORM上传至服务器,上传路径:/d01/appl/DEV/apps/apps_st/appl/cust/ccm/1.0.0/forms/ZHS/
注:中文上传至ZHS目录,英文上传至US目录
图42
2.3.4登录EBS控制台
打开浏览器,进入:8002,输入用户名:XXXXXXXXX密码:XXXXXXXXX
图43
2.3.5注册FOMR
2.3.5.1进入注册界面
只要是前面有窗口标志的都可以进入注册界面
图44
2.3.5.2进入权限选择页面
必须关掉配置文件页面才能进入
图45
2.3.5.3选择权限
图46
2.3.5.4进入主界面
选择表单并双击进入
图47
2.3.5.5注册表单
图48
2.3.5.6注册功能
图49
2.3.5.7注册菜单-1
查找要添加进去的系统菜单
图50
2.3.5.8注册菜单-2
在菜单框输入查询条件,按Ctrl+F11查询出来结果,点添加功能按钮,会出来一空行,在提示中输入LCHMX在功能中选择表单LCHMX保存即完成注册
图51
2.3.6发布FORM
在快捷方式 到 SecureCRT中注册新建的FORM
2.3.6.1进入登录
图52
2.3.6.2到发布目录
图53
2.3.6.3发布
脚本为:$frmcmp_batch module=$CCM_TOP/forms/ZHS/XY_ userid=apps/apps
output_file=$CCM_TOP/forms/US/XY_
注:该脚本简单格式为: frmcmp_batch module=源文件 userid=用户/密码 output_file=生成目标文件,源文件为另存后的FORM文件,生成目标文件名字和表单名一样后缀为.fmx
2.3.7查看结果
2.3.7.1选择权限
图54
2.3.7.2进入
图55
2.3.7.3查看
图56
2.3.7.4添加成功
图57
总结
3.1开发技巧
3.1.1如何建立弹出式值列表(LOV)
1. 右键点击LOV,选择“LOV向导”
图58
2. 选择“基于查询的新纪录组”
图59
3. 在窗口中输入形成记录组的查询SQL语句(例图中是查询员工的SQL语句)
图60
4. 选择LOV列,选择到右边的列将来会显示到界面上,左边的列表不显示
图61
5. 依照界面填写列中文标题,设置宽度以及返回的值
图62
注:“返回的值”作用是修改对应的数据块的项,通过这里的设置,实现用户在界面上选中一条记录后,LOV自动填写相关的一个或者多个字段的内容。例如:多组织结构中,用户在弹出式窗口中选择了组织名称OU_NAME后,需要修改界面上OU_NAME的值以及界面上没有显示的ORG_ID数据项两个内容,这样的功能就是在这里实现。
6. 填写LOV弹出式窗口标题
图63
7. 选择LOV分配项
图64
8. 最后,在步骤7中分配的数据项只要添加到画布上,就可以看到有LOV弹出式值列表的按钮。
3.1.2为什么运行时值列表为空(如何初始化多组织环境)?
ERP通过多组织环境的方式进行权限的区分,因此在大多数基于视图的查询中都需要对多组织环境进行初始化才能看到相应权限的数据。初始化步骤如下:
1. 在触发器PRE-FORM中添加针对多组织的初始化代码,首先在begin的上面填写变量声明:
DECLARE
l_default_org_id NUMBER;
l_default_ou_name VARCHAR2(240);
l_ou_count NUMBER;
l_no_access_flag VARCHAR2(10);
2. 在begin至end间添加如下代码。大多数情况下,下面的代码只需要修改第一行mo_的参数为具体产品名即可。
--初始化多组织访问环境,参数为产品名,mo_global为Oracle提供的库函数
mo_('CCM');
--将获得的多组织相关数据填写到变量中,mo_utils为Oracle提供的库函数
mo__default_ou(l_default_org_id,l_default_ou_name,l_ou_count);
--将变量值拷贝到参数对象中,以便各个触发器,LOV等地方可以读取,需要在‘参数’下面创建相应的参数对象
--大多数情况,初始化多组织访问环境后并不需要再特地使用这些变量,多组织效果是直接作用在session上
copy(l_default_org_id,'_default_org_id');
copy(l_default_ou_name,'_default_ou_name');
copy(l_ou_count,'_ou_count');
IF l_default_org_id IS NOT NULL THEN
--如果存在默认组织,则保存到old_org_id中
copy(l_default_org_id,'_org_id');
--设置为单组织访问方式,第一个参数'S'代表使用单组织访问方式,第二个参数代表具体使用的组织ID
--mo_global为Oracle提供的库函数
mo__policy_context('S',l_default_org_id);
ELSE
--设置为多组织访问方式,第一个参数'M'代表使用多组织访问方式,当第一个参数为'M'时,第二个 --mo_global为Oracle提供的库函数
参数无意义
mo__policy_context('M',NULL);
END IF;
通过步骤1和2,你的PRE_FORM看上去应当像这样:
图65
3. 在‘参数’中添加上面代码中使用到的PARAMETER对象,包括mo_default_org_id,
mo_default_ou_name, mo_ou_count, old_org_id。如图所示:
图66
这样,即可完成多组织的初始化,FORM中基于Oracle视图的查询语句将可以直接看到多组织的效果
3.1.3如何为一个日期型字段设置弹出日历的效果
1. 在项属性的“初始值”中填写 $$DBDATE$$ 。
注:该变量代表当前日期
2. 在项属性的“值列表”中选择 ENABLE_LIST_LAMP 。
注:该值列表为系统提供的特殊类型值列表,作用是给输入框添加一个LOV按钮,但不做任何其他事情,需要自己再实现相应功能
3. 在该项的触发器中添加KEY-LISTVAL触发器,填写代码:
--calendar为中都有的日历窗口
;
上述步骤操作完后,应当与下图类似:
图67
3.1.4如何实现将一个输入框初始化为只读方式
将该项的“子类信息”设置成TEXT_ITEM_DISPLAY_ONLY即可,如图所示:
图68
3.1.4如何实现第二个输入框依照第一个输入框的选择变换为必输或者不必输的状态
第一个输入框假设为Headers. CREDIT_OVER_LOW_FLAG,“项类型”为“列表项”
第二个输入框假设为Headers. CREDIT_OVER_LOW_RATE,当第一个输入框值为‘N’的时候,第二个输入框变为不需要输入的状态,当第一个输入框值为‘Y’时,第二个输入框变为必填项状态。
依照上面的需求,首先:
1. 在第一个输入框Headers. CREDIT_OVER_LOW_FLAG项下添加触发器“WHEN-LIST-CHANGE”
2. 触发器中填写如下代码:
--溢短装与比例读写属性修改,注意项前面要有个冒号
--app_item__property为Form提供的属性变更函数
IF : _OVER_LOW_FLAG = 'N' THEN
app_item__property('Headers__OVER_LOW_RATE',ENTERABLE,PROPERTY_FALSE);
app_item__property('_OVER_LOW_RATE',REQUIRED,PROPERTY_FALSE);
: _OVER_LOW_RATE := NULL;
ELSIF : _OVER_LOW_FLAG = 'Y' THEN
--当第一个输入框值为Y的时候,设置第二个框的输入状态为可以输入,并且是必输项
app_item__property('_OVER_LOW_RATE',ENTERABLE,PROPERTY_TRUE);
app_item__property('_OVER_LOW_RATE',REQUIRED,PROPERTY_TRUE);
END IF;
--当第一个输入框值为N的时候,设置第二个框的输入状态为不可输入,必选属性为FALSE
3.1.5如何在运行时监视变量当前值
FORM开发无法使用调试器进行断点调试,因此,假如需要在运行时观察某个变量运行到当前代码时的值是多少,可以借助以下方法进行,主要是借助弹出式窗口显示出当前变量的内容。
1. 在“程序单元”中创建显示“过程”,如图所示:
图69
2. 输入如下代码:
PROCEDURE CUST_SHOW_MESSAGE(MsgName IN VARCHAR2) IS
i number;
BEGIN
--FND__name为Oracle提供函数,用于将信息设置到产品上,最终显示可能根据语言环境和产品预先的配置实现--翻译效果,完整的用法可能需要搭配FND__token,本函数参数依次为:
--产品的SHORT_NAME,信息文字
FND__name('TCSA',MsgName);
--FND_on为Oracle提供的函数,用于弹出Question类型窗口,参数依次为:
-- 第一个按钮文字,第二个按钮文字,第三个按钮文字,默认按钮位置,取消按钮位置,窗口图标
i := FND_on('Yes','','',1,2,3);
END;


发布评论