ITPub博客

首页 > Linux操作系统 > Linux操作系统 > R12 WEBADI 基于TABLE的LOV详细研究

R12 WEBADI 基于TABLE的LOV详细研究

Linux操作系统 作者:aoyoucxc 时间:2014-09-19 15:12:16 0 删除 编辑
R12 WEBADI 提供了基于Table 的LOV的功能,很方便,但由于LOV的显示或值的提取与component的定义有很大关系,所以特做了几个例子验证一下。
LOV的定义可以在interface的定义界面上做(但component需另外定义),也可以使用API去做,相比较而言,我较倾向于用API. 另外,如用API定义时,不提供component的参数的话,WEBADI会依据LOV的相关信息为我们建立默认的component,但我发现,结果总是差强人意,因此建议,component还是显式定义为好,不要让WEBADI自动建.
有一点不好的是,用API 创建LOV时,依据参数建立的component的默认源是ORACLE,这样的话,我们无法在manager components 的WEB页面中修改这个component(除非你改component code, 好象在前面加_XX_,但这样还要修改bne_interface_cols_b中的component code,很麻烦,因此最好直接后台修改component的信息(在bne_param_list_items_b表中),不要动component code ).

假设
Template 上有三个字段,vendor_id, vendor_num, vendor_name, 要求LOV建在vendor_num上,选择后,提取id, num,name分别到三个字段中。

API 代码:
begin
  bne_integrator_utils.CREATE_TABLE_LOV(P_APPLICATION_ID => 20003
   ,P_INTERFACE_CODE => 'A1_XINTG_INTF1'
   ,P_INTERFACE_COL_NAME => 'VENDOR_NUM'
   --以下为LOV定义参数
   ,P_ID_COL => 'VENDOR_ID'
   ,P_MEAN_COL => 'SEGMENT1'
   ,P_DESC_COL => 'VENDOR_NAME'
   ,P_TABLE => 'ap_suppliers'
   ,P_ADDL_W_C => 'ROWNUM<10'
   ,P_WINDOW_CAPTION => 'Vendor'
   ,P_WINDOW_WIDTH => null
   ,P_WINDOW_HEIGHT => null
   ,P_TABLE_BLOCK_SIZE => null
   ,P_TABLE_SORT_ORDER => null
   ,P_USER_ID => 10653
  --以下为component的定义参数
   ,P_TABLE_COLUMNS => 'VENDOR_ID,SEGMENT1,VENDOR_NAME'  --提取的表的实际字段,即LOV的显示字段
   ,P_TABLE_SELECT_COLUMNS => 'VENDOR_ID,VENDOR_NUM,VENDOR_NAME' --需要提取到template上的字段,需与interface的字段名一致
   ,P_TABLE_COLUMN_ALIAS => 'VENDOR_ID,VENDOR_NUM,VENDOR_NAME' --如果提取的LOV字段名与interface的字段名不一样,需要在此为LOV的字段定义别名,与interface 字段名一致即可
   ,P_TABLE_HEADERS => 'Vendor ID,Vendor Num,Vendor Name'
   );
end;

最终效果如下:

如果仅提取id, num, 不提取name, 则修改成:
P_TABLE_SELECT_COLUMNS => 'VENDOR_ID,VENDOR_NUM'

但如果你仅想提取Vendor NUM,如果你修改成这样的话:
P_TABLE_SELECT_COLUMNS => 'VENDOR_NUM' 

你会发现结果变成了这样:


提取的仍是vendor id, 并且放到了vendor num这个字段上去了...

因此,我们还需要修改这个:
P_TABLE_COLUMNS => 'SEGMENT1,VENDOR_ID,VENDOR_NAME'   
P_TABLE_COLUMN_ALIAS => 'VENDOR_NUM,VENDOR_ID,VENDOR_NAME'
P_TABLE_HEADERS => 'Vendor Num,Vendor ID,Vendor Name'

把segment1 提到第一位去,这样的话,它将被第一个提取出来,放到template中的vendor NUM中.

从上可以看出,LOV定义的各字段都可以显示在LOV中,并且提取到template中,但如何提取,这就要看component 的了...

A.JPG

B.JPG

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28326187/viewspace-1274259/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-03-04

  • 博文量
    14
  • 访问量
    16143