retek中怎么实现form传参调用另一个form

form调用另一个form的意思就是说,我要在form A中触发某个事件,然后调用到form B,而这又不是单纯的只是显示出form B,而要传递A中的某些参数以供form B的使用,或者说form B的执行需要form A中的某些参数。对于这个问题,在form中可以通过定义参数列、清空form A参数列、初始化form A参数列、添加参数到参数列、使用open_form打开form B并调用参数列。下面,列出retek系统中一段实现代码作为参考,目前我还没做ebs开发,想想应该也是差不多的:

DECLARE
  -- 定义参数列
  l_pl_id paramlist;
BEGIN
  -- 清空form_A的参数列
  p_destroy_parameter_list('form_A');
  -- 初始化form_A的参数列
  l_pl_id := create_parameter_list('form_A');
  -- 添加参数PM_STORE到参数列,并赋值,注意赋值的类型主要有text_parameter、data_parameter两种,text_parameter代表字符串型,而data_parameter并不是代表数值,详细参加参考文档add_parameter。
  add_parameter(l_pl_id,
                'PM_STORE',
                text_parameter,
                :b_order_head.store);
  -- 添加参数PM_ITEM到参数列,并赋值,注意赋值的类型主要有text_parameter、data_parameter两种,text_parameter代表字符串型,而data_parameter并不是代表数值,详细参加参考文档add_parameter。
  add_parameter(l_pl_id,
                'PM_ITEM',
                text_parameter,
                :b_order_detail.item);
  -- 添加参数PM_ITEM_DESC到参数列,并赋值,注意赋值的类型主要有text_parameter、data_parameter两种,text_parameter代表字符串型,而data_parameter并不是代表数值,详细参加参考文档add_parameter。
  add_parameter(l_pl_id,
                'PM_ITEM_DESC',
                text_parameter,
                :b_order_detail.ti_item_desc);

  -- 使用open_form打开form_B并调用参数列
  open_form('form_B',
            activate,
            session,
            l_pl_id);
  -- 异常处理
EXCEPTION
  WHEN form_trigger_failure THEN
    RAISE;
  WHEN OTHERS THEN
    emessage(SQLERRM);
    RAISE form_trigger_failure;
END;

注意,这里往参数列中添加了的PM_STORE、PM_ITEM、PM_ITEM_DESC这几个参数,在form_A、form_B中都应该是已经定义了的。

本文标题:retek中怎么实现form传参调用另一个form

本文链接:http://yedward.net/?id=136

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章