代码
<%@ page language="java" import="java.util.*, com.tisson.java.*, com.tisson.beans.*, com.tisson.hibernate.*,java.io.*" pageEncoding="UTF-8"%>
<%@ page import="sun.jdbc.rowset.CachedRowSet"%>
<%@ page import="com.gdhit.app.consts.SysConst"%>
<%@ page import="com.gdhit.app.session.*"%>
<%@ taglib uri="SelectTagLib" prefix="SelectTagLib"%>
<%@ taglib uri="SelectArrayTagLib" prefix="SelectArrayTagLib" %>
<%
//设置页面不缓存
//response.setHeader("Pragma","No-cache");
//response.setHeader("Cache-Control","no-cache");
//response.setDateHeader("Expires", 0);
/*****************当前用户信息*********************/
CachedRowSet userInfo = null;
userInfo = (CachedRowSet) SessionRegister.getUserProperty(SessionRegister.USERTYPE_OPERATOR, request.getRemoteAddr(),SysConst.SESSION_OPERATOR_INFO);
String userID = null;//用户ID
String userDeptID = null;//部门ID
String userDeptName = null;//部门名称
String roleId = null;//角色ID
if (userInfo != null) {
userInfo.beforeFirst();
if (userInfo.next()) {
userID = userInfo.getString("OPERATORID");
userDeptID = userInfo.getString("GROUPID");
userDeptName = userInfo.getString("GROUPNAME");
roleId = userInfo.getString("ROLEID");
}
}
else {
response.getWriter().print("<script> alert('请先登录!');</script>");
return;
}
String bid = request.getParameter("bid");
String nodeid = request.getParameter("nodeid");
BpmNodeinstanceUtil nodeInstanceUtil = new BpmNodeinstanceUtil();
ComWholeInfoUtil comUtil = new ComWholeInfoUtil();
boolean hasData = false;
List undoTasks = nodeInstanceUtil.getBidCountDepartData(bid, nodeid);
DPTransition tran = new DPTransition();
int size = undoTasks.size();
if(size > 0 ) {
hasData = true;
}
%>
<html>
<head>
<title>汇总统计界面</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../css/css.css">
<script language=javascript>
var close_img_url = "arrowdown.gif";
var expend_img_url = "arrowup.gif";
//根据图标将一个节点下的所有子节点打开或关闭
function doTreeNode(img)
{
if(/arrowup/.gif$/.test(img.src.toLowerCase()))
{
var trId = img.id.replace(/^img_/, "");
var obj = document.getElementById(trId);
hiddenSelfAndChildrenNodes(obj, false);
img.src = close_img_url;
}
else
{
var trId = img.id.replace(/^img_/, "");
var obj = document.getElementById(trId);
showChildrenNodes(obj);
img.src = expend_img_url;
}
}
function hiddenSelfAndChildrenNodes (obj, bool)
{
var pId = obj.id;
if (pId == "") return;
var cNodes = tbDataList.rows;
var l = cNodes.length;
for (var i = 0; i < l; i++)
{
var node = cNodes[i];
var selfPId = node.getAttribute("parentid");
if (selfPId != null && selfPId != "" && selfPId == pId)
{
hiddenSelfAndChildrenNodes(node, true);
}
}
changeImgByTrObj(obj, 0);
if (bool)
{
obj.style.display = "none";
}
}
function showChildrenNodes (obj)
{
var pId = obj.id;
var cNodes = tbDataList.rows;
var l = cNodes.length;
for (var i = 0; i < l; i++)
{
var node = cNodes[i];
if (node.getAttribute("parentid") == pId)
{
node.style.display = "";
}
}
}
function changeImgByTrObj(obj, n)
{
var imgId = "img_" + obj.id;
var img = document.getElementById(imgId);
if(img == null) return;
img.src = (n == 1) ? expend_img_url : close_img_url;
}
function expendAll()
{
window.status ="处理中请稍候...";
var obj = document.getElementsByTagName("img");
for(var j=0; j < obj.length;j++)
{
if(/arrowdown/.gif$/.test(obj[j].src.toLowerCase()))
{
doTreeNode(obj[j]);
}
}
window.status="";
}
function closeAll()
{
window.status ="处理中请稍候...";
var obj = document.getElementsByTagName("tr");
for(var j=0;j<obj.length;j++)
{
if(obj[j].parentid != null && obj[j].parentid==0)
{
var imgobj = document.getElementById("img_"+obj[j].id);
if (imgobj != null && /arrowup/.gif$/.test(imgobj.src.toLowerCase()))
{
doTreeNode(imgobj);
}
}
}
window.status="";
}
function downloadEvent(){
<%
if(hasData) {
File sourcefile = new File(application.getRealPath("/")
+ "//reports//sourceFiles//CollectView.xls");
File targetfile = new File(application.getRealPath("/")
+ "//reports//targetFiles//CollectView.xls");
boolean readSuccess=false;
if(targetfile.exists()){
targetfile.delete();
}
readSuccess=ReadXls.readCollectView(sourcefile, targetfile,undoTasks);
if(readSuccess && targetfile.exists()){
%>
window.open("../reports/targetFiles/CollectView.xls");
<%
}
} else {
%>
alert("无数据!");
<%
}
%>
}
</script>
</head>
<body οnlοad="closeAll();">
<br>
<center>
<form method="post" name="frm1">
<table boder="0" width="98%">
<tr><td align="right"><input type="button" class="button" value="导出申请统计表" style="width:100px" οnclick="downloadEvent();"></td></tr>
</table>
<table width="98%" border="1" id="tbDataList" cellspacing="0" cellpadding="0" align="center" bordercolorlight="#bdbec0" bordercolordark="#ffffff">
<tr parentid="0" bgcolor="#ced9e7" height="19">
<td colspan="3" rowspan="3" style="width:16%"><div align="center">分公司名称</div></td>
<td rowspan="3"><div align="center">人数</div></td>
<td colspan="5"><div align="center">已配置</div></td>
<td colspan="8"><div align="center">申请新增</div></td>
<td colspan="5"><div align="center">申请报废更换</div></td>
</tr>
<tr parentid="0" bgcolor="#ced9e7" height="19">
<td colspan="2"><div align="center">台式机</div></td>
<td colspan="2"><div align="center">笔记本</div></td>
<td rowspan="2"><div align="center">打印机</div> <div align="center"></div></td>
<td colspan="2"><div align="center">台式机</div></td>
<td colspan="2"><div align="center">笔记本</div></td>
<td rowspan="2"><div align="center">网络打印机</div> <div align="center"></div></td>
<td rowspan="2"><div align="center">工单打印机</div> <div align="center"></div></td>
<td rowspan="2"><div align="center">专业打印机</div> <div align="center"></div></td>
<td rowspan="2"><div align="center">服务器</div> <div align="center"></div></td>
<td colspan="2"><div align="center">台式机</div></td>
<td colspan="2"><div align="center">笔记本</div></td>
<td rowspan="2"><div align="center">打印机</div> <div align="center"></div></td>
</tr>
<tr parentid="0" bgcolor="#ced9e7" height="19">
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
<td><div align="center">员工</div></td>
<td><div align="center">非员工</div></td>
</tr>
<%
if(size != 0) {
RequestAmount ra = null;
RequestAmount raNext = null;
String dCountRow = null;//跨行数
String dClass = null;//层次
String dFlag = null;//是否有下级
String dArgumentid = null;//部门ID
String dArgumentname = null;//部门名称
int[] count = new int[19];
String[] value = new String[19];
for(int i=0; i<19; i++) {
count[i] = 0;
value[i] = "";
}
int layer1= 0;
int layer2= 0;
int layer3= 0;
boolean layer1Open = false;
boolean layer2Open = false;
for(int i=0; i<size; i++) {
ra = (RequestAmount)undoTasks.get(i);
if(i != size-1) {
raNext = (RequestAmount)undoTasks.get(i+1);
raNext.setFiled0(ra.getFiled1());
undoTasks.set(i+1, raNext);
}
dCountRow = ra.getFiled0();
dClass = ra.getFiled2();
dFlag = ra.getFiled3();
dArgumentid = ra.getFiled4();
dArgumentname = ra.getFiled5();
value[0] = ra.getFiled6();
value[1] = ra.getFiled7();
value[2] = ra.getFiled8();
value[3] = ra.getFiled9();
value[4] = ra.getFiled10();
value[5] = ra.getFiled11();
value[6] = ra.getFiled12();
value[7] = ra.getFiled13();
value[8] = ra.getFiled14();
value[9] = ra.getFiled15();
value[10] = ra.getFiled16();
value[11] = ra.getFiled17();
value[12] = ra.getFiled18();
value[13] = ra.getFiled19();
value[14] = ra.getFiled20();
value[15] = ra.getFiled21();
value[16] = ra.getFiled22();
value[17] = ra.getFiled23();
value[18] = ra.getFiled24();
if(dClass != null && dClass.equals("1")) {//第一层,总数统计
count[0] += Integer.parseInt(value[0]);
count[1] += Integer.parseInt(value[1]);
count[2] += Integer.parseInt(value[2]);
count[3] += Integer.parseInt(value[3]);
count[4] += Integer.parseInt(value[4]);
count[5] += Integer.parseInt(value[5]);
count[6] += Integer.parseInt(value[6]);
count[7] += Integer.parseInt(value[7]);
count[8] += Integer.parseInt(value[8]);
count[9] += Integer.parseInt(value[9]);
count[10] += Integer.parseInt(value[10]);
count[11] += Integer.parseInt(value[11]);
count[12] += Integer.parseInt(value[12]);
count[13] += Integer.parseInt(value[13]);
count[14] += Integer.parseInt(value[14]);
count[15] += Integer.parseInt(value[15]);
count[16] += Integer.parseInt(value[16]);
count[17] += Integer.parseInt(value[17]);
count[18] += Integer.parseInt(value[18]);
}
%>
<%
if(dClass != null && dClass.equals("1")) {//第一层
layer1 ++;
%>
<tr id="layer<%=layer1 %>" parentid="0">
<td style="width:5%"><img height=14 width=15 class=nodeImg id="img_layer<%=layer1 %>" src="arrowup.gif" οnclick="doTreeNode(this)"><%=dArgumentname %></td>
<td colspan="2" style="width:10%"><div align="center">小计</div></td>
<%
} else if(dClass != null && dClass.equals("2")) { //第二层
layer2 ++;
%>
<tr id="layer<%=layer1 %><%=layer2 %>" parentid="layer<%=layer1 %>">
<%
if(dCountRow != null && !dCountRow.equals("0")) {//是否有展开层
%>
<td rowspan="<%=dCountRow %>" style="width:5%"> </td>
<%
}
if(dFlag != null && dFlag.equals("0")) {
%>
<td style="width:5%"><img height=14 width=15 class=nodeImg id="img_layer<%=layer1 %><%=layer2 %>" src="arrowup.gif" οnclick="doTreeNode(this)"><%=dArgumentname %></td>
<%
} else {
%>
<td style="width:5%"><%=dArgumentname %> </td>
<%
}
%>
<td style="width:6%"> </td>
<%
} else if(dClass != null && dClass.equals("3")) { //第三层
layer3 ++;
%>
<tr id="layer<%=layer1 %><%=layer2 %><%=layer3 %>" parentid="layer<%=layer1 %><%=layer2 %>">
<%
if(dCountRow != null && !dCountRow.equals("0")) {//是否有展开层
%>
<td rowspan="<%=dCountRow %>" style="width:5%"> </td>
<%
}
if(dFlag != null && dFlag.equals("0")) {
%>
<td style="width:6%"><%=dArgumentname %> </td>
<%
} else {
%>
<td style="width:6%"><%=dArgumentname %> </td>
<%
}
}
%>
<td align="center"><%=value[0] %></td>
<td align="center"><%=value[1].equals("0")?" ":("<a href='assetList.jsp?depart="+dArgumentid+"&reqType=TSJ&nature=y'>"+value[1]+"</a>") %></td>
<td align="center"><%=value[2].equals("0")?" ":("<a href='assetList.jsp?depart="+dArgumentid+"&reqType=TSJ&nature=n'>"+value[2]+"</a>") %></td>
<td align="center"><%=value[3].equals("0")?" ":("<a href='assetList.jsp?depart="+dArgumentid+"&reqType=BJB&nature=y'>"+value[3]+"</a>") %></td>
<td align="center"><%=value[4].equals("0")?" ":("<a href='assetList.jsp?depart="+dArgumentid+"&reqType=BJB&nature=n'>"+value[4]+"</a>") %></td>
<td align="center"><%=value[5].equals("0")?" ":("<a href='assetList.jsp?depart="+dArgumentid+"&reqType=DYJ&nature=a'>"+value[5]+"</a>") %></td>
<td align="center"><%=value[6].equals("0")?" ":(bid.equals("")?value[6]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=TSJ&processType=60001&nature=y'>"+value[6]+"</a>")) %></td>
<td align="center"><%=value[7].equals("0")?" ":(bid.equals("")?value[7]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=TSJ&processType=60001&nature=n'>"+value[7]+"</a>")) %></td>
<td align="center"><%=value[8].equals("0")?" ":(bid.equals("")?value[8]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=BJB&processType=60002&nature=y'>"+value[8]+"</a>")) %></td>
<td align="center"><%=value[9].equals("0")?" ":(bid.equals("")?value[9]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=BJB&processType=60002&nature=n'>"+value[9]+"</a>")) %></td>
<td align="center"><%=value[10].equals("0")?" ":(bid.equals("")?value[10]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=DYJ&processType=60006&nature=a'>"+value[10]+"</a>")) %></td>
<td align="center"><%=value[11].equals("0")?" ":(bid.equals("")?value[11]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=DYJ&processType=60004&nature=a'>"+value[11]+"</a>")) %></td>
<td align="center"><%=value[12].equals("0")?" ":(bid.equals("")?value[12]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=DYJ&processType=60005&nature=a'>"+value[12]+"</a>")) %></td>
<td align="center"><%=value[13].equals("0")?" ":(bid.equals("")?value[13]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=CKT&processType=60007&nature=a'>"+value[13]+"</a>")) %></td>
<td align="center"><%=value[14].equals("0")?" ":(bid.equals("")?value[14]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=TSJ&processType=60008&nature=y'>"+value[14]+"</a>")) %></td>
<td align="center"><%=value[15].equals("0")?" ":(bid.equals("")?value[15]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=TSJ&processType=60008&nature=n'>"+value[15]+"</a>")) %></td>
<td align="center"><%=value[16].equals("0")?" ":(bid.equals("")?value[16]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=BJB&processType=60009&nature=y'>"+value[16]+"</a>")) %></td>
<td align="center"><%=value[17].equals("0")?" ":(bid.equals("")?value[17]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=BJB&processType=60009&nature=n'>"+value[17]+"</a>")) %></td>
<td align="center"><%=value[18].equals("0")?" ":(bid.equals("")?value[18]:("<a href='shenheRequestView.jsp?depart="+dArgumentid+"&bid="+bid+"&reqType=DYJ&processType=60010&nature=a'>"+value[18]+"</a>")) %></td>
</tr>
<% } %>
<tr>
<td colspan="3" align="right">合计</td>
<% for(int i=0; i<count.length; i++) { %>
<td align="center"><%=count[i]==0?" ":count[i]+"" %></td>
<% } %>
</tr>
<%
}
%>
</table>
</form>
<br>
</center>
</body>
</html>