LOV

来源:互联网 发布:淘宝卖家工具有哪些 编辑:程序博客网 时间:2024/05/15 01:06

LOV查询分为:LOV输入查询,手电筒LOV,手电筒LOV窗口查询

一:LOV输入查询

1 利用wizard向导创建LOV

2 输入SQL查询语句

3 设置返回block数据项

4 设置标题和选取列的名称

5 在block项中讲lov_property 与创立lov进行关联

优点:快捷开发  缺点:如果想要创建新数据时。包含lov的数据项在保存时,会报错。

二:手电筒LOV

对数据项进行查询,并返回一条记录(record)

1 创建一个parameters 用于接受返回的参数 :parameter.header_id

2 创建一个lov查询,并将主键赋给parameters参数

3 在要创建lov的block块 添加块级触发器 QUERY_FIND --用来触发lov

app_find.query_find('lov 的名称');

4、添加数据块级PRE-QUERY触发器,代码如下:
if :parameter.g_query_find = 'TRUE'       //如果lov被触发

then  :order_headers.header_id := :parameter.header_id; //将参数接受的返回值赋给block块中的item
:parameter.g_query_find := 'FALSE';
end if;

三:windows窗口LOV

1 打开标准FORM-APPSTAND.FMB 将对象组中的query_find 标准模块拖入到待开发form中的object-group

2 设置导航块的下一导航块为目标块,上一导航块为本身

3添加数据块级QUERY_FIND触发器(该触发器不是Form标准的,所以需要手工输入),代码如下,具体参数含义请直接参考app_find包:

/-----place at 要执行查询的数据块trigger中-----------/
app_find.query_find('SALES_ORDER','QUERY_FIND','QUERY_FIND'); --'数据块所在窗口名','query_find 所在窗口名','query_find 数据块名'

4添加数据块级PRE-QUERY触发器,代码如下,注意赋值用Copy,范围查询用
IF :parameter.g_query_find = 'TRUE' THEN
copy(name_in('QUERY_FIND.SIGNED_UNIT_CODE'),'CONTRACT_PATH.SIGNED_UNIT_CODE'); --'query_find中查询item','数据块block中的item'
app_find.query_date_range(:QUERY_FIND.START_DATE_ACTIVE_FROM,--'query_find 块中的查询item'
:query_find.START_DATE_ACTIVE_TO,
'CONTRACT_PATH.START_DATE_ACTIVE');--'数据块block 中的item'
:parameter.g_query_find := 'FALSE';
END IF;

原创粉丝点击