zoukankan      html  css  js  c++  java
  • Oracle Form开发手电筒查找功能实现

    实现手电筒查找的功能

      首先,先按TEMPLATE将其他功能先实现,然后再来实现查找的功能。手电筒查找的Effect有两二种,①LOV形式,②window形式。

      1、LOV查找模式:一般适用于查询结果只返回单条条件的查询(如主从数据块的界面)。

      ①创建一个parameter参数:TEST_P

      ②创建一个基于主键查询LOV-TEST_L,并将主键字段映射给Parameter参数TEST_P。

      

           

      ③在数据块中创建PRE-QUERY触发器。

      IF :parameter.G_query_find = 'TRUE' THEN :BLOCKNAME.HEADER_ID := :parameter.TEST_P; :parameter.G_query_find := 'FALSE';

      end if;

      ④在数据块中再创建QUERY_FIND触发器。

      begin

      app_find.query_find('TEST_L'); --调用LOV

      end;

      ⑤完成效果如下:

      

      2、WINDOW查找模式:一般适用多条件查询,可以返回多条查询记录。

      ①打开在标准FORM---APPSTAND.fmb。将对象组中的QUERY_FIND拖至待开发的FORM中。

      

      ②重命名第一个数据块、画布、窗口(QUERY_***都是刚才自动创建的)。USER GUID说可以重命名,但我没有重命名成功。也懒得去折腾一个命名的问题。^_^ ③打开QUERY_FIND画布,改写“新建”、“查找”两个按钮WHEN-BUTTON-PRESS之中的代码。

      

      NEW按钮代码:

      --app_find.new('Your blockname here'); app_find.new('HEK_SALE_CUST_MANUAL');

      FIND按钮代码:

      :parameter.G_query_find := 'TRUE'; --app_find.find('your blockname here'); app_find.find('HEK_SALE_CUST_MANUAL'); :parameter.G_query_find := 'FALSE';

      ④设置QUERY_FIND数据块的“前一导航数据块”,也就是要实现询查功能的数据块。

      

      ⑤修改QUERY_FIND数据块KEY-NXTBLK触发器代码

      :parameter.G_query_find := 'TRUE'; --app_find.find('your blockname here'); app_find.find('HEK_SALE_CUST_MANUAL'); :parameter.G_query_find := 'FALSE';

      ⑦修改QUERY_FIND窗口的标题及尺寸,并在QUERY_FIND画布上创建要查找的条件ITEM。 ⑧在要实现查询的数据块(如:HEK_SALE_CUST_MANUAL),创建PRE-QUERY触发器。

      

      if :parameter.g_query_find = 'TRUE' then

      app_find.query_range(name_in('query_find.CUSTOMER_NUMBER'),name_in('query_find.CUSTOMER_NUMBER'),'HEK_SALE_CUST_MANUAL.CUST_CODE');

      app_find.query_range(:query_find.CUST_DATE,:query_find.CUST_DATE,'HEK_SALE_CUST_MANUAL.TIME_ID'); :parameter.G_query_find := 'FALSE';

      end if;

      注:app_find.query_range参数前两个是QUERY_FIND中的ITEM,后一个是查询块中的ITEM。

      ⑨在要实现查询的数据块(如:HEK_SALE_CUST_MANUAL),再创建QUERY_FIND触发器。

      --APP_FIND.QUERY_FIND('','',''); app_find.query_find('HEK_SALE_DEPT_MANUAL','QUERY_FIND','QUERY_FIND');

      ⑩完成效果如下:

      

      记录指示器切换标签页

      Effect:

      

      1、 在该数据块中手工增加一个ITEM

      

      设置ITEM的属性:子类信息:设成DRILLDOWN_RECORD_INDICATOR,数据库项:否.

      2.在新增的ITEM的WHEN-MOUSE-CLICK触发器加入

      declare

      v_order number;

      begin

      v_order := : block_name1.item; --block_name表示要切换tab的数据块

      if v_order is not null then

      go_block(' block_name1');

      set_block_property('block_name1 ',DEFAULT_WHERE,'ORDER_NUMBER='||v_order);

      execute_query;

      end if;

      end;

      3.这样就可以实现类似VB中的TAB切换了。由于ORACLE FORM没有专门的TAB函数,只能如此曲折实现。

  • 相关阅读:
    DataList小结(转载)
    ISAPI筛选器及对ASP源文件的保护
    VC中静态变量Static
    其他
    Android TabHost的使用
    有关Android线程的学习
    android 中LayoutInflater 的使用
    Java与VC中的基本数据类型的相关知识
    Java中的finalize()、final、fianlly
    Animations介绍及实例
  • 原文地址:https://www.cnblogs.com/liuweicong39/p/2588339.html
Copyright © 2011-2022 走看看