书海网短评:
OracleEBS(E-BusinessSuite)是甲骨文公司的一套大型ERP应用产品,在这套产品中,大量的功能实现是基于Oracle的Form表单,可以说EBS系统开发*基础、*重要的就是Form开发。Form是Orac
OracleEBS(E-BusinessSuite)是甲骨文公司的一套大型ERP应用产品,在这套产品中,大量的功能实现是基于Oracle的Form表单,可以说EBS系统开发*基础、*重要的就是Form开发。Form是OracleEBS系统搭载在Java插件上可实现对数据库插入、查询、删除、更新等操作的交互式界面。开发者可以利用Oracle开发套件提供的FormsBuilder开发工具进行Form的开发或者修改。为了更好地引导、帮助读者理解学习Form开发,作者以循序渐进的方式精心创作了这《深入浅出Oracle 之Form开发》。《深入浅出Oracle 之Form开发》采用了渐进的方式对Form开发涉及的内容进行组织,对知识进行*小化分割,为读者提供循序渐进的学习思路;在深入本质的层面上对Form开发以及EBS架构进行讲解;对开发中涉及的关键环节进行深入剖析;包含了大量的实例供读者学习及开发参考。
目录
第1部分开发基础知识
Chapter01
开发背景与基础1
1.1读者基础要求2
1.2认识EBS架构2
1.2.1R12.X.X版本架构2
1.2.2桌面层3
1.2.3应用层4
1.2.4数据库层4
1.3用户和常用工具5
1.3.1区分三类用户5
1.3.2Form开发使用的用户和工具5
1.4AOL开发框架6
1.4.1导航菜单6
1.4.2EBS功能安全性基本原理7
1.4.3Form开发模板文件Template.fmb7
1.4.4EBS文件系统8
1.5多组织支持11
1.6主要示例12
1.6.1销售订单12
1.6.2开发需求分析12
1.6.3其他说明13
第2部分Form开发基础
Chapter02
基于EBS的Form开发14
2.1Form文件类型15
2.2开发工具FormsBuilder安装15
2.2.1开发工具版本15
2.2.2OracleHome16
2.2.3基本安装过程16
2.2.4配置TNSNAME20
2.2.5配置FORMS_PATH20
2.2.6配置NLS_LANG21
2.3下载Template相关文件22
2.3.1下载Template模板22
2.3.2启动FormsBuilder开发工具22
2.3.3打开TEMPLATE.fmb及报错分析23
2.3.4下载必要的文件到FORMS_PATH对应目录24
2.4开发工具FormsBuilder25
2.4.1快速认识FormsBuilder环境25
2.4.2进入Form设计界面26
2.4.3对象导航器27
2.4.4布局编辑器30
2.4.5属性选项板31
2.4.6Form中常用对象介绍32
2.4.7其他Form设计工具35
2.5案例:创建数据库对象36
2.5.1创建数据量对象36
2.5.2注册表和字段40
2.5.3创建用户开发Form使用的视图42
2.5.4创建表操作API44
2.6案例:从模板开始设计45
2.6.1复制TEMPLATE.fmb45
2.6.2删除多余对象45
2.6.3修改Windows名称46
2.6.4修改2个触发器、1个程序单元46
2.6.5创建Block数据块47
2.6.6设置Block属性及其Subclass49
2.6.7设置Item属性及其Subclass49
2.6.8创建Canvas画布51
2.6.9设置画布属性和子类、调整布局53
2.6.10调整布局55
2.6.11调整Prompt提示55
2.6.12设置Window属性56
2.6.13设置Form属性56
2.7案例:编写数据库操作触发器57
2.7.1编写数据库操作ProgramUnit57
2.7.2编写数据库块ON-触发器64
2.8案例:上传和编译65
2.9案例:在EBS中注册运行67
2.9.1登录EBS67
2.9.2注册Form67
2.9.3定义Function67
2.9.4加入Menu68
2.9.5运行Form69
Chapter03
触发器、变量、参数、内部子程序70
3.1触发器71
3.1.1触发器的定义71
3.1.2触发器的类型71
3.1.3触发器中的代码71
3.1.4触发器的作用范围72
3.1.5触发器事件72
3.1.6常用触发器73
3.2变量75
3.2.1Form变量75
3.2.2PL/SQL变量76
3.2.3Form系统变量76
3.3参数77
3.3.1Parameter参数77
3.3.2创建Parameter参数78
3.3.3初始化Parameter参数78
3.3.4使用Parameter参数78
3.4内部子程序79
3.4.1内部子程序的定义79
3.4.2使用内部子程序80
3.4.3常用内部子程序81
Chapter04
List、LOV、字段和记录控制、日历82
4.1案例:List值列表83
4.1.1关于List83
4.1.2创建List83
4.1.3删除List条目85
4.1.4运行实例85
4.1.5列表风格ListStyle85
4.2案例:LOV窗口式值列表86
4.2.1关于LOV86
4.2.2创建LOV87
4.2.3改进LOV91
4.2.4完善实例92
4.2.5运行实例93
4.2.6常用LOV属性设置93
4.3案例:字段和记录控制95
4.3.1关于字段属性95
4.3.2设置字段属性101
4.3.3字段控制102
4.3.4记录控制102
4.3.5运行实例103
4.4案例:日历104
4.4.1日历控件104
4.4.2运行实例104
4.5总结105
Chapter05
行指示符、主从块、滚动条、Stacked&Tab画布、多行文本106
5.1案例:销售订单行107
5.1.1创建数据库对象107
5.1.2创建数据库块ORDER_LINES107
5.1.3增加行指示Item107
5.1.4设置Item属性及其Subclass108
5.1.5创建Canvas画布108
5.1.6调整布局、Prompt提示109
5.1.7设置头行块互为前后导航块110
5.1.8创建LOV110
5.1.9创建行块增/删/改ON-触发器111
5.1.10运行实例112
5.2案例:Master-Detial主从块112
5.2.1关于主从块112
5.2.2创建主从关系113
5.2.3关于删除记录行为的说明114
5.2.4运行实例115
5.3案例:滚动条115
5.3.1关于滚动条115
5.3.2设置滚动条116
5.3.3运行实例116
5.4案例:Stacked(堆叠)画布117
5.4.1创建堆叠画布117
5.4.2设置Item到新建的堆叠画布118
5.4.3调整堆叠画布119
5.4.4调整堆叠画布在主画布上的位置120
5.4.5运行实例122
5.5画布小结123
5.5.1子类与画布123
5.5.2从UI角度看对象关系124
5.6案例:Tab画布125
5.6.1创建Tab画布和标签页125
5.6.2设置Item到标签页并调整布局125
5.6.3调整主画布布局126
5.6.4运行实例128
5.7案例:控制Tab画布128
5.7.1控制思路128
5.7.2控制代码129
5.7.3运行实例131
5.8案例:多行文本框132
5.8.1关于多行文本框132
5.8.2运行实例132
第3部分Form开发进阶
Chapter06
LOV查询、块查询、Button133
6.1查询原理134
6.1.1【F11】查询原理134
6.1.2理解其他查询134
6.2案例:LOV查询135
6.2.1什么是LOV查询135
6.2.2创建LOV查询135
6.2.3运行实例136
6.3案例:块查询137
6.3.1什么是块查询137
6.3.2复制标准查询块137
6.3.3修改标准查询块138
6.3.4创建查询条件Item139
6.3.5修改块触发器139
6.3.6修改目标Item查询长度140
6.3.7对于几个内置查询子程序的说明140
6.3.8运行实例141
6.4案例:Button141
Chapter07
触发器层次关系、常用触发器编写规范143
7.1理解层次关系144
7.1.1说明144
7.1.2WHEN-VALIDATE-ITEM例子144
7.2触发器原理145
7.2.1触发器堆栈145
7.2.2常用触发器及其执行顺序146
7.3基于EBS模板开发的触发器146
7.4对触发器的一些理解148
7.4.1On-Lock148
7.4.2Pre-Form和When-New-Form-Instance148
7.4.3Post-Query和When-New-Record-Instance149
7.4.4When-Validate-Item和When-Validate-Record149
Chapter08
说明性弹性域、键弹性域、键弹性域查询150
8.1说明性弹性域开发151
8.1.1关于说明性弹性域151
8.1.2基表要求:基表中需含有1个结构字段和若干个自定义字段151
8.1.3注册要求:注册表和字段到EBS中152
8.1.4字段要求:一个非数据库项156
8.1.5触发器要求:Form级157
8.1.6触发器要求:块级157
8.1.7触发器要求:Item级157
8.1.8启用弹性域158
8.1.9运行实例159
8.2键弹性域开发159
8.2.1关于键弹性域159
8.2.2基表要求:基表中需含有1个ID字段160
8.2.3字段要求:一个键代码组合字段+一个可选的键描述组合字段160
8.2.4触发器要求:Form级161
8.2.5触发器要求:块级162
8.2.6触发器要求:Item级162
8.2.7运行实例163
8.2.8开发客户化键弹性域163
第4部分Folder和JTFGrid
Chapter09
Folder、JTFGrid开发164
9.1Folder开发步骤(从头开始)165
9.1.1什么是Folder165
9.1.2创建数据库对象165
9.1.3复制TEMPLATE.fmb开发Form167
9.1.4复制标准Folder对象167
9.1.5引用Folder的PLL库167
9.1.6创建Folder块168
9.1.7修改Folder块169
9.1.8创建Prompt块170
9.1.9修改Prompt块和Folder块171
9.1.10Folder自动布局原理172
9.1.11创建堆叠画布、内容画布、窗口172
9.1.12布局Item到画布173
9.1.13调整画布布局及位置174
9.1.14追加Form级触发器175
9.1.15设置Form第一导航块177
9.1.16运行实例177
9.1.17高级Folder功能178
9.2Folder开发步骤(基于模板)178
9.2.1基于模板新建Form178
9.2.2创建数据块178
9.2.3创建标题块179
9.2.4修改数据块179
9.2.5修改标题块179
9.2.6修改触发器179
9.3JTFGrid开发步骤180
9.3.1关于JTFGrid180
9.3.2复制TEMPLATE.fmb开发Form180
9.3.3复制标准JTFGrid对象180
9.3.4引用JTFGrid的PLL库181
9.3.5创建数据库对象181
9.3.6定义CRM电子表格182
9.3.7创建Grid块183
9.3.8修改Grid块183
9.3.9布局Item到画布183
9.3.10追加Form级触发器184
9.3.11编写FindButton触发器184
9.3.12处理选择事件185
9.3.13运行实例186
第5部分多语言开发和附件开发
Chapter10
多语言开发187
10.1国际化支持188
10.2Form自身的多语言版本188
10.3数据多语言开发步骤189
10.3.1数据库对象的要求:基表B189
10.3.2数据库对象的要求:多语言表TL190
10.3.3数据库对象的要求:视图VL190
10.3.4数据库对象的要求:表操作API191
10.3.5Form对象的要求:2个Form级触发器193
10.3.6Form对象的要求:5个Block级触发器193
10.3.7Form对象的要求:多语言字段在画布的显示194
10.4EBS启用新语言时的考虑195
10.4.1EBS启用新语言的过程195
10.4.2MaintainMulti-lingualTables核心过程195
10.4.3如何客户化196
Chapter11
附件开发197
11.1关于附件198
11.2标准附件设置198
11.2.1表及其关系198
11.2.2定义Entity实体198
11.2.3定义Categories类别199
11.2.4定义AttachementFunction200
11.2.5定义Function和Category关联201
11.2.6定义启用附件的Block202
11.2.7定义Block-Entity关系203
11.2.8定义关键字204
11.2.9使用过程205
第6部分JavaBean
Chapter12
JavaBean206
12.1Form与Java207
12.1.1Form就是Java207
12.1.2关于ImplementationClass207
12.1.3Form中的Java类规范208
12.1.4Form与Java类的交互208
12.1.5Form中使用自定义JavaBean209
12.2案例:HelloWorld210
12.2.1功能210
12.2.2按规范编写Java类:BeanTemplate.java210
12.2.3编译:BeanTemplate.class212
12.2.4制作JAR认证文件213
12.2.5打包JAR214
12.2.6认证JAR214
12.2.7服务器配置JavaBean程序214
12.2.8Form中使用BeanTemplate215
12.3案例:CSV通用导入217
12.3.1功能217
12.3.2设计思路217
12.3.3表设计217
12.3.4设置Form219
12.3.5导入Form219
12.3.6通用导入安装221
12.3.7具体开发使用221
第7部分个性化
Chapter13
Form个性化223
13.1Form个性化概述224
13.1.1个性化与客户化224
13.1.2个性化原理225
13.2案例:修改字段Prompt225
13.2.1打开欲个性化的Form,调出个性化定义界面225
13.2.2输入个性化条件、个性化内容226
13.3案例:有条件显示消息227
13.3.1打开欲个性化的Form,调出个性化定义界面227
13.3.2输入个性化条件227
13.3.3输入个性化Action228
13.4案例:调用数据库Package228
13.4.1条件中调用Package228
13.4.2Action中调用Package228
13.5案例:添加菜单229
13.5.1打开欲个性化的Form,调出个性化定义界面229
13.5.2输入个性化Action229
13.6案例:打开功能230
13.6.1打开欲个性化的Form,调出个性化定义界面230
13.6.2输入个性化条件230
13.6.3输入个性化Action231
13.7案例:执行查询231
13.7.1打开欲个性化的Form,调出个性化定义界面231
13.7.2输入个性化条件232
13.7.3输入个性化Action232
13.8案例:其他应用233
13.9CUSTOM.PLL实现个性化233
13.9.1建议使用的方法233
13.9.2编译脚本234
13.9.3CUSTOM中的Function和Procedure简介234
13.10个性化迁移237
第8部分Form开发规范及常用代码参考
Chapter14
Form开发规范(建议)及常用代码参考238
14.1命名规约239
14.1.1文件命名规约239
14.1.2Form对象命名规约239
14.2Form按钮常用快捷键242
14.3Form程序单元命名规则243
14.4编程规范及常用代码244
14.4.1布局规范244
14.4.2Form各对象的布局要求245
14.4.3子类属性246
14.4.4触发器编程规范248
14.4.5WHO字段的维护253
14.4.6基于视图块的数据更新253
14.4.7动态控制Item属性258
14.4.8消息的输出259
14.4.9日历的使用259
14.4.10菜单和工具条的使用260
14.4.11Window的打开265
14.4.12Window的关闭266
14.4.13Window的标题设定266
14.4.14异常处理266
14.4.15Form中的变量267
14.4.16Item的初始值属性267
14.4.17库存组织访问267
14.4.18树形Form开发268
14.4.19其他注意事项269
附录273
EBS12.X.X系统架构主要分为三层:桌面层、应用层和数据库层,Form属于应用层。我们设计Form、编写相应的代码部署在系统应用服务器,当在EBS中运行Form文件时会将其转化为JavaApplet,并在Jinitiator这个JVM中运行。
想深入理解并开发Form需分三步走。首先,你必须理解OracleEBS的基础系统架构以及Form在EBS系统中的运行、工作原理;其次,你需要逐步熟悉并且实现Form基础功能开发、复杂功能实现、特殊功能开发、个性化实现等;最后,当你掌握上述这些独立的功能之后,还必须学会如何将这些独立的功能组合到一起,构建实现更加复杂的Form开发。我希望这《深入浅出Oracle 之Form开发》能够帮助大家学习如何有效并且高效地开发Form。
《深入浅出Oracle 之Form开发》目的
《深入浅出Oracle 之Form开发》涵盖了大量Form知识点和开发实例,使读者有迹可循,能够从基础架构的认知、基础功能的实现到复杂功能的深入理解、特殊功能的开发和个性化实现等方面逐步理解和深入学习EBS系统以及实现Form的客户化开发。
《深入浅出Oracle 之Form开发》结构
《深入浅出Oracle 之Form开发》共分为14章,每章都包含多个知识点和可用于开发的实例。《深入浅出Oracle 之Form开发》对Form中的主要知识点及开发流程进行了详细讲解,并且对Form开发中的关键环节进行了深度剖析,为读者提供了一条清晰完整的学习路线,如下表所示。
第1章开发背景与基础第8章说明性弹性域、键弹性域、键弹性域查询
第2章基于EBS的Form开发第9章Folder、JTFGrid开发
第3章触发器、变量、参数、内部子程序第10章多语言开发
第4章List、LOV、字段和记录控制、日历第11章附件开发
第5章行指示符、主从块、滚动条、Stacked&Tab画布、多行文本第12章JavaBean
第6章LOV查询、块查询、Button第13章Form个性化
第7章触发器层次关系、常用触发器编写规范第14章Form开发规范(建议)及常用代码参考
《深入浅出Oracle 之Form开发》特点
?国内第一本讲解OracleForm开发的中文书籍。
?细致地讲解了EBS系统概要、Form基础进阶知识、开发实例,给读者提供全面的储备知识和完整的学习路线。
?适合初学者系统地学习Form开发,同时也适合从事与Form开发相关的专业人士进行深入学习和拓展。
读者定位
?从事或者即将从事OracleEBS的开发人员。
?从事或者即将从事OracleDBA的开发人员。
?对Oracle有强烈兴趣的学习者。
致谢
《深入浅出Oracle 之Form开发》是以上海汉得信息技术股份有限公司副总裁黄建华老师的《深入浅出Oracle之Form开发指南》文档为基础,根据作者多年一线实战经验总结梳理而来的。在对书籍的校对过程中得到了上海汉得信息技术股份有限公司Oracle技术中心总经理曹良峰老师的指导,以及很多汉得牛人们的指导和建议,在此一并表示感谢。由于作者水平有限,书中疏漏之处在所难免,还望各位读者朋友批评指正。









