Oracle ADF 表实现下拉联动


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

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

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

其中 ssqx 是一个省市联查view

  1. create or replace view v_sys_sysc07sysc08 as  
  2. select a.csqdm,b.csxdm,a.csqmc,b.csxmc,b.njd,b.nwd  
  3. from sysc07 a,sysc08 b  
  4. where a.csqdm = b.csqdm  
之后,在经销商VO如图,得到Csqmc,Csxmc

   

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

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

视图代码为

  1. SELECT   
  2.     SYSC08.CSXDM CSXDM,   
  3.     SYSC08.CSXMC CSXMC   
  4. FROM   
  5.     SYSC08   
  6. where SYSC08.CSQDM = :p_csqdm  
其中 p_csqdm即自己设的参数,准备传进经销商表选择到的省区名称->代码,则在经销商表配置好LOV则实现省市联动。

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

相关内容