复合LOV的实现

概述:在实际应用中,经常会用到对于同一个属性使用不同LOV,本技巧主要介绍了对于同一属性使用多个LOV的方法,以及不同LOV之间切换的方法。场景:
1、     定义新员工时,根据员工学历的不同,使用不同LOV选择起薪范围
2、     根据职位不同,LOV中显示的内容也不同或需使用不同LOV显示内容
3、     其他应用场景
下面我们以EmployeesVO中的DepartmentID属性为例,根据员工Salary的不同为该属性添加使用不同LOV,以显示不同内容。

实现:1、创建新应用后,创建 Entity ObjectEmployeesEO ,该EO基于数据库中的 Employees表,可以看到其关联(EmpManagerFkAssoc)被自动创建。

2、创建基于1中创建的EOView ObjectEmployeesVO

3、创建名为 EmpManagerFkLinkView Link ,在“Selected Source Attribute”和“ Selected Destination Attribute”中都选择EmployeesVO中的 EmpManagerFkAssoc,点击“OK ”完成。

4、创建 DepartmentId 的LOV 数据源 VO DepartmentLOV ),并设置 DepartmentId属性为 Key Attibute ,其SQL 如下:
SELECT Departments.DEPARTMENT_ID,
    Departments.DEPARTMENT_NAME,
 Departments.MANAGER_ID,
Departments.LOCATION_ID
FROM DEPARTMENTS Departments



5 、为 EmployeesVO 中的 DepartmentId 属性添加两个 LOV ,其 List Data Source 均选择为前面创建的 DepartmentsLOV DepartmentsLOV1 ), List Attribute DepartmentId List Return Values 使用默认,即 DepartmentId-DepartmentId ,在 UI Hints 中设置不同的显示项,分别如下:
6 、为 DepartmentId   属性添加   LOV Swicher ,单击选中该属性,在“   List of Values: DepartmentId ”中设置   List Type UI Hint Input Text with List of Values   ,在 List of Values Switcher 点击新建,命名为   lovSwitcher ,在“ Edit Attribute: lovSwitcher   ”面板中选择   Value Type Expression   ,添加 Value 内容,即   Groovy 脚本,以判断使用哪个 LOV ,在这里根据   Salary 进行判定(若 Salary>10000 ,使用   LOV_DepartmentId1 ,若 Salary<=10000   ,使用 LOV_DepartmentId
设置默认显示的LOV
7、新建页面,命名为   Main  ,为方便扩展功能,产生出了其   Backing Scope  Managed Bean
 7.1 、选中并点开“   Data Controls  ”中“ AppModuleDataControl   ”内的  EmployeesVO2 (与   AM  中名字相同,不一定为该名),继续点击“   Named Criteria  ”,将 All Queriable Attributes   拖动到页面中,选择   ADF Query Panel with Table  ,根据需要调整显示属性,完成后确定。
7.2 、在“   Structure  ”面板中选择  af:table – redId1 ,双击打开其属性编辑器,选择“   Columns  ”项设置所有属性(除  lovSwitcher )的“   Component To Use  ”为输入类型控件。
最后结果:
     在Search 区中在Salary选项中填入 9999<10000 ),DepartmentId此时使用的 LOVLOV_DepartmentId ,显示DepartmentId DepartmentName两项。
下面是填入10001的结果:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值