保险录入系统总结

功能点描述:

1.实现根据Execl模板,进行雇主责任险的导入。

2.Execl全部导出和批量导出。

3.保险信息的删除。

4.保险显示具体的人数信息。

5.微信企业号通讯录的获取展示。

6.企业分子公司基础信息的管理。

 

学习到的知识:

1.导入Execl的方法,可以参考之前的博客:导入Execl

2.导出Execl:

   基本的手段和Execl导入相同,都是用POI进行操作。

 XSSFWorkbook wb = new XSSFWorkbook();  //通过XSSFWorkbook生成的是.xlsx文件。
          //建立新的sheet对象(excel的表单)
          XSSFSheet sheet=wb.createSheet("雇主责任险");
          //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
          XSSFRow row1=sheet.createRow(0);
          //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
          XSSFCell cell=row1.createCell(0);
                //设置单元格内容
          cell.setCellValue("投保流水号");
          //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
          sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));  //进行行和列的合并
          cell=row1.createCell(1);
           cell.setCellValue("被保险人名称");
          sheet.addMergedRegion(new CellRangeAddress(0,1,1,1));
          cell=row1.createCell(2);
          cell.setCellValue("所属体系");
          sheet.addMergedRegion(new CellRangeAddress(0,1,2,2));
          cell=row1.createCell(3);
          cell.setCellValue("是否附加二十四小时条款");
          sheet.addMergedRegion(new CellRangeAddress(0,1,3,3));
          cell=row1.createCell(4);
          cell.setCellValue("年度");
          sheet.addMergedRegion(new CellRangeAddress(0,1,4,4));
          cell=row1.createCell(5);
          cell.setCellValue("投保方案");
          sheet.addMergedRegion(new CellRangeAddress(0,1,5,5));
          cell=row1.createCell(6);
          cell.setCellValue("投保总人数");
          sheet.addMergedRegion(new CellRangeAddress(0,1,6,6));
          row1.createCell(7).setCellValue("人员清单");
          sheet.addMergedRegion(new CellRangeAddress(0,0,7,11));
          XSSFRow row2=sheet.createRow(1);
          row2.createCell(7).setCellValue("姓名");
          row2.createCell(8).setCellValue("身份证号");
          row2.createCell(9).setCellValue("职位类别");
          row2.createCell(10).setCellValue("申报日期");
          row2.createCell(11).setCellValue("人员用工方式");

OutputStream output=response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=details.xls");
response.setContentType("application/msexcel");
wb.write(output);
output.close();

这个方法是写在servlet中。设置application/msexcel 指导出为execl格式,attachment会提示还是直接打开。

3.微信企业号的接口的使用,主要是对返回json串的操作,其中对部门的树形结构的设置和显示。可以参考之前博客:ul li多级列表的显示,和微信企业号接口调用。

4.企业组织机构代码的管理,其中使用的一个网上的搜索框,个人感觉挺好看。

其他的部门增删改,都是比较正常的。这次增加和修改的方法也使用了和之前不一样的方法。

之前修改,都是点击修改按钮,将原来<td></td>显示文字的部分,改变为<input type="text">

这次是使用和增加相同的样式,也是使用的一个开源的jquery.点击时text文本框的样式,很简洁。

5.批量导出的功能思考的挺长时间,虽然日常生活中特别多,删邮件啊..的示例,但是自己写的时候不怎么会。

最终的实现方式是:在<table>中每行增加一个<td>里面是<input type="checkbox">设置display:none

当点击了批量导出时,会显示。并且通过向servlet传送sheetid的list。

效果是:

实现的代码:

<TR align="center" id="show<%=plan.getEmployplanid()%>">
        <td><input type="checkbox" id="checkboxs<%=i%>" style="display:none"/></td>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getEmployplanid() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getCompanyname() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getInsurname() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getYear() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getNumbers() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getPlantype() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getLimitfee() %></TD>
        <TD align="center" οnclick="show(<%=plan.getEmployplanid()%>)"><%=plan.getIsadmit() %></TD>
        <TD><button id="delete" οnclick="del(<%=plan.getEmployplanid()%>)">删除</button></TD>   
       
