OAF Lov 带出描述消失

来源:这里教程网 时间:2026-03-03 13:59:41 作者:

OAF开发中会碰到这样的需求.

 

为字段1做一个Lov,选中后返回值1到字段,值2到字段2.

 

比如要为员工编号这个字段添加Lov,当用户选择员工编号后,需要将员工姓名自动带入到员工名称字段中。

需求

员工姓名这一列作为带出信息,一般会设置为 MessageStyledText这种不可修改的类型。

这时,问题就出现了。

你会发现,当选择员工编号后,员工姓名自动带了出来,然而,当再次点击页面上任何一个lov的时候,员工姓名会自动消失掉。

在第二次点击Lov的时候,带出信息就已经消失了 我们最终会看到这样的结果

这个现象会让人很困惑,因为我们不允许新建行时修改员工姓名,它只能作为员工编号的一个附加的信息,所以我们必须把它设置成为静态文本类型(MessageStyledText),而这样的话,它的值却无法正常地保存下来。(即便将其设置为其他类型采用disable的方式使其不可更改,也无法避免此种问题)。

 

通过观察Oracle供应商税信息设置页面的源代码,我发现了以下解决方法。

 

1. 我们需要新建一个隐藏的Item 叫做 nameSubmit,其类型为FormValue,ViewInstance以及ViewAttribute属性与员工姓名一致。

2. 我们将为Lov新增一个Mapping,将员工姓名映射到nameSubmit上面。所有Lov Mapping如下:

  Lov Columns        page columns

----------------------------------------------------- 

  emp_number =>   page.user_number

  emp_name   =>   page.emp_name

  emp_name   =>   page.nameSubmit 这样我们相当于同时将员工姓名存储在了两个Item中(emp_name与nameSubmit)。存储在formvalue中的值不会因为页面切换提交而消失,这样我们再次点击Lov按钮时,员工姓名就不会消失了。

相关推荐