从一个窗口导航到另一个窗口(这两个窗口都是打开的),要传递参数的话请使用WHEN–FORM–NAVIGATE,记住不要直接为这个触发器编码,而要使用全局变量来传递参数。要做到这样,请在一个自定义触发器中使用全局变量 GLOBAL.WHEN_FORM_NAVIGATE来传递参数。在使用GO_FORM这个内置过程导航到另外一个窗口时也会触发WHEN–FORM–NAVIGATE这个触发器。
举例:查询某个项目(字段)
很可能有这样的需求,导航到另外一个表单,并根据这个表单中的某个项目来查询记录。假设你现在有两个表单,一个名叫ORDERS,另一个名叫CATALOGS,现在你从ORDERS表单导航到CATALOGS表单,并要根据ORDERS表单上的一个名叫PART_NUMBER的项目来查询CATALOGS表单中的记录。解决方案如下:
u 步骤1:在ORDERS表单中创建一个全局变量GLOBAL.PART_NUMBER,并将要查询的值赋给这个全局变量。
u 步骤2:在ORDERS表单中创建另一个全局变量GLOBAL.WHEN_FORM_NAVIGATE,并赋值为字符串QUERY_PART_NUMBER。
u 步骤3:在CATALOGS表单中创建一个自定义触发器QUERY_PART_NUMBER,代码中包含EXECUTE_QUERY以使导航到这个表单时执行查询。
u 步骤4:在表单CATALOGS的PRE-QUERY触发器中编写如下代码:
copy(’GLOBAL.PART_NUMBER, ’PARTS_BLOCK.PART_NUMBER’);
copy(’’,’GLOBAL.PART_NUMBER’)
罗勇补注:我觉得上面的代码红色部分可能有误,似乎应该为CATALOGS才对,没有去验证,如果有需要的时候相信纠正下不难,用时再说。