EBS WebADI:Web ADI开发@Excel LOV

本例是基于上一章节进行的,主要是实现Excel中LOV的功能。

1. 定义字段与LOV组件的关系
在PL\SQL select … for update 直接修改基表

SELECT bic.interface_col_name       --字段名 
      ,bic.val_type                 --填 TABLE 
      ,bic.val_id_col               --传递给程序参数的字段,填 ORGANIZATION_ID 
      ,bic.val_mean_col             --在Ecxel中显示的字段, 填ORANIZATION_ID 
      ,bic.val_desc_col             --LOV中说明字段,填ORGANIZATION_CODE,ORGANIZATION_NAME 
      ,bic.val_obj_name             --列表所在的表明,填ORG_ORGANIZATION_DEFINITIONS 
      ,bic.val_addl_w_c             --where语句,可不填 
      ,bic.val_component_app_id     --application id,SELECT bni.application_id FROM bne_integrators_vl bni WHERE bni.user_name = 'CUX_WEBADI_DEMO';
      ,bic.val_component_code       --组件代码,填 CUX_ORGANIZATION 
      ,bic.lov_type                --填POPLIST或STANDARD,也可以填NONE 
      ,bic.offline_lov_enabled_flag --离线编辑EXCEL表格时是否可用,填Y 
FROM bne_interface_cols_b bic
WHERE EXISTS (
          SELECT NULL 
            FROM bne_interfaces_vl intf ,bne_integrators_vl intg --集成器 
           WHERE bic.interface_code = intf.interface_code 
             AND intf.integrator_code = intg.integrator_code 
             AND intg.user_name = 'CUX_WEBADI_DEMO') 
AND bic.interface_col_name = 'P_ORGANIZATION_ID' 
FOR UPDATE;

在这里插入图片描述
val_id_col:传递给程序参数字段。本列中只需要传值给P_ORGANIZATION_ID,故 只需要填 ORGANIZATION_ID
如果还定义了参数P_ORGANIZATION_CODE,则需要填写ORGANIZATION_ID, ORGANIZATION_CODE。

val_mean_col:在Excel中显示的字段。本列中需要显示的是库存组织ID,故只需要填写一个ORGANIZATION_ID。
如果需要显示的是库存组织代码,则填写 ORGNIZATION_CODE(传值还是可以传给ORGANIZATION_ID的,只是在界面上显示的 是库存组织代码)。如果同时在excle界面上显示库存组织ID,库存组织代码,则
ORANIZATION_ID,ORGANIZATION_CODE两个都需要输入。

val_desc_col:LOV中的说明字段,可以是一个字段,也可以是多个字段。

2. 创建LOV组件

--通过前面定义的val_component_code来获取application_id, val_component_app_id, val_component_code
SELECT b.application_id, 
b.val_component_app_id, 
b.val_component_code          
  FROM bne_interface_cols_b b
 WHERE b.val_component_code = 'CUX_ORGANIZATION';

--LOV组件基表中插入数据
--select * from bne_components_b where component_code = 'CUX_ORGANIZATION';
INSERT INTO bne_components_b (application_id, component_code, object_version_number 
            ,component_java_class, param_list_app_id, param_list_code 
            ,created_by,creation_date,last_updated_by,last_update_login,last_update_date) 
    VALUES (20003                   --对应BNE_INTERFACE_COLS_B.VAL_COMPONENT_APP_ID 
           ,'CUX_ORGANIZATION'      --对应BNE_INTERFACE_COLS_B.VAL_COMPONENT_CODE 
           ,1 
           ,'oracle.apps.bne.integrator.component.BneOAValueSetComponent' --Oracle标准的代码 
           ,20003 --参数应用ID 
           ,'CUX_ORGANIZATION'      --参数的代码名称,这个参数很重要
           ,-1,SYSDATE,-1,-1,SYSDATE);

--LOV组件语言表中插入记录
--select * from bne_components_tl where component_code = 'CUX_ORGANIZATION';
INSERT INTO bne_components_tl(application_id,component_code,LANGUAGE 
           ,source_lang,user_name,created_by,creation_date,last_updated_by 
           ,last_update_login,last_update_date) 
    VALUES (20003                --对应bne_components_b.application_id
           ,'CUX_ORGANIZATION'   --对应bne_components_b.component_code
           ,'ZHT'                --ZHS:简体  ZHT:繁体  US:英文
           ,'ZHT'                --ZHS:简体  ZHT:繁体  US:英文
           ,'库存组织'           --参数说明 
           ,-1,SYSDATE,-1,-1,SYSDATE);

3. 定义参数
基于现有参数复制参数 (Desktop Integration Manager -> Define Parameter)
把Restrict to this application前面的勾去掉
EBS WebADI:Web ADI开发@Excel LOV_第1张图片
可以使用Oracle系统原有的一个参数(如:COMP_AVG_JNL_FLAG)来创建客户化应用的参数及属性。
EBS WebADI:Web ADI开发@Excel LOV_第2张图片

EBS WebADI:Web ADI开发@Excel LOV_第3张图片
EBS WebADI:Web ADI开发@Excel LOV_第4张图片EBS WebADI:Web ADI开发@Excel LOV_第5张图片
CUX_ORGANIZATION 库存组织
CUX Customized Application
CUX_ORGANIZATION

更改参数属性
同上,%CUX_ORGANIZATION 查找
EBS WebADI:Web ADI开发@Excel LOV_第6张图片
EBS WebADI:Web ADI开发@Excel LOV_第7张图片修改table-columns属性
EBS WebADI:Web ADI开发@Excel LOV_第8张图片
修改table-column-alias属性
EBS WebADI:Web ADI开发@Excel LOV_第9张图片
修改table-select-column属性
EBS WebADI:Web ADI开发@Excel LOV_第10张图片
修改table-headers属性
EBS WebADI:Web ADI开发@Excel LOV_第11张图片
修改window-width属性
EBS WebADI:Web ADI开发@Excel LOV_第12张图片

4. 使用LOV
重启Apache服务器
LOV调用的是Servlet类,必须重新加载方能够生效。 如果修改了属性值,是不需要重启应用的。
只有update基表 bne_interface_cols_b中的值的时候,才需要重启应用。

测试LOV
没有重启Apache服务器的权限,暂时没有测试

5. 补充. Excel中实现日期LOV功能
通过如下的标准API来创建:

BEGIN
 bne_integrator_utils.create_calendar_lov
         (p_application_id    => 20003,           --Your custom application
          p_interface_code    => 'GENERAL_1_INTF',--Your custom interface code
          p_interface_col_name=> 'P_DATE',        --Your date_item ininterface
          p_window_caption    => '选择日期',      --Window Prompt
          p_window_width      => NULL,            --Use default
          p_window_height     => NULL,            --Use default
          p_table_columns     => 'ADI_DATE',      --Your table date_fields
          p_user_id           => 0);
END;
--参数可通过如下SQL查询
select * 
 from bne_interface_cols_b bic 
where application_id = (SELECT bni.application_id  
                          FROM bne_integrators_vl bni 
                          WHERE bni.user_name = 'CUX_WEBADI_DEMO')
  and bic.interface_code =
        (SELECT distinct intf.interface_code 
           FROM bne_interfaces_vl intf ,bne_integrators_vl intg 
          WHERE intf.integrator_code = intg.integrator_code 
            AND intg.user_name = 'CUX_WEBADI_DEMO')

效果:
EBS WebADI:Web ADI开发@Excel LOV_第13张图片

你可能感兴趣的:(EBS,WebADI)