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

    xiaoxiao2025-09-06  632

    知识点: 如何增加查询条件: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 IF; 补充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');
    转载请注明原文地址: https://ju.6miu.com/read-1302359.html
    最新回复(0)