Quantcast
Channel: Oracle Bloggers
Viewing all articles
Browse latest Browse all 19780

Query_Find Form开发入门

$
0
0

1. 打开Template.fmb,并另存为一个名字(QUERYFIND.fmb)


2.从Window,Canvas,Data Block中删除BLOCKNAME从Data Block中删除DETAILBLOCK


3.创建一个Window(DEPT_WINDOW),subclass选择WINDOW


4.Pre-Form trigger中,把DEPT_WINDOW设置为第一个显示的窗口

Program Unit:APP_CUSTOM中,设置关闭窗口的行为


5.定义一个Canvas(DEPT_CANVAS),subclass设置为CANVAS


6.通过Wizard创建Data block:DEPT,在Table中使用DEPT这个部门表


并把这个Block绑定到刚创建的canvas:DEPT_CANVAS

把block:DEPT的subclass设置为BLOCK ,并且把block下边三个字段的subclass都设置为TEXT_ITEM.


7.加载APPSTAND.fmb

把APPSTAND.fmb下的Object Groups中的Query_Find对象组拖到Demo Form中的Object Groups中(选择Copy),

这样window,canvas,datablock有了QUERY_FIND标准对象

然后分别定义QUERY_FIND window,canvas,block的subclass。

打开QUERY_FIND block,可以看到默认会有三个button自动带入。


修改FIND,New按钮的When-Button-Pressed代码,把block:DEPT,替换进去


8.在Query_Find block中增加一个TEXT_ITEM字段,用于在查询时输入部门编码,并记得把这个字段绑定到Query_Find canvas中去。


9.然后把APPSTAND.fmb中的QUERY_FIND trigger拖拽到DEPT block  level(Copy)


把原有的代码改成APP_FIND.QUERY_FIND(‘DEPT_WINDOW’, ‘QUERY_FIND’,'QUERY_FIND’);

补充:Syntax: APP_FIND.QUERY_FIND(<results block window>,<Find window>,<Find window block>);


10.接下来,在DEPT block level创建一个Pre-Query trigger,代码如下:

IF :parameter.G_query_find = 'TRUE' THEN
   COPY(:QUERY_FIND.DEPT_NO,'DEPT.DEPTNO');
  :parameter.G_query_find := 'FALSE';
END IF;

补充:

:parameter.G_query_find为True表示,当前查询为Query Find所触发的。

Pre-Query Syntax:

IF :parameter.G_query_find = TRUE THEN

COPY (<find Window field>,<results field>);

:parameter.G_query_find := FALSE;

END IF;

11.Form:QUERYFIND的属性中,设置First Navigation Data Block为Query_Find

QUERY_FIND block的Next  Navigation Data Block设置为DEPT

12.Compile一把,看看有没有错误。没有错误的话,就可以参考如何注册一个新的form到EBS系统把文件注册到系统中了。

13.进入系统,查看功能




Viewing all articles
Browse latest Browse all 19780

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>