0
点赞
收藏
分享

微信扫一扫

FORM开发入门4——查找窗口实现


知识点:



如何增加查询条件:Country Name, p_START_DATE_from,p_START_DATE_to





1.手工创建新的数据块






2、重新命名块:QUERY,并设置子类信息为BLOCK






3.查询界面设计



   ①在块中新增所需的项(最好直接从原数据块COUNTRIES那里粘贴过来):



Country ID(用来作标识),Country Name ,START_DATE_FROM,START_DATE_TO






    ②设置项的属性:



        名称、子类信息、数据类型、最大长度(类型和长度粘贴过来的就可以不用改)、数据库项(否)、画布、X\Y坐标





A.不需显示出来的






B.需显示出来的非日期类项












提示、提示文本对齐(开始)、提示附件边缘(开始)、提示对象对齐(居中)、提示附件偏移(0.05)











C.日期类型只在LOV处与B不同,其余基本一样:



    值列表:ENABLE_LIST_LAMP,从列表中验证:否








        ③增加查询、清除两按钮:名称、子类属性、标签(查询(&Q))、默认按钮(可以不要)

















界面设计完成图大致为:






6、给按钮增加when-button-pressed触发器






内容:



查询按钮--不会自动保留上次查询的条件


:parameter.g_query_find := 'TRUE';
     
      app_find.find('COUNTRIES');
     
     :parameter.g_query_find := 'FALSE';
     
      
     
     --app_find.find('数据块名');

清除按钮


app_find.clear;




4.给查询块赋予查询条件



新增块级触发器PRE-QUERY






触发器内容:


IF :parameter.g_query_find = 'TRUE' THEN
     
     :countries.country_id := :query.country_id;
     
     app_find.query_date_range(:query.start_date_from,
     
                               :query.start_date_to,
     
                               'COUNTRIES.START_DATE');
     
     END;





补充1:若要进行模糊查询(如电话号码)


:EMPLOYEES.PHONE_NUMBER := '# LIKE ''%'|| :QUERY.PHONE_NUMBER||'%''';
    
    


    
    
    
    --关于

'# LIKE ''%'和'%''':因为实际SQL中like后的内容需要一对单引号('')引起来,而'为特殊字符,故需连写两次('')表示转义。


转换为SQL语句的where条件即为:


where :EMPLOYEES.PHONE_NUMBER LIKE '%:QUERY.PHONE_NUMBER%'







补充2:


对有使用值列表的项,需要增加触发器:WHEN-VALIDATE-ITEM


     app_field.clear_dependent_fields('QUERY.COUNTRY_NAME',
    
                                          'QUERY.COUNTRY_ID');

举报

相关推荐

0 条评论