导入数据之后提交前做判断格式

楼主
我是社区第66158位番薯,欢迎点我头像关注我哦~
有好多上报模板都需要用到导入这个功能,但是根据导入这个功能导入Excel,然后点击提交,数据进到库里就会变成页面上显示的内容,比如:
这个是我做的一个模板,在省份这个字段中导入了几个值,点击提交之后,数据库中省份这个字段下面的值就会变为广东什么的,但是实际情况大部分不会是这样,一般来说都是放在数据字典里,数据表中只是存编码,比如广东我们数据库的编码就是440104。还有可能比如这里我需要的省份,但是由于工作中的失误导致,这个Excel中有个值写的不是省份而是区,这样的话如果不做判断也会入库,倒是会导致数据错误。
根据这个情况,我想了一个解决方法:
首先定义一个自定义按钮,然后设置为提交

然后编辑他的自定义事件。
  1. var t =new  Array();  ; //创建一个数组
  2. for(var i =0;i<$("td[col=0]").length;i++){
  3.         t[i]=$("td[col=0]").eq(i).text();
  4.         }
  5.         //把需要校验的单元格的值存到数组中
  6. var s=a;//查询数据库获取到需要比较的列
  7. for(i=1;i<s.length;i++) {
  8. if(jQuery.inArray(t[i].toString(),s)==-1)
  9. {
  10.         alert(t[i]+"是第"+i+"个");
  11.         return;
  12. }
  13. else
  14. {
  15.         alert("没有错了");
  16.         _g('${sessionID}').verifyAndWriteReport();
  17.         return;
  18.         }
  19. }  //循环判断页面上这一列和数据库中的字段是否相同
复制代码
在这里还需要添加一个参数

这个参数我获取的是我数据字典中的值:sql("test","SELECT name FROM [dbo].[img]",1)
直接获取的是一列,返回一个数组。
这样如果导入之后这一列有值和我数据库中字典表中的值不一致就会给出提示。
接下来我们要修改填报属性

因为上面已经把单元格的值都规范了,所以这里直接获取到单元格的值,然后根据单元格的值在字典表中查询出他对应的编码值就可以了
比如我这里写的:sql("text","SELECT id FROM img where name='"+a2+"'",1,1)
由于我的js水平不是很高,如果大家有更好的解决方法可以和我联系一起研究,由于工作的原因,导入这个功能特别常用,但是目前总是感觉这个功能不是很稳定还是需要优化。
比如刚刚就出现了一次表头是富文本,结果这一列的数据就导不进来。
编辑于 2017-12-19 17:47  
分享扩散:

沙发
发表于 2017-12-20 08:20:53
恩,你这个方式倒也可以,但一般我做的的时候是通过公式判断的,可以加入一个隐藏列,通过你导入的城市去和数据字典匹配查到返回内容查不到就是空,那么提交的时候做一个判断就可以了。不知道是否和你的效果一致仅供参考
板凳
发表于 2017-12-20 08:40:44
yiminglian 发表于 2017-12-20 08:20
恩,你这个方式倒也可以,但一般我做的的时候是通过公式判断的,可以加入一个隐藏列,通过你导入的城市去和 ...

嗯  是一样的,我试过用隐藏列 然后还有试过直接用系统自带的校验来校验的,但是我觉得还是写js方便一点,因为每次都是好多页面都需要导入,每个页面都配置一遍太慢了
地板
发表于 2017-12-20 08:42:14
1176846029 发表于 2017-12-20 08:40
嗯  是一样的,我试过用隐藏列 然后还有试过直接用系统自带的校验来校验的,但是我觉得还是写js方便一点 ...

是很酷
5楼
发表于 2017-12-20 17:21:55
6楼
发表于 2017-12-20 17:36:19
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

5回帖数 1关注人数 4026浏览人数
最后回复于:2017-12-20 17:36

返回顶部 返回列表