Oracle Form 如何制作手电筒查询

来源:互联网 发布:录屏软件哪款好 编辑:程序博客网 时间:2024/05/18 03:13

1.新建QUERY_FIND的窗口Window

2. 新建QUERY_FIND的画布Canvases

3. 将Window 与 Canvases关联,分别在各自的属性上设置

4. 新建查询块 QUERY_FIND并添加作为查询的字段以及对应的ID

5. 在被查询块上新建一个QUERY_FIND 的Trigger ,添加代码

APP_FIND.QUERY_FIND('MAIN','QUERY_FIND','QUERY_FIND');--MAIN为被查询数据的的WINDOW ,QUERY_FIND 查询界面的WINDOW,最后一个QUERY_FIND为查询界面的块名

6.点击查询按钮的代码在WHEN-BUTTON-PRESS

:parameter.g_query_find:= 'TRUE' ;app_find.find('MAIN'); --被查询的块:parameter.g_query_find := 'FALSE' ;

7.在被查询块上的PRE-QUERY的代码:

IF event ='PRE-QUERY' THEN     app_query.reset('MAIN'); --重置查询条件,清除内存中对于该块残存的查询语句      IF :parameter.g_query_find = 'TRUE' THEN        copy(:query_find.status,'MAIN.STATUS');        copy(:query_find.inventory_item_id,'MAIN.INVENTORY_ITEM_ID');       app_find.query_date_range(:query_find.transaction_date_from,/*日期范围的查询方法*/                                 :query_find.transaction_date_to,                                 'MAIN.TRANSACTION_DATE');        :parameter.g_query_find = 'FALSE';      END IF;END IF;        

8.如果希望查询块和被查询块都能同时在窗口中显示,需要在Form级别的Trigger WHEN-NEW-FORM-INSTANCE 添加

  execute_trigger('QUERY_FIND');

9.解决手电筒失效的方法:

在BLOCK 级别的Trigger:WHEN-NEW-RECORD-INSTANCE、WHEN-NEW-ITEM-INSTANCE中分别加入'app_standard.event('WHEN-NEW-RECORD-INSTANCE')';和'app_standard.event('WHEN-NEW-ITEM-INSTANCE');'。



原创粉丝点击