跟我一起学extjs5(42--单个模块的数据新增方式)
前面的章节中已经加入了一个自定义的模块,并且可以进行数据的新增、修改、删除的操作了,在这个基础上就可以大作文章了。这一节来设想几种新据新增的方式,并给出一些具体的解决方案。
看了我后台java源码的可以看出,所有的模块的新增、修改、删除全部是相同的处理,只是用了反射来生成各个实体bean,这样不管你有多少个业务bean,你的这部分代码是不用再增加了,只需要考虑一些逻辑处理上的操作即可,这些在后面会提到。基于这样的方式,我们可以定义多种数据的新增方案,比如现在程序里已经有的二种,一种是直接新增,还有一种是复制新增。
在实际使用过程中这二种方式肯定是不够的,因此可以设计出以下几种:
- 单条excel数据新增;
- 多条excel数据新增;
- 单条记录拷贝到剪切板新增;
- 多条记录拷贝到剪切板新增;
下面分别对这几种方式的实现方式作下说明:
一、单条excel数据的新增:这种方式对于字段很多的表比较适用,首先定义好一个excel表用来填写每一条记录。对于我们上一节中加入的销售合同模块,我们可以作一张以下的excel表:
做好这张表之后,我们需要设置一下字段对应的单元格子,就是哪个字段是填数据的,比如上表中合同编码就填在B2单元格内,签订日期填在D2单元格内。
tf_code=B2;
tf_signDate=D2;
tf_name=B3;
tf_customerNme=B4;
........
4.专门有一个模块是管理数据单条Excel新增的,将这些字段设置放到这个模块的管理“销售合同”的那条记录下,把对应关系设置进去,然后把上面的excel文件上传。
5.合同管理的新增按钮下会有一个菜单条,“excel单条记录上传新增”,按下后会显示一个上传文件的窗口,选择添好数据的新增的excel文件,上传即可。文件上传不管成功不成功都会返回结果。
6.文件上传的操作也会自动记录到操作日志中,会把上传的文件也保存在里面。
7.在模块的右上角会有一个设置按钮,在这个按钮下会增加一个"下载单条记录excel新增的模板文件” 的菜单条,按此菜单荐,就可以把上面做好的那个模板文件供用户下载了填写数据。
通过以上几步,就可以完全在前台增加一个模块的单条记录excel上传的功能,此功能增加好以后直接刷新网页就直接能用了。
二、多条excel数据新增;
多条数据excel新增的过程比单条的还要少,还要方便。
1.在模块字段的属性中有一个 是否允许excel导入的字段。在java的 _ModuleField中,此字段的定义如下:
@JsonIgnore
@FieldDefine(title =
"Excel导入", remark = "Excel导入新增时加入此字段可新增", number = 240)
private Boolean
tf_allowInsertExcel;
2.将需要导入的字段的该值设置为true;
3.将所有需要在多条excel导入新增时加入的字段的该值设置为true;
4.设置该模块的 “允许多条excel导入” 选项为true;
5.刷新网页;可以在模块的右上角的设置按钮下面下载用于多条新的的excel的模块文件。
6.根据模块文件中的一些提示将此excel文件中的数据填好;
7.在新增的按钮下,会有一个 “多条excel文件新增”的按钮,按下之后将会上传你填写好的excel文件。
8.后台对每一条数据进行新增,新增的结果会写在数据列后面的一列上;
9.新增好后会显示一共增加了多少条,有多少失败,可以下载处理好的写有每条记录新增成功或失败(有失败的原因)的excel表。
10.新增的信息会加入到日志文件中,以后可以下载新增这表文件。
以上二种新增方式是在实际使用中我用到的,在原来的extjs4.2的版本中已经实现了,具体的可以看extjs4.2 的那个博客,在extjs5的版本中还没有加入,上面讲述的只是基本原理。
单条记录和多条记录拷贝到剪切板新增的过程应该和上面多条excel新增的方式类似,这个我还没有做好,只是有这个设想。希望大家对各种数据新增的方式发表意见,看看有没有更好更加方便的方法来进行数据的新增。
这一节是抽空写的,比较乱,希望有人能看懂。