拷贝TEMPLATE.fmb,改名为MYDEMO.fmb,打开之后把Form Name也改为MYDEMO,一定要保持一致性。
增加一个Window,Name为ORDERS,Title为PT ORDERS ENTRY
因为一个Forms有多个Window,所以需要明确指出哪个Window是主Window,这样在关闭主Window的时候将退出整个Forms;此外,我们也须要在源代码中记录作者、开发时间、版本等备注信息。这些是通过代码而非属性来控制的。
因为一个Forms有多个Window,所以需要明确指出哪个Window是主Window,这样在关闭主Window的时候将退出整个Forms;此外,我们也须要在源代码中记录作者、开发时间、版本等备注信息。这些是通过代码而非属性来控制的。
修改Forms级触发器PRE-FORM,将其中的app_window.set_window_position('BLOCKNAME', 'FIRST_WINDOW');改为
app_window.set_window_position('ORDERS', 'FIRST_WINDOW');
同时修改上面几行代码中的作者、时间、版本、Form描述、应用简称,示例如下:
FND_STANDARD.FORM_INFO('$Revision: 1.0.0 $', 'Template Form', 'FND', '$Date: 2012/06/01 11:02 $', '$Author: PTIAN $');
将if (wnd = '<your first window>') then app_window.close_first_window;改为
if (wnd = 'ORDERS') then app_window.close_first_window;
Block右键>Data Block Wizard
第二步保持默认的选择“Table or View”
Table or View输入dem_orders_v
这样view:dem_orders_v的字段信息就导入进来了
点击>>全部选过来
这里先选择“Just create the data block”,然后Finish
需要设置块属性中的Subclass为Block,设置了subclass,block或者item就会有一个红色的小图标
对于Date_ORDERED设置Subclass为TEXT_ITEM,Initial Value设置为$$DBDATE$$,并且设置为required的字段
item:ORDER_STATUS,Subclass:TEXT_ITEM,Maximum Length设置为10,Initial Value设置为ENTERED,并且为必输字段
item:ORDER_ID,Subclass:TEXT_ITEM,Prompt:Order Number
画布,用来设计各字段的布局,画布必需放置在Window上后才真正对用户“可见”。最基本的画布为Content画布,一个Window必需有且仅有一个Content画布。
canvas > Layout Wizard
最终Finish后,设置这个Canvas的属性
再切换到Windows,设置ORDERS的属性,Primary Canvas设置为ORDERS
切换到FORM的属性上,设置First Navigation Data Block为DEM_ORDERS_V
接下来做一个测试,看Form能否正常运行,注册MYDEMO form到系统中,如何注册参见我的另外一篇文章“如何注册一个新的form到EBS系统”,到系统中运行FORM
现在的这个form已经可以通过(F11+Ctrl&F11)做基本的查询工作了,不过界面还是太丑了,要做适当的美工,并删除不必要的字段
所有字段的subclass都设置成Text Item,调整Prompt,设置Number,Customer number,Customer name,Pay Type,Currency,Status为必输字段等,界面看起来美观多了