批量处理

需求:    

2016年12月2号,今天碰到一个问题就是如何选中jsp页面的多条数据,进行批量处理。


效果:



实现思路:

jsp页面

<%@ page contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ taglib uri="/WEB-INF/cvicse-common.tld" prefix="common"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/cvicse-param.tld" prefix="param"%>
<%@ page import="com.cvicse.jr.lbms.la.bo.RentManagementQueryObject" %>
<%@ page import="com.cvicse.jr.lbms.la.bo.Project" %>
<%@page import="com.cvicse.jr.lbms.cs.util.RentPlanUtil"%>
<%
	response.setHeader("Pragma", "no-cache");
	response.setHeader("Cache-Control", "no-cache");
	response.setDateHeader("Expires", 0);
	String path=request.getContextPath();
%>
<script language="JavaScript" src="<%=path%>/js/ajaxbase.js"></script>
<html:html>
<head>
<title>供应商租金批量核销</title>
<common:theme />
<Script language="javaScript">
	
   function toQuery(){
	  document.getElementById("operAtt").value = "querySupplierList";
	  document.forms[0].submit();
   } 		
   //求和计算
   function sum(){     
          var result1=0.0;//利息和
          var result2=0.0;//租金和
          var result3=0.0;//本金和
          var judge = 0;
          var check_array=document.getElementsByName("checkBoxId");
          for(var i=0;i<check_array.length;i++)
          {
              if(check_array[i].checked==true)
              {         
                 
                  var num = check_array[i].value.split("#");               
            	  var num1 = num[4].replace(/,/g,"");//利息
                  var num2 = num[6].replace(/,/g,"");//租金
                  var num3 = num[7].replace(/,/g,"");//本金
                  
                 result1=parseFloat(result1)+parseFloat(num1);
                 result2=parseFloat(result2)+parseFloat(num2);
                 result3=parseFloat(result3)+parseFloat(num3);  
                 judge = judge + 1;             
              }
          }
          re = /(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
        if(judge==0){
            alert("请选择需要核销的期次!");
            return false;
            }
          
          if(!confirm("总计核销租金:"+result2.toFixed(2).replace(re, "$1,")+",本金"+result3.toFixed(2).replace(re, "$1,")+",利息"+result1.toFixed(2).replace(re, "$1,")+"。是否确认?")){return;};
          batchPay();
       }
	   
	

    function toBack(){
    	//window.location.href="supplierRentManagementAction.do?operAtt=query"; 
	//window.location.href="javascript:history.go(-2)";
    	with (document.forms[0]) {
    		operAtt.value="query";
    		isFirst.value="no";
			//action = "supplierRentManagementAction.do";
			submit();
		}
    	
    }


	function selectAll(sign) {
		var multiUserBox = document.forms[0].elements("checkBoxId");
		if (multiUserBox != null) {
			if (typeof (multiUserBox.length) != "undefined") {
				for ( var i = 0; i < multiUserBox.length; i++) {
					var judge = multiUserBox[i].disabled;
					
					if(judge==false){
						multiUserBox[i].checked = sign;
						}	
				}
			} else {
				multiUserBox.checked = sign;
			}
		}
	}

</Script>
</head>
<body>
<common:form action="/supplierRentManagementAction.do">
	

	<table class="border" align="center">
		<TR>
			<TD><html:errors /></TD>
		</TR>
		<tr>
				<td class="pagehead">批量核销列表</td>
		</tr>
		<tr>
			<td>
			<table width="100%" class="grid" align="center">
				<tr>
					<th></th>
					<th>序号</th>
					<th>承租人名称</th>
					<th>项目编号</th>
					<th>项目名称</th>
					
					
				
				<logic:notEmpty name="supplierRentManagementForm" property="footer.dataArray">
				<tbody id="playList1jc">
					<logic:iterate id="rentManagement" property="footer.dataArray"
						name="supplierRentManagementForm" indexId="indexId">
						<%
							int i = indexId.intValue()+1;
							String realRetdayStr="realRetdayStr_" + i + "_";
						    String contractId="contract_" + i + "_";
						    String collectBank="collectBank_" + i + "_";
						    String collectAccount="collectAccount_" + i + "_";
						    String targetsName = collectAccount + ",#,#," +collectBank ;
						%>
						<tr>
							<logic:equal name="rentManagement" property="permbal.retflg" value="1">
							<td style="text-align: center;">
								    <input type="checkbox" name="checkBoxId" id="checkBoxId" disabled="disabled"
									 value="<bean:write name="rentManagement" property="id" />"/>
							</td>
							</logic:equal>
							
					
					</tbody>
				</logic:notEmpty>
				</tr>
			
					<tr>
					<td>全选<input type="checkbox" name="checkProjectId" id="checkProjectId"
							οnclick="selectAll(checked)" /></td>
					
					</tr>
			</table>
			</td>
		</tr>
	
		<tr align="center">
					<td colspan=14 style="text-align:center">
					<INPUT type="button" οnclick="sum()" value="核销确认">
					<INPUT type="button" οnclick="toBack()" value="返回">		
					</td>
				</tr>
	</table>
</common:form>
<script>

function batchPay(){
	//window.location.href="supplierRentManagementAction.do?operAtt=query"; 
	//if(!confirm("是否确定结清?结清后将不能恢复 !")){return;};
       
		document.getElementById("operAtt").value = "batchPay";
		document.getElementById("isFirst").value = "no";
		document.forms[0].submit();
	
	
}

	function advanceRet(prjid,objectNo,ywId,grantId){
		var url = "/cs/supplierRentManagementAction.do?operAtt=supAdvanceRet&projectId="+prjid+"&objectNo="+objectNo+"&ywId="+ywId+"&grantId="+grantId;
		openModalDialog(url,'800px','600px'); 
		//document.getElementById("operAtt").value = "query";
		document.forms[0].submit();
	}

	function supRet(prjid,objectNo){
		var url = "/tools/rentPlanCompanyQueryAction.do?operAtt=queryPlanSup&projectId="+prjid+"&objectNo="+objectNo;
		openModalDialog(url,'800px','600px'); 
		//document.forms[0].submit();
	}

	
</script>
</body>
</html:html>



java类中实现方法:

public ActionForward batchPay(ActionMapping mapping, ActionForm aform,
			HttpServletRequest request, HttpServletResponse response) throws NumberFormatException, Exception {
		
		
		//获得checkbox带来的value
		String[] checkProjectId=form.getCheckBoxId();
		//获得页面上还款账户名称
		String[] collectAccount = form.getCollectAccount1();
		//获得页面上还款银行名称
		String[] collectBank = form.getCollectBank1();
		//或的页面实际还款时间
		Date[] realDate = form.getRealDate();
		//业务编号数组
		String[] ywbh = new String[checkProjectId.length];
		//realId编号数组
		String[] realid = new String[checkProjectId.length];
		//项目编号数组
		String[] prjno = new String[checkProjectId.length];
		//期次数组
		Map map = new HashMap();

		int[] retnum = new int[checkProjectId.length];	
		//次数
		int i=0;
		
		
		
		//改变获得时间的的格式
		SimpleDateFormat ds = new SimpleDateFormat("yyyy-MM-dd");
		String a = ds.format(realDate[0]);
		
		for(int k=0;k<checkProjectId.length;k++){
			String[] part =  checkProjectId[k].split("#");
			
	}







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李晓LOVE向阳

你的鼓励是我持续的不断动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值