Oracle EBS的Forms,基本上都是从Template.fmb开始,该模版预先定义了:
1、 各种界面元素的属性集——子类
2、 常用的控件——日历、进度条
3、 一系列Form级触发器,统一处理各种未被明确处理的事件
4、 丰富的PLL库函数,大大超越了Forms Builder内置的函数
所以,我们基于EBS的开发,当然也是从Template.fmb开始。
AU模块存放fmb、pll、plx文件、各应用模块存放fmx文件,具体是:
$AU_TOP/resource:pll文件、plx文件
$AU_TOP/forms/US: 英文fmb文件
$AU_TOP/forms/<语言代码>: 特定语种(如ZHS)的fmb文件
$<应用简称>_TOP/forms/US: 各模块英文fmx文件录
$<应用简称>_TOP/forms/<语言代码>: 特定语种(如ZHS)fmb文件
上面<应用简称>,如INV、GL、AP、AR等等,在System Administrator职责下的
Application/Register中定义。
总之我们需要的模版及相关文件在AU_TOP下;我们开发的fmb文件呢,也应根据上
述规则传到$AU_TOP/forms的相关语言路径下,不过为管理、备份方便,实际开发中
可能故意违反EBS的规则,与fmx一起放在$CUX_TOP/forms的相关语言路径下。
Form文件类型:
.fmb:源文件,目前是二进制格式,也可以转成早期版本的ASCII格式
.fmx:可执行文件,类似VB的.exe文件,其也需要在Forms Runtime环境中运行
.pll:库函数源文件,类似所有开发语言的库函数,如VC的.cpp文件
.plx:库函数可执行文件
调用关系:fmb文件可以引用其他fmb文件、pll文件,pll文件可以进一步引用其他pll
文件,引用是可以嵌套的。所以要成功打开一个forms源文件,必须保证其直接引用、
间接引用的fmb、pll文件均存在。
Form的开发:
1.拷贝TEMPLATE.fmb
获取到TEMPLATE.fmb模板,另存模板并改名,打开之后把Form Name也改为CUXORDENT,一定要保持一致性;
2.删除多余对象
删除Data Blocks下的两个块——BLOCKNAME、DETAILBLOCK,它们是模版自带
的示例主从块。
删除Canvases下的一个画布——BLOCKNAME。
3.修改Windows名称
修改Windows下的BLOCKNAME这个Window,在Property Palette中修改Name值和Title;
4.修改2个触发器、1个程序单元
因为一个Forms有多个Window,所以需要明确指出哪个Window是主Window,这样
在关闭主Window的时候将退出整个Forms;此外,我们也须要在源代码中记录作者、
开发时间、版本等备注信息。
4.1 修改Forms级触发器PRE-FORM :
将其中的app_window.set_window_position('BLOCKNAME', 'FIRST_WINDOW');改为
app_window.set_window_position('FORM的名称', 'FIRST_WINDOW');
同时修改上面几行代码中的作者、时间、版本、Form描述、应用简称;
4.2 修改Forms级触发器WHEN-NEW-FORM-INSTANCE
主要修改Form名字、版本和日期。
4.3 修改Program Unit下app_custom中的close_window过程
将if(wnd = '<your first window>') thenapp_window.close_first_window;改为if(wnd = 'FORM的名称') thenapp_window.close_first_window;
5.创建Block数据块
数据块,定义Form上的字段与数据库中的字段是如何对应的,同时定义块和字段的各
种操作特性——字段类型、长度、默认值、可否增删改查等等。
N: 在Data Blocks上右键,选择数据块创建向导:
之后第一步跳过,第二步保持默认的选择“Table or View”
第三步输入View名字或者Table名字
登录后Available Column将显示所有视图字段,点击>>全部选过来。
第四步跳过,第五步选择“Just create the data block”后Finish。
Forms Builder将自动将表字段的名称、类型、长度、是否必须等信息带到Block下的
Items中。
6.设置Block属性及其Subclass
默认Block名字为视图名字,需要“精简”,同时需要设置块属性中的Subclass为Block;
此外,需要设置块的前后导航属性,本例目前仅有一个有意义的数据块,这里将
Previous和Next Navigation Data Block均设置为自身,这样在运行时,使用快捷键
Shift+Pageup和Shift+Pagedown时,均不会跳离本块。
7.设置Item属性及其Subclass
设置需要显示Item和特殊Item的子类,同时设置部分Item的默认值
8.创建Canvas画布
画布,用来设计各字段的布局,画布必需放置在Window上后才真正对用户“可见”。最基本的画布为Content画布,一个Window必需有且仅有一个Content画布。
第一步选择New Canvas,Type选择Content;
第二步选择要显示的字段;
第三步修改各字段的提示和显示长度;
后面两步跳过直至Finish。
在打开的画布设计界面,删除自动生成的Frame。
9.设置画布属性和子类、调整布局
设置画布名字,放置第3步做好的Window,子类为Canvas;
调整View和Canvas大小,Content画布这两者设置为一样大,即拉到重叠为止;
Canvas与View:Canvas是整个画布的大小,Item是放置在Canvas上的;View是这个
画布的可见部分,如果View小于Canvas,那么通常需要借助滚动条来查看整个
Canvas中的内容;可以通过菜单View中的Show View、Show Canvas来确定哪个框是
Canvas哪个框是View。
10.设置Windows属性
设置Window的Primary Canvas,该Window的大小将自动调整为Content Canvas的大小
11.设置Form属性
设置Form的第一个导航块
上传&编译
form路径:$AU_TOP/forms/ZHS/
form编译路径:$FND_TOP/forms/ZHS/
f60gen userid=apps/apps module=TEST01.fmb output_file=$FND_TOP/forms/ZHS/TEST01.fmx module_type=FORM batch=no
相关推荐
这在开发GUI应用程序时尤为常见,例如一个窗体(Form1)打开另一个窗体(Form2),然后Form2执行某些操作并返回结果给Form1,或者调用Form1中的方法。这个过程可以通过多种方式实现,其中一种常见且灵活的方法是使用...
在Oracle E-Business Suite (EBS) 中,Form开发是一个核心部分,用于构建企业级的业务应用程序。在实际应用中,往往需要根据不同用户或部门的需求进行定制化,以提高工作效率和用户体验。"ORACLE ebs FORM开发中form...
在C#编程中,Form1和Form2之间的数据传递是一个常见的需求,特别是在开发Windows桌面应用程序时。本主题将深入探讨如何在两个独立的窗体之间有效地传递数据,以实现Form1的TextBox控件值传递到Form2,以及Form2的...
Form是Adobe After Effects中的一个强大三维粒子系统插件,它为创意设计师提供了丰富的粒子效果制作工具,广泛应用于视觉特效、动态图形以及动画制作。通过Form,用户可以创建出复杂的3D模型、粒子流、文字动画等...
### Form2调用Form1控件的解决方案 #### 背景与问题描述 在Windows Forms应用程序开发过程中,经常会遇到需要在不同的窗体之间进行交互的情况。例如,当用户在`Form1`上的一个按钮(假设为`Button1`)被点击时,会...
在C#编程中,Form是Windows应用程序中用户界面的基本组件,常常需要在多个Form之间传递数据。本篇文章将深入探讨三种常见的在不同Form之间传递值的方法:公共变量、窗口调用以及构造函数。 1. 公共变量 公共变量是...
赠送jar包:feign-form-3.8.0.jar; 赠送原API文档:feign-form-3.8.0-javadoc.jar; 赠送源代码:feign-form-3.8.0-sources.jar; 赠送Maven依赖信息文件:feign-form-3.8.0.pom; 包含翻译后的API文档:feign-form...
SAP Scriptform是SAP系统中用于创建自定义打印输出的一种技术,它是SAP ABAP编程的一部分,专门处理复杂的报表和文档格式化。这个学习例子是针对初学者设计的,旨在帮助他们掌握SAP Scriptform的基本概念和操作,...
在网页设计中,表单(Form)是用户与网站交互的重要元素,用于收集用户输入的信息。"漂亮的form表单"这个主题关注的是如何创建既美观又功能强大的表单,以提高用户体验并提升网站的整体视觉效果。下面将详细介绍关于...
### Adobe Form在SAP开发中的应用 #### 一、Adobe Form概述 Adobe Form是一种用于创建交互式表单的技术,常被应用于SAP系统中。它能够帮助用户设计出美观且功能丰富的表单,这些表单可以支持数据输入、打印等功能...
《jQuery Form插件详解及其应用》 jQuery Form插件,基于jQuery库,是用于处理HTML表单的增强工具,能够方便地实现异步提交、文件上传等功能,极大地简化了前端开发人员的工作。在这个主题中,我们将深入探讨jQuery...
form-generator项目集成方案 form-generator项目集成方案是指将form-generator项目集成到本地项目中,以便实现表单可视化设计和生成表单代码的功能。该方案主要涉及到 Vue 项目的多页面结构、组件引入、样式文件...
本文实例讲述了JS提交form表单。分享给大家供大家参考,具体如下: 一、javascript 页面加裁时自动提交表单: Form表单: <form method="post" id="myform" action="a.php"> <input type="submit" value=...
**Ajax Axios URL Form Serialize 插件详解** 在Web开发中,数据交互是不可或缺的一部分,而Ajax技术正是实现页面异步更新的关键。随着前端框架的不断发展,像Vue.js这样的库广泛使用,Axios作为一款强大的HTTP...
微信小程序 表单Form实例 表单Form的应用很广泛,我们可以利用form设计登录注册,也可以设计一种答题问卷的形式,今天主要讲一下form的使用 form表单,将组件内输入的”switch”,”input”,”checkbox”,”slider”,...
具体来说,multipart/form-data格式的请求体由多个部分组成,每个部分前都有一个分隔符,该分隔符包括两部分:一长串随机生成的分隔符以及两个连续的减号。每个部分都会包含自己的Content-Disposition和Content-Type...
赠送jar包:feign-form-spring-3.8.0.jar; 赠送原API文档:feign-form-spring-3.8.0-javadoc.jar; 赠送源代码:feign-form-spring-3.8.0-sources.jar; 赠送Maven依赖信息文件:feign-form-spring-3.8.0.pom; ...
AjaxForm是jQuery Form Plugin的一个功能,用于实现异步表单提交,特别是处理包含图片在内的复杂数据。本文将深入探讨如何使用ajaxForm进行异步表单提交。 首先,让我们了解什么是Ajax。AJAX(Asynchronous ...
Trapcode Form AE插件预设是一款专为Adobe After Effects(AE)设计的特效工具,它提供了丰富的3D粒子系统和动态图形元素,帮助用户在视觉效果制作中创建出震撼的、具有深度和交互性的动画。这款插件尤其适用于制作...
在Oracle EBS(Enterprise Business Suite)系统中,EBS Form是一种常见的用户界面,用于与数据库交互,处理业务流程。在EBS Form中实现文件上传功能是企业日常操作中经常遇到的需求,例如上传合同、报表或其他业务...