EOVA的下拉级联实现过程
Java大叔 QQ12045440
1.目标是在人员信息添加过程中实现通过下拉框来选取人员的地址信息。
2.创建一个人员信息表,为了明确目标这个表中只有以下字段。
create tableperson
(
id int(11) notnull auto_increment,
name varchar(32)not null comment `人员姓名`,
province int(11) comment`人员所在省(直辖市)`,
city int(11) comment `人员所在的市`,
region int(11)comment `人员所在区县` ,
primary key (id)
)engine=innodb,defaultcharacter set=utf8;
下图是以hotel表为例,请关注其中的关键字段
3.创建一个用来存储地区的信息表,这个表的结构就是可以用字段信息来完成一个级联的父子信息。
create table area
(
id int(11) notnull auto_increment,
name varchar(32)comment `省市区的具体名称`,
lv int(11) comment`层级,用来定义这条记录是省,市,区县的哪一级,1表示省,2表示市,3表示区县`,
pid int(11)comment `表示本条记录的父级是哪条记录,lv=1的就没有父级记录了,就是空的`,
primary key (id)
)engine=innodb,defaultcharacter set=utf8;
下图是area表。
4.说明这样就基本完成了,数据的存储和相关间的关系的设定。也就用人员表来存储人员的信息,并且要记录人员的地址信息,就需要用三个字段来分别记录人员的对应省,市,区县的信息ID值,这样通过表关联查询就可以从area表中查找到一个人员的地址信息。
5.到时EOVA中,首先将这两个表做为元数据,添加到『元数据管理中』。具体的添加方式,请点击『导入元数据』后,按照要求,填写
元数据表(通过点击选取),元对象名称(自己起一个名字),元对象编码三个字段就可以了。下面两个图就是添加好的两个元数据相关内容。
其中要注意的是在添加人员信息这个无数据是还要填写对应的『依赖js』,请看下图中的内容:
这里面填写的依赖js是:/ui/js/diy/area.js
这个文件可以在项目工程中
deaProjects/eova_demo/src/main/webapp/ui/js/diy/area.js
可以找到,代码不是很难可以自己学习查看(后面如果有时间,我也可以考虑写一版带解释说明的和大家一起学习)。
6.按照先后的顺序,选中person元数据表中的province,city,region,三个字段(也就是下元数据表下面部分中的字段)依次对这个字段进行『字段修改』,进入『字段修改』界面,对其中的相关信息,进行修改。主要就是起一个对应的中文名,然后将『控件类型』修改为下拉框。这里需要注意,下拉框,必须要有『表达式』的支持,否则后面会报错。下图就是修改的示意图。
7.表达式,这个细说一下下。因为是通过下拉框来选取,所以一定要在下拉框中有预选找到的值。这里又是通过级联的方式,也就是先找到省的值,再找到市的值,再选取区县的值。级联就是前一级的内容决定后一级的内容是什么,具有范围控制的能力,所以体现出级联的效果很好,也方便使用。再回到EOVA中来说,这里控件类型选择了下拉框,就要在下面的『表达式』项目中,编写对应的表达式。其实这个表达式就是一个简单的SQL语句,它的作用主是如何确定数据的来源。例如:selectid ID, name CN from area where lv = 1
就是要查询出省一级的信息,这个语句的关键点就是通过lv = 1来限定查询条件。
8.菜单管理,当前面的工作完成后,实际上就已经完成了我们的目标。也就是在进行人员管理的时候可以通过级联的方式来管理人员的地址信息。在EOVA中,进入到『平台维护』,选择『菜单管理』,选中一个父级目录节点,然后点击『新增功能』就可以将一个的功能添加到管理菜单中去。
将这个功能添加到菜单中去,就可以实现人员管理了。
9.进入到综合业务中,可以看到刚才添加的『人员管理』条目项,点击后,就可入进入到对应的信息管理页面中。
在这个界面中点击『新增』按钮就可以进行新人员信息的添加功能。
好了,下拉级联的功能就实现了。
10.关键信息,
设计好一个级联信息的存储表
在引入级联信息的表中要设计好对应的字段
在EOVA中元数据管理时要写好对应的JS依赖,这主要是因为前端的实现要求有与后端的交互过程
在元数据管理中要将对应的文本框改为下拉框,并填写对应的表达式
将要管理的条目添加到菜单管理中去。