码迷,mamicode.com
首页 > 其他好文 > 详细

【EBS FORM】基本6. 手电筒(QUERY_FIND)

时间:2016-06-07 12:56:56      阅读:1912      评论:0      收藏:0      [点我收藏+]

标签:

基本6. 手电筒(QUERY_FIND)

手电筒具体流程参考
手电筒触发器参考

开发步骤
  1. 从APPSTAND.fmb中复制QUERY_FIND对象组,获得块、窗口、画布的模板,之后将对象组删掉
  2. 从数据块中将要查询的项复制过来,设置子类信息,设置:数据库–数据库项–否,因为只是用来暂时保存这些数据而已
  3. 新建LOV(可选,如果是手工输入就不需要做,但一般是要用LOV的,否则输错会导致没有数据)
  4. 修改QUERY_FIND块中按钮的触发器
    • 清除按钮:app_find.clear;
    • 新建按钮:app_find.new(‘TEST_BLOCK‘);
    • 查找按钮:
      1. :parameter.G_query_find := ‘TRUE‘;
      2. app_find.find(‘TEST_BLOCK‘);
      3. :parameter.G_query_find := ‘FALSE‘;
  5. 在主块触发器中添加QUERY_FIND触发器
    • 内容:app_find.query_find(‘TEST_BLOCK‘,‘QUERY_FIND‘,‘QUERY_FIND‘);
    • 语法:APP_FIND.QUERY_FIND(<results window>,<Find window>,<Find block>);
      这个触发器会在用户点击手电筒的时候调出这个查询窗口。
  6. 在主块触发器中添加PRE-QUERY触发器
    1. IF :PARAMETER.G_QUERY_FIND = ‘TRUE‘ THEN
    2. :TEST_BLOCK.NAME := :QUERY_FIND.NAME;
    3. :TEST_BLOCK.AGE := :QUERY_FIND.AGE;
    4. :TEST_BLOCK.SEX := :QUERY_FIND.SEX;
    5. :TEST_BLOCK.DATE_FROM := :QUERY_FIND.DATE_FROM;
    6. :TEST_BLOCK.DATE_TO := :QUERY_FIND.DATE_TO;
    7. :PARAMETER.G_QUERY_FIND := ‘FALSE‘;
    8. 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)

标签:

原文地址:http://www.cnblogs.com/jforce/p/5566405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!