EBS FORM基本6. 手电筒(QUERY_FIND)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EBS FORM基本6. 手电筒(QUERY_FIND)相关的知识,希望对你有一定的参考价值。
基本6. 手电筒(QUERY_FIND)
开发步骤
- 从APPSTAND.fmb中复制QUERY_FIND对象组,获得块、窗口、画布的模板,之后将对象组删掉
- 从数据块中将要查询的项复制过来,设置子类信息,设置:数据库–数据库项–否,因为只是用来暂时保存这些数据而已
- 新建LOV(可选,如果是手工输入就不需要做,但一般是要用LOV的,否则输错会导致没有数据)
- 修改QUERY_FIND块中按钮的触发器
- 清除按钮:
app_find.clear;
- 新建按钮:
app_find.new(‘TEST_BLOCK‘);
- 查找按钮:
:parameter.G_query_find := ‘TRUE‘;
app_find.find(‘TEST_BLOCK‘);
:parameter.G_query_find := ‘FALSE‘;
- 清除按钮:
- 在主块触发器中添加QUERY_FIND触发器
- 内容:
app_find.query_find(‘TEST_BLOCK‘,‘QUERY_FIND‘,‘QUERY_FIND‘);
- 语法:
APP_FIND.QUERY_FIND(<results window>,<Find window>,<Find block>);
这个触发器会在用户点击手电筒的时候调出这个查询窗口。
- 内容:
- 在主块触发器中添加PRE-QUERY触发器
也可以使用这个方法赋值:IF :PARAMETER.G_QUERY_FIND = ‘TRUE‘ THEN
:TEST_BLOCK.NAME := :QUERY_FIND.NAME;
:TEST_BLOCK.AGE := :QUERY_FIND.AGE;
:TEST_BLOCK.SEX := :QUERY_FIND.SEX;
:TEST_BLOCK.DATE_FROM := :QUERY_FIND.DATE_FROM;
:TEST_BLOCK.DATE_TO := :QUERY_FIND.DATE_TO;
:PARAMETER.G_QUERY_FIND := ‘FALSE‘;
END IF;
COPY (<find Window field>,<results field>);
这个触发器会在查询之前将查询块中的数值先赋给目标块,当执行app_find.find(‘TEST_BLOCK’)时就能查到数据了当查询的是一个范围,比如数据块上只有一个日期字段,
那么用app_find.query_range(low_value,high_value,db_item_name)
或者app_find.query_date_range(low_value,high_value,db_item_name)
其中low_value和high_value的类型可以是varchar2/date/number
细节剖析
- g_query_find
parameter.g_query_find
的作用是决定查询范围的一个开关。
在PRE-QUERY触发器中,通过判断此值,来判断此次查询是否来源于手电筒操作,从而决定是否要套用手电筒中的查询条件。
在我们其他客户化开发中也可以借鉴这种方法。
以上是关于EBS FORM基本6. 手电筒(QUERY_FIND)的主要内容,如果未能解决你的问题,请参考以下文章