跟我一起学extjs5(42--单个模块的数据新增方式)

跟我一起学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新增的方式类似,这个我还没有做好,只是有这个设想。希望大家对各种数据新增的方式发表意见,看看有没有更好更加方便的方法来进行数据的新增。

这一节是抽空写的,比较乱,希望有人能看懂。

时间: 2024-10-23 14:23:01

跟我一起学extjs5(42--单个模块的数据新增方式)的相关文章

跟我一起学extjs5(11--自定义模块的设计)

跟我一起学extjs5(11--自定义模块的设计) 从这一节开始我们来设计并完成一个自定义模块.我们先来确定一个独立的模块的所能定义的一些模块信息.以下信息只是我自己在开发过程中想到或用到的,希望有新的想法的或者有建议的跟贴回复. 一个独立模块包含以下信息: 1.模块的基本信息 模块ID号:一个数字的ID号,可以根据此ID号的顺序将相同分组的模块放在一块. 模块分组:模块分到哪个组里,比如说业务模块1.业务模块2.系统设置.系统管理等. 模块标识:系统中唯一的模块的标识,一般这个标识等同于数据库

跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])

跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据]) 写了几个月,总算有点盼头了,最终要从后台取得数据了.后台的spring mvc 和 service 仅仅能简单的说说了,里面加了几十个类.有兴趣的下载了源代码自己看.以下画张通用的模块列表取数据的流程,这个流程是适用于全部的模块.我这个后台处理程序也是对全部的模块进行统一处理,包含数据查找,新增,改动,删除都是同样的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==

跟我一起学extjs5(30--加入模块和菜单定义[3后台系统数据的组织和生成])

跟我一起学extjs5(30--加入模块和菜单定义[3后台系统数据的组织和生成]) 对于大多web程序来说,后台是完成控制和处理的,前台就是一个展示工具,这个系统也是这样.在上一节中建立了四个模块,下面开始设计前后台的交互.将系统信息和模块.菜单信息传到前台,由前台来进行展示. 首先新建一个java bean类用来存放各种需要传到前台的数据,里面包括:系统信息.操作人员信息.服务人员信息.模块信息.菜单.现在只加入了这几个,以后还要加入各种 各样的权限设置.在com.jfok.server.co

跟我一起学extjs5(28--加入模块和菜单定义[1建立数据库和表])

跟我一起学extjs5(28--加入模块和菜单定义[1建立数据库和表]) 下面我们开始进入自定义系统的设计和各个组成部分的搭建工作. 首先在sql server中建立数据库,这里的数据的名字我定义为extjs5,然后需要建立模块的定义表,这个表里将存着系统中所有模块的定义信息.为了能有个直观的前后台的互动,先把模块和菜单这二个部分加进去,可以把菜单数据组织好后发送到前台去进行展示. 由于系统中的模块很多,需要分类,因此在先要设计一个"模块分组"的表,对于菜单也是一样,需要有一个&quo

跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据])

跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据]) 上一节中做好了前后台的程序,现在来看看取得数据的运行过程.在菜单中选择 "系统管理"--"模块分组".就可以看到下图,在渲染后grid后,会显示数据. 来看看ajax取得数据的url和数据. url的信息: Remote Address:[::1]:8888 Request URL:http://localhost:8888/app/rest/module/fetchdata.do?_dc=14

跟我一起学extjs5(29--加入模块和菜单定义[2建立java bean])

跟我一起学extjs5(29--加入模块和菜单定义[2建立java bean]) 对上一节中加入的4个模块在java中建立相应的bean文件. 以上表建立好以后,需要建立java bean文件.在建立之前需要加入几个支持类. 先在com.jfok.server.common中建立包annotation,再在下面加入二个类库,这二个是自定义的注释类.分别用来注释每一个模块的信息和模块中每一字段的信息. package com.jfok.server.common.annotation; impor

跟我一起学extjs5(36--单个模块的设计[4根据菜单建立相应的模块])

跟我一起学extjs5(36--单个模块的设计[4根据菜单建立相应的模块]) 前几节处理好了后台,现在又要处理前台了.首先是要修改菜单的选择事件,在创建一个module的时候将 moduleName参数传递进去. 修改MainController.js中的函数: // 选择了主菜单上的菜单后执行 onMainMenuClick : function(menuitem) { var maincenter = this.getView().down('maincenter'); maincenter

跟我一起学extjs5(32--加入模块和菜单定义[4更新菜单(源码下载)])

跟我一起学extjs5(32--加入模块和菜单定义[4根据后台信息更新菜单]) 这一节根据后台传递过来的菜单分组和菜单定义,以及模块定义来更新4种类型的菜单. 按钮菜单和标准菜单的数据格式是一样的,生成的函数都在MainModel.js中,下面将其改一下: // 根据data.tf_MenuGroups生成菜单条和菜单按钮下面使用的菜单数据 getMenus : function() { var items = [], me = this; Ext.Array.each(this.get('tf

跟我一起学extjs5(35--单个模块的设计[3根据类的标注自动生成数据])

跟我一起学extjs5(35--单个模块的设计[3根据类的标注自动生成数据]) 然后在hibernate.cfg.xml中加入: <mapping class="com.jfok.server.hibernate.system._ModuleField" /> <mapping class="com.jfok.server.hibernate.system._ModuleGridScheme" /> <mapping class=&qu