</TR>

  js的代码:

function ExportSome(size){
//	alert(size);
	  for(var i=0;i<size;i++){
		  var checkbox=document.getElementById("checkboxs"+i);
		  //alert(checkbox);
		  checkbox.style.display="block";
	  }
	  document.getElementById("exportexecl").style.display="block";	      
}

function confirmExport(){
var arrayindex="";
var size=<%=size%>;
//alert(size);
for(var i=0;i<size;i++){
var checkbox=document.getElementById("checkboxs"+i);
if(checkbox.checked){
arrayindex=arrayindex+i+",";
}
}
//alert(arrayindex);
var url="../ExeclExport?type=some&list="+arrayindex;
window.location.href=url;
}

 js中不能通过url传数组类型,所有通过以,隔开的方式传递string.

其实也可以以json的方式组织传给后台

 

3.以前没有注意,虽然知道怎么写,但是不记得具体的语法,每次都是上网搜一下。

1.设置div背景:

<div style="height:800px;width:1100px;margin-left:20%;margin-top:2%;background-image:url('../pages/common/background.jpg');">

2.a:hover a 设置不显示下划线:

text-decoration:none.

3.<input type="text"> 点击时不显示边框:

style="border:none;outline:medium;"  

4.text文本框当鼠标经过时清空,离开时显示原来。

<input type="text" id="s" name="name" style="border:none;outline:medium;" value="名称搜索" class="swap_value" οnfοcus="if (value =='名称搜索'){value =''}"οnblur="if (value ==''){value='名称搜索'}" /> 

5.对于按钮的圆角和直角控制:

.clickButton{
	 border-bottom: #93bee2 1px solid;
     border-left: #93bee2 1px solid;
     border-right: #93bee2 1px solid;
     border-top: #93bee2 1px solid;
	 float:left;
	 height:30px;
	 width:100px;
	 -webkit-border-top-left-radius:10px;  指的是左上角会有一个圆角  10px控制弧度  Google等
	 -webkit-border-top-right-radius:10px;
	 -ms-border-top-left-radius:10px;  指IE类的浏览器
	 -ms-border-top-right-radius:10px;
	 -moz-border-top-left-radius:10px;  火狐特定浏览器
	 -moz-border-top-right-radius:10px;
	  border-top-left-radius:10px;
	 border-top-right-radius:10px;
	 font-size: 12px;
	  font-weight:bold;
	   background-color: #c5c6c7;
	   outline:0;
	  
}

  可能还是会存在不兼容问题.

效果:

 

当时查询的时候:有人提出可以自己设计图片,一个半圆,一个直角形,一个半圆,在直角形上加按钮或<a>.没有实践,但是应该可以实现。

6.<form action=“...”>中action中的url是不可以带参数的。可以通过

<input type=hidden name="type"  id="type"> 

  使用一个hidden。

其实还有许多种方法。

当设置有一个操作之后有反馈,可以在原界面上<div style="display:none"></div>

js获得这个div设置block和里面的内容。

7.<div>中小的<div>,小的<div>设置margin-top的时候,变成外部的<div>的属性了,可能是相对的物不同,其实没有太懂。

但是是找到解决方法的:

外部的div设置:position:relative;

内部的div设置:position:absolute.

 

暂时就总结以上这些,再想到的话继续总结。

之后想尝试一些前端好看的框架,之前都是自己写,不好看而且费力。 gerrrr

后端也是沿用以上j2ee项目用工厂模式管理dao.并且使用原生的语句preparedstatement操作链接mysql.

本来想用框架的,但是还是因为怕尝试新的东西....但是实际上用hibernate会减轻许多工作。

 

转载于:https://www.cnblogs.com/bounceFront/p/5591305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值