Oracle ADF 表实现下拉联动

来源:互联网 发布:jsp javabean 获取数组 编辑:程序博客网 时间:2024/05/17 15:01

一张业务表中有字段:省区名称(Csqmc),省区代码(Csqdm),市县名称(Csxmc),市县代码(Csxdm)。
通过选择省区名称,实现市县名称联动。

1.经销商表中本未有Csqmc和Csxmc两个字段,在Query中写入SQL语句,查询出经销商表本身有的字段,并且

select ssqx.sqmc ,ssqx.sxmc where 经销商表.sqdm = ssqx.sqdm

其中 ssqx 是一个省市联查view

create or replace view v_sys_sysc07sysc08 asselect a.csqdm,b.csxdm,a.csqmc,b.csxmc,b.njd,b.nwdfrom sysc07 a,sysc08 bwhere a.csqdm = b.csqdm

之后,在经销商VO如图,得到Csqmc,Csxmc

2.之后依次关联省区名和市县名.
在省区名进行LOV配置

list data source选择 省表的VO,list Attribute选择省表的Csqmc.之后把list Attribute和本View Attribute进行关联,(因为要求省区名称变动,省区代码也随之变动,所以在List return value里再把07表的Csqdm也进行关联,在UI Hints进行 控件类型选择及在控件中显示的内容设置。)

3.市县名称也类似上面操作,但是由于省市名称要求联动,所以原理是,省区选择好后,要把省区代码传递到一个参数里,用where语句比较市县表中的Csqdm和此参数(可以建视图完成)。

视图代码为

SELECT     SYSC08.CSXDM CSXDM,     SYSC08.CSXMC CSXMC FROM     SYSC08 where SYSC08.CSQDM = :p_csqdm

其中 p_csqdm即自己设的参数,准备传进经销商表选择到的省区名称->代码,则在经销商表配置好LOV则实现省市联动。

4.在表现层的联动操作,省区名称控件要设置autosubmit()为真,市区名称控件要设置partrialtrriger为真,即省区名称值变动则局部提交,市区名称触发器监听省区名称控件实现联动。