1、 添加块级QUERY_FIND触发器((注意:是目标块,而不是查询块query_find),该触发器不是Form标准的,所以需要手工输
入,代码如下,具体参数含义请直接参考app_find包:
app_find.query_find('SALES_ORDER','QUERY_FIND','QUERY_FIND');
参数意义:APP_FIND.QUERY_FIND(’<查询目标块所在窗口名>’,’<查询窗口名>’,’<块名>’);
2、 添加块级PRE-QUERY触发器(注意:是目标块,而不是查询块query_find),代码如下,注意赋值用Copy,范围查询用
app_find.query_range(如果是日期可以用app_find.query_date_range):
IF :parameter.g_query_find = 'TRUE' THEN
copy(name_in('query_find.JOB_TYPE'),'JOB_BAL.JOB_TYPE');
copy(name_in('query_find.ASSEMBLE_ITEM'),'JOB_BAL.ASSEMBLE');
copy(name_in('query_find.CLASS_CODE'),'JOB_BAL.CLASS_CODE');
app_find.query_range(:query_find.WIP_ENTITY_NAME_FROM,
:query_find.WIP_ENTITY_NAME_TO,
'JOB_BAL.WIP_ENTITY_NAME');
app_find.query_date_range(:query_find.SCHEDULED_START_DATE_FROM,
:query_find.SCHEDULED_START_DATE_TO,
'JOB_BAL.SCHEDULED_START_DATE');
app_find.query_date_range(:query_find.SCHEDULED_COMPLETE_DATE_FROM,
:query_find.SCHEDULED_COMPLETE_DATE_TO,
'JOB_BAL.SCHEDULED_COMPLETION_DATE');
:parameter.g_query_find := 'FALSE';
END IF;
注意:FRM-40831:Truncation occured: value too long for field ...错误
如果是范围查询,通常目标块中Item默认的最大查询长度不够,需要设置得大点,比如200: