- 浏览: 55584 次
-
文章分类
- 全部博客 (87)
- 模糊查询 (1)
- 树查询 (1)
- 汉字文件编码 (1)
- 图片文件写入网页 (1)
- 网络爬虫 (1)
- 正则表达式实现IP排序 (1)
- javax读取xml (1)
- javax增删改查xml (1)
- java反射 (1)
- dom4j操作XML文件 (1)
- descode函数 (1)
- 用户在线管理 (1)
- oracle统计函数统计各个年份入职的人数 (1)
- js解绑时间和自定义时间 (1)
- extjs 树控件开发 (1)
- java导出excel (1)
- java导入excel... (1)
- 行转列 (1)
- 连接池 (1)
- oracle plsql (0)
- oracle (1)
- oracle存储过程 (5)
- plsql编程 (5)
- oracle触发器 (2)
- oracle知识 (1)
- web技术 (22)
- servle+jspt文件下载 (0)
- wen技术 (0)
- java连接池 (1)
- java基础 (10)
- weblogic (3)
- jstl标签库的使用 实例 (1)
- css技术 (1)
- 存储过程 (1)
- sql统计 (1)
- webservice技术 (5)
- spring框架总结 (1)
- mongoDB (1)
- 64位oracle安装plsql (1)
- mongoDB分组统计 (1)
- ssh 无密码登录 (0)
- mysql (1)
- hadoop (0)
- lucene (1)
最新评论
<%@page import="java.util.Map"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
<%@taglib uri="/WEB-INF/struts-nested.tld" prefix="nested"%>
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@page import="com.ist.util.db.Result"%>
<%@page import="com.ist.util.StringUtil"%>
<%@page import="com.ist.af.PubFunc"%>
<%@page import="java.math.BigDecimal" %>
<%String byUpper = request.getParameter("byUpper");
if (byUpper == null)
byUpper = "";
String reportid = request.getParameter("reportid");
String biz_class_id = request.getParameter("biz_class_id");
%>
<html>
<head>
<title>速递内部运费结算总表</title>
<script src="/js/cssjs.js" type="text/javascript"></script>
<script src="/js/zfwl.js" type="text/javascript"></script>
<script src="/js/BasicUtility.js" type="text/javascript"></script>
<script src="/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<link href="/css/zfwl.css" type=text/css rel=STYLESHEET>
<script>
function getForm() {
return reportForm;
}
jQuery(function(){ //合并单元格
basicUtility.mergeCell("table1",3,2);
basicUtility.mergeCell("table1",3,1);
basicUtility.mergeCell("table1",3,0);
});
</script>
</head>
<body vlink=#000000 alink=#000000 link=#000000 bgColor=#ffffff>
<html:form action="/report.do" method="post">
<html:hidden property="settlePeriod" />
<input type="hidden" name="command" value="Query">
<input type="hidden" name="reportid" value=<%=reportid%>>
<input type="hidden" name="biz_class_id" value="<%=biz_class_id%>">
<%
String settlePeriod = request.getParameter("settlePeriod");
String year = settlePeriod.substring(0,4);
String month = settlePeriod.substring(4);
String[] lstDept = request.getParameterValues("dept");
if (lstDept != null) {
for (int i = 0; i < lstDept.length; i++) {
if (!StringUtil.isNullOrBlank(lstDept[i]))
out.println("<input type='hidden' name='dept' value='"
+ lstDept[i] + "'>");
}
}
%>
<!-- 标题栏 -->
<div class=SectionTabTopBorder id=idSectionTabTopBorder style="DISPLAY: block">
</div>
<div class=SectionTabBackground id=idSectionTabBackground style="DISPLAY: block">
<table style="HEIGHT: 2em" border=0>
<tr>
<td class=TabCell>
<font class="beta" size="2"> <b>结算报表</b> <span class="bg-neg-alert">»</span> <b><a href="/report.do?reportid=0101_2&command=Init">速递内部运费结算总表</a></b> <span class="bg-neg-alert">»</span>
<b>查询结果</b> </font>
</td>
</tr>
</table>
</div>
<!-- 工具栏 -->
<div class=ToolbarBackground id="div2">
<table class=Displaytable cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td width="10%">
<button class=Hyperlinkbutton onClick="javascript:doPrint()">
<table class=Toolbartable cellSpacing=0 cellPadding=0>
<tr>
<td vAlign="middle">
<img src="/images/print.gif">
</td>
<td style="WIDTH: 0.3em"></td>
<td vAlign="middle" noWrap>
打印
</td>
</tr>
</table>
</button>
</td>
<td width="1%">
|
</td>
<td width="10%">
<button class=Hyperlinkbutton onClick="javascript:doExport('Export')">
<table class=Toolbartable cellSpacing=0 cellPadding=0>
<tr>
<td vAlign="middle">
<img src="/images/export.gif">
</td>
<td style="WIDTH: 0.3em"></td>
<td vAlign="middle" noWrap>
导出Excel
</td>
</tr>
</table>
</button>
</td>
<td>
</td>
</tr>
</table>
</div>
<p>
<!-- 报表头 -->
<table width=80% align="center">
<tr align="center">
<td>
<font size=4><b>营业环节结算支出表</b></font>
<br>
<%=year %>
年
<%=month %>
月
<br>
</td>
</tr>
<tr>
<td align="right">
单位:元
</td>
</tr>
</table>
<!-- 报表体 -->
<table cellspacing=0 bordercolordark=#ffffff cellpadding=3 width="90%" align=center bordercolorlight=#000000 border=1 id="table1">
<%
String strDeptName= (String)request.getAttribute("strDeptName");
String strDeptCode= (String)request.getAttribute("strDeptCode");
%>
<tr class="beta" style="font-weight:bold" >
<td colspan="6">机构名称:<%=strDeptName%></td><td colspan="7">机构代码:<%=strDeptCode%> </td>
</tr>
<tr class="beta" style="font-weight:bold" >
<td rowspan="2">
邮件种类
</td>
<td rowspan="2">
产品
</td >
<td rowspan="2">
按流向分类
</td>
<td colspan="10">
显示该机构对应的责任中心属性(如函件责任中心等)
</td>
</tr>
<tr class="beta" style="font-weight:bold" >
<td>业务量</td>
<td>结算价</td>
<td>结算额</td>
<td>重量</td>
<td>结算价</td>
<td>结算额</td>
<td>资费收入</td>
<td>结算价</td>
<td>结算额</td>
<td>小计</td>
</tr>
<%
List list=(List)request.getAttribute("reportData");
Double a_pieces=0.0;
Double a_p_fee=0.0;
Double a_weight=0.0;
Double a_w_fee=0.0;
Double a_mail_fee=0.0;
Double a_f_fee=0.0;
Double a_all_fee=0.0;
if(list!=null&&list.size()>0){
for(int j=0;j<list.size();j++){
Map map=(Map)list.get(j);
String mailKind=(String)map.get("mailKind");
String productType=(String)map.get("productType");
String mailCode=(String)map.get("mailCode");
String pieces=(String)map.get("pieces");
a_pieces+=Double.parseDouble(pieces);
String peiece_price=(String)map.get("peiecePrice");
String p_fee=(String)map.get("pFee");
a_p_fee+=Double.parseDouble(p_fee);
String weight=(String)map.get("weight");
a_weight+=Double.parseDouble(weight);
String weight_price=(String)map.get("weightPrice");
String w_fee=(String)map.get("wFee");
a_w_fee+=Double.parseDouble(w_fee);
String mail_fee=(String)map.get("mailFee");
a_mail_fee+=Double.parseDouble(mail_fee);
String mail_fee_price=(String)map.get("mailFeePrice");
String f_fee=(String)map.get("fFee");
a_f_fee+=Double.parseDouble(f_fee);
String all_fee=(String)map.get("allFee");
a_all_fee+=Double.parseDouble(all_fee);
%>
<tr class="bg" onClick="selectRow(this)">
<td><%=mailKind %></td> <!-- 第一列 -->
<td><%=productType %></td> <!-- 第二列 -->
<td><%=mailCode %></td>
<td><%=pieces %></td>
<td><%=peiece_price %></td>
<td><%=p_fee %></td>
<td><%=weight %></td>
<td><%=weight_price %></td>
<td><%=w_fee %></td>
<td><%=mail_fee %></td>
<td><%=mail_fee_price %></td>
<td><%=f_fee%></td>
<td><%=all_fee%></td>
</tr>
<%
}
}
%>
<tr class="bg" onClick="selectRow(this)">
<td colspan="3">合计
(对应市分公司
平衡表收入)
</td>
<td align="right"><%=a_pieces %></td>
<td align="right"> </td>
<td align="right"><%=a_p_fee %></td>
<td align="right"><%=a_weight %></td>
<td align="right"> </td>
<td align="right"><%=a_w_fee %></td>
<td align="right"><%=a_mail_fee %></td>
<td align="right"> </td>
<td align="right"><%=a_f_fee %></td>
<td align="right"><%=a_all_fee %></td>
</tr>
</table>
<p>
<table width=90%>
<tr>
<td align=right>
[<a href="javascript:history.back()">返回</a>]
</td>
</tr>
</table>
</html:form>
</body>
</html>
js
/*******************************************************************************
* Created on 2014-04-15 Title 基础工具类--依赖jquery.js等 Author kfzx-gaoyun version
* 1.0 修改历史 序号 日期 修改人 修改原因
*
******************************************************************************/
// Note: 创建StringBuilder类
StringBuilder = function() {
this.strings = new Array;
};
StringBuilder.prototype = {
append : function(str) {
this.strings.push(str);
return this;
},
toString : function(joinGap) {
return this.strings.join(typeof joinGap == 'undefined' ? "" : joinGap);
},
clear : function() {
this.strings = [];
}
};
// Note: 创建StringBuffer类继承StringBuilder类
StringBuffer = function() {
StringBuilder.apply(this, arguments);
};
StringBuffer.prototype = new StringBuilder();
// Note: 创建BigDecimal工具类
MathUtil = function() {
}
MathUtil.prototype = {
add : function(d1, d2) {
try {
// 进行加法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.add(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.add(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
add2 : function() {
try {
// 进行加法运算
var b = new BigDecimal('0');
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; i++) {
b = b.add(new BigDecimal(String(arguments[i])));
}
}
return b;// .setScale( 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
sub : function(d1, d2) {
try {
// 进行减法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.subtract(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.subtract(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
mul : function(d1, d2) {
try {
// 进行乘法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.multiply(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.multiply(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
mul2 : function() {
try {
// 进行乘法运算
var b = new BigDecimal('1');
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; i++) {
b = b.multiply(new BigDecimal(String(arguments[i])));
}
}
return b;
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
div : function(d1, d2) {
try {
// 进行除法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.divide(b2, arguments[2], BigDecimal.ROUND_HALF_UP);
}
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
round : function(d1) {
try {
// 进行四舍五入运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal('1');
if (arguments.length == 2 && typeof arguments[1] != "undefined"
&& !isNaN(arguments[1])) {
return b1.divide(b2, arguments[1], BigDecimal.ROUND_HALF_UP);
}
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
}
}
// Note: 初始化BigDecimal工具类
var MathUtil = new MathUtil();
// Note: 创建基础工具类
BasicUtility = function() {
};
BasicUtility.prototype = {
/**
* Note: Execute the function
*
* @param fncName:to
* execute the method name
*/
executeFnc : function(fncName) {
try {
if (fncName != "" && fncName != null
&& typeof fncName != "undefined") {
if (fncName.indexOf("(") == -1) {
return eval(fncName + "()");
} else {
return eval(fncName);
}
}
} catch (e) {
alert(e + "使用错误:函数" + fncName + "未定义!");
return false;
}
},
/**
* Note: Get a parameter specified in the URL.
*
* @param parameterName
* parameter to remove
*/
getURLParameter : function(url, parameterName) {
var paramString = "";
var paramStartIndex = url.indexOf(parameterName);
var equalSign = url.charAt(paramStartIndex + parameterName.length);
if (paramStartIndex >= 0 && (equalSign == "=" || equalSign == "&")) {
var paramEndIndex = url.indexOf("&", paramStartIndex);
if (paramEndIndex >= 0) {
paramString = "&"
+ url.substring(paramStartIndex, paramEndIndex);
} else {
paramString = "&" + url.substring(paramStartIndex); // get the
// substring
// till the
// end.
}
}
return paramString;
},
/**
* Note: Adds a parameter to a given URL.
*
* @param parameterName
* parameter to add name
* @param parameterValue
* parameter to add value
*/
addURLParameter : function(url, parameterName, parameterValue) {
var paramPart = encodeURI(parameterName) + "="
+ encodeURI(parameterValue)
var lastChar = url.charAt(url.length - 1);
if (lastChar != "&" && lastChar != "?") {
if (url.indexOf("?") > 0) {
paramPart = "&" + paramPart;
} else {
paramPart = "?" + paramPart;
}
}
return url += paramPart;;
},
/**
* Note: Deletes a parameter specified in the given URL.
*
* @param url
* to process
* @param parameterName
* parameter to remove
* @return processed url
*/
deleteURLParameter : function(url, parameterName) {
var reg = new RegExp("([&|?]{1})"
+ escape(encodeURIComponent(parameterName))
+ "\s*=[^&|^#]*", "gi");
return url.replace(reg, "$1");
},
/**
* Note: Get the parameters in the form
*/
param : function(formId) {
var p = {}, allFields = jQuery('#' + formId).serializeArray();
jQuery.each(allFields, function(i, field) {
p[field.name] = field.value;
});
return p;
},
/**
* Note: 构建Form中带有name的元素作为URL中参数.
*
* @param formId
* 要构建的form id
* @param url
*/
buildFormParamToURL : function(formId, url) {
var p = this.param(formId), href = url;
if (!this.isEmptyValue(url) && !this.isEmptyValue(p)) {
href = url.indexOf("?") == -1 ? (url + "?") : (url + "&");
href = href + jQuery.param(p);
}
return href;
},
/**
* Note: 合并Table中相同内容的单元格(PS:如果要合并多列,从索引大的列开始合并)
*
* @param tableId
* :Table的Id
* @param beginRow:开始的行(索引从0开始)
* @param colIndex:合并的列(索引从0开始)
* @param property:获取内容的属性(innerHTML或innerText.
* 默认:innerHTML)
*/
mergeCell : function(tableId, beginRow, colIndex, property) {
var table = document.getElementById(tableId);
var att = (typeof property == "undefined" || property == "")
? "innerHTML"
: property;
var tempRow = beginRow;
var data = table.rows[tempRow].cells[colIndex][att];
for (var i = (tempRow + 1); i < table.rows.length; i++) {
if (data == table.rows[i].cells[colIndex][att]) {
table.rows[tempRow].cells[colIndex].rowSpan = table.rows[tempRow].cells[colIndex].rowSpan
+ 1;
table.rows[i].removeChild(table.rows[i].cells[colIndex]);
} else {
tempRow = i;
data = table.rows[tempRow].cells[colIndex][att];
}
table.rows[tempRow].cells[colIndex][att] = data;
}
},
/**
* Note: 计算百分比
*
* @param num:
* 除数
* @param total:
* 总数
*/
percent : function(num, total) {
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "──";
} else {
if (total > 0) {
return (Math.round(num / total * 10000) / 100.00);
} else {
if (num > 0) {
return 100;
} else {
return total == 0 ? 0 : (Math.round(num / Math.abs(total)
* 10000) / 100.00);
}
}
}
},
/**
* Note: 判断对象是否为空
*
* @param value:要判断的对象
*/
isEmptyValue : function(value) {
var type;
if (value == null) {
return true;
}
type = Object.prototype.toString.call(value).slice(8, -1);
switch (type) {
case 'String' :
return !jQuery.trim(value);
case 'Array' :
return !value.length;
case 'Object' :
return jQuery.isEmptyObject(value);
default :
return false;
}
},
/**
* Note: 判断select中是否存在值为value的项
*
* @param id:select的id
* @param value:要判断的值
*/
isExistOption : function(id, value) {
var isExist = false;
jQuery(jQuery("#" + id + " option")).each(function(i) {
if (jQuery(this).val() == value) {
isExist = true;
return false;
}
});
return isExist;
},
/**
* Note: 添加select项
*
* @param id:select的id
* @param value:要增加option的value
* @param text
* :要增加option的text
*/
addOptionValue : function(id, value, text) {
if (!this.isExistOption(id, value)) {
jQuery('#' + id).append(jQuery("<option>").val(value).text(text));
}
},
/**
* Note: 根据select的value删除select项
*
* @param id:select的id
* @param value:要删除option的value
*/
delOptionByValue : function(id, value) {
jQuery("#" + id + " option[value=" + value + "]").remove();
},
/**
* Note: 删除select选中项
*
* @param id:select的id
*/
delSelectedOption : function(id) {
jQuery("#" + id + " option:selected").remove();
},
/**
* Note: 清空select所有项
*
* @param id:select的id
*/
cleanSelect : function(id) {
jQuery("#" + id).empty();
},
/**
* Note: 如果a为空, 取b的值
*/
nvl : function(a, b) {
return this.isEmptyValue(a) ? b : a;
}
};
// Note: 初始化基础工具类
var basicUtility = new BasicUtility();
// Note: 日期对象原型扩展-日期格式化
// +———————————————————————————————————————————————————
// | @param format :必选项。字符串表达式,表示格式化字符串说明如下
// | YYYY|yyyy|YY|yy:年份
// | MM|M :月份
// | W |w :星期
// | dd|DD|d|D :日期
// | hh|HH|h|H :时
// | mm|m :分
// | ss|SS|s|S :秒
// | 格式化会改变原始Date对象的月份,以1开始.
// +———————————————————————————————————————————————————
Date.prototype.Format = function(format) {
var str = format;
var Week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
str = str.replace(/yyyy|YYYY/, this.getFullYear());
str = str.replace(/yy|YY/, (this.getYear() % 100) > 9
? (this.getYear() % 100).toString()
: '0' + (this.getYear() % 100));
str = str.replace(/MM/, this.getMonth() + 1 > 9 ? (this.getMonth() + 1)
.toString() : '0' + (this.getMonth() + 1));
str = str.replace(/M/g, this.getMonth() + 1);
str = str.replace(/w|W/g, Week[this.getDay()]);
str = str.replace(/dd|DD/, this.getDate() > 9
? this.getDate().toString()
: '0' + this.getDate());
str = str.replace(/d|D/g, this.getDate());
str = str.replace(/hh|HH/, this.getHours() > 9
? this.getHours().toString()
: '0' + this.getHours());
str = str.replace(/h|H/g, this.getHours());
str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes()
.toString() : '0' + this.getMinutes());
str = str.replace(/m/g, this.getMinutes());
str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds()
.toString() : '0' + this.getSeconds());
str = str.replace(/s|S/g, this.getSeconds());
return str;
}
// Note: 数组原型扩展-去除重复元素
Array.prototype.unique = function() {
var obj = new Object();
for (var i = 0, j = 0; i < this.length; i++) {
if (typeof obj[this[i]] == 'undefined') {
obj[this[i]] = j++;
}
}
this.length = 0;
for (var key in obj) {
this[obj[key]] = key;
}
return this;
};
<%@page import="java.util.List"%>
<%@page contentType="text/html; charset=GBK"%>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
<%@taglib uri="/WEB-INF/struts-nested.tld" prefix="nested"%>
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@page import="com.ist.util.db.Result"%>
<%@page import="com.ist.util.StringUtil"%>
<%@page import="com.ist.af.PubFunc"%>
<%@page import="java.math.BigDecimal" %>
<%String byUpper = request.getParameter("byUpper");
if (byUpper == null)
byUpper = "";
String reportid = request.getParameter("reportid");
String biz_class_id = request.getParameter("biz_class_id");
%>
<html>
<head>
<title>速递内部运费结算总表</title>
<script src="/js/cssjs.js" type="text/javascript"></script>
<script src="/js/zfwl.js" type="text/javascript"></script>
<script src="/js/BasicUtility.js" type="text/javascript"></script>
<script src="/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<link href="/css/zfwl.css" type=text/css rel=STYLESHEET>
<script>
function getForm() {
return reportForm;
}
jQuery(function(){ //合并单元格
basicUtility.mergeCell("table1",3,2);
basicUtility.mergeCell("table1",3,1);
basicUtility.mergeCell("table1",3,0);
});
</script>
</head>
<body vlink=#000000 alink=#000000 link=#000000 bgColor=#ffffff>
<html:form action="/report.do" method="post">
<html:hidden property="settlePeriod" />
<input type="hidden" name="command" value="Query">
<input type="hidden" name="reportid" value=<%=reportid%>>
<input type="hidden" name="biz_class_id" value="<%=biz_class_id%>">
<%
String settlePeriod = request.getParameter("settlePeriod");
String year = settlePeriod.substring(0,4);
String month = settlePeriod.substring(4);
String[] lstDept = request.getParameterValues("dept");
if (lstDept != null) {
for (int i = 0; i < lstDept.length; i++) {
if (!StringUtil.isNullOrBlank(lstDept[i]))
out.println("<input type='hidden' name='dept' value='"
+ lstDept[i] + "'>");
}
}
%>
<!-- 标题栏 -->
<div class=SectionTabTopBorder id=idSectionTabTopBorder style="DISPLAY: block">
</div>
<div class=SectionTabBackground id=idSectionTabBackground style="DISPLAY: block">
<table style="HEIGHT: 2em" border=0>
<tr>
<td class=TabCell>
<font class="beta" size="2"> <b>结算报表</b> <span class="bg-neg-alert">»</span> <b><a href="/report.do?reportid=0101_2&command=Init">速递内部运费结算总表</a></b> <span class="bg-neg-alert">»</span>
<b>查询结果</b> </font>
</td>
</tr>
</table>
</div>
<!-- 工具栏 -->
<div class=ToolbarBackground id="div2">
<table class=Displaytable cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td width="10%">
<button class=Hyperlinkbutton onClick="javascript:doPrint()">
<table class=Toolbartable cellSpacing=0 cellPadding=0>
<tr>
<td vAlign="middle">
<img src="/images/print.gif">
</td>
<td style="WIDTH: 0.3em"></td>
<td vAlign="middle" noWrap>
打印
</td>
</tr>
</table>
</button>
</td>
<td width="1%">
|
</td>
<td width="10%">
<button class=Hyperlinkbutton onClick="javascript:doExport('Export')">
<table class=Toolbartable cellSpacing=0 cellPadding=0>
<tr>
<td vAlign="middle">
<img src="/images/export.gif">
</td>
<td style="WIDTH: 0.3em"></td>
<td vAlign="middle" noWrap>
导出Excel
</td>
</tr>
</table>
</button>
</td>
<td>
</td>
</tr>
</table>
</div>
<p>
<!-- 报表头 -->
<table width=80% align="center">
<tr align="center">
<td>
<font size=4><b>营业环节结算支出表</b></font>
<br>
<%=year %>
年
<%=month %>
月
<br>
</td>
</tr>
<tr>
<td align="right">
单位:元
</td>
</tr>
</table>
<!-- 报表体 -->
<table cellspacing=0 bordercolordark=#ffffff cellpadding=3 width="90%" align=center bordercolorlight=#000000 border=1 id="table1">
<%
String strDeptName= (String)request.getAttribute("strDeptName");
String strDeptCode= (String)request.getAttribute("strDeptCode");
%>
<tr class="beta" style="font-weight:bold" >
<td colspan="6">机构名称:<%=strDeptName%></td><td colspan="7">机构代码:<%=strDeptCode%> </td>
</tr>
<tr class="beta" style="font-weight:bold" >
<td rowspan="2">
邮件种类
</td>
<td rowspan="2">
产品
</td >
<td rowspan="2">
按流向分类
</td>
<td colspan="10">
显示该机构对应的责任中心属性(如函件责任中心等)
</td>
</tr>
<tr class="beta" style="font-weight:bold" >
<td>业务量</td>
<td>结算价</td>
<td>结算额</td>
<td>重量</td>
<td>结算价</td>
<td>结算额</td>
<td>资费收入</td>
<td>结算价</td>
<td>结算额</td>
<td>小计</td>
</tr>
<%
List list=(List)request.getAttribute("reportData");
Double a_pieces=0.0;
Double a_p_fee=0.0;
Double a_weight=0.0;
Double a_w_fee=0.0;
Double a_mail_fee=0.0;
Double a_f_fee=0.0;
Double a_all_fee=0.0;
if(list!=null&&list.size()>0){
for(int j=0;j<list.size();j++){
Map map=(Map)list.get(j);
String mailKind=(String)map.get("mailKind");
String productType=(String)map.get("productType");
String mailCode=(String)map.get("mailCode");
String pieces=(String)map.get("pieces");
a_pieces+=Double.parseDouble(pieces);
String peiece_price=(String)map.get("peiecePrice");
String p_fee=(String)map.get("pFee");
a_p_fee+=Double.parseDouble(p_fee);
String weight=(String)map.get("weight");
a_weight+=Double.parseDouble(weight);
String weight_price=(String)map.get("weightPrice");
String w_fee=(String)map.get("wFee");
a_w_fee+=Double.parseDouble(w_fee);
String mail_fee=(String)map.get("mailFee");
a_mail_fee+=Double.parseDouble(mail_fee);
String mail_fee_price=(String)map.get("mailFeePrice");
String f_fee=(String)map.get("fFee");
a_f_fee+=Double.parseDouble(f_fee);
String all_fee=(String)map.get("allFee");
a_all_fee+=Double.parseDouble(all_fee);
%>
<tr class="bg" onClick="selectRow(this)">
<td><%=mailKind %></td> <!-- 第一列 -->
<td><%=productType %></td> <!-- 第二列 -->
<td><%=mailCode %></td>
<td><%=pieces %></td>
<td><%=peiece_price %></td>
<td><%=p_fee %></td>
<td><%=weight %></td>
<td><%=weight_price %></td>
<td><%=w_fee %></td>
<td><%=mail_fee %></td>
<td><%=mail_fee_price %></td>
<td><%=f_fee%></td>
<td><%=all_fee%></td>
</tr>
<%
}
}
%>
<tr class="bg" onClick="selectRow(this)">
<td colspan="3">合计
(对应市分公司
平衡表收入)
</td>
<td align="right"><%=a_pieces %></td>
<td align="right"> </td>
<td align="right"><%=a_p_fee %></td>
<td align="right"><%=a_weight %></td>
<td align="right"> </td>
<td align="right"><%=a_w_fee %></td>
<td align="right"><%=a_mail_fee %></td>
<td align="right"> </td>
<td align="right"><%=a_f_fee %></td>
<td align="right"><%=a_all_fee %></td>
</tr>
</table>
<p>
<table width=90%>
<tr>
<td align=right>
[<a href="javascript:history.back()">返回</a>]
</td>
</tr>
</table>
</html:form>
</body>
</html>
js
/*******************************************************************************
* Created on 2014-04-15 Title 基础工具类--依赖jquery.js等 Author kfzx-gaoyun version
* 1.0 修改历史 序号 日期 修改人 修改原因
*
******************************************************************************/
// Note: 创建StringBuilder类
StringBuilder = function() {
this.strings = new Array;
};
StringBuilder.prototype = {
append : function(str) {
this.strings.push(str);
return this;
},
toString : function(joinGap) {
return this.strings.join(typeof joinGap == 'undefined' ? "" : joinGap);
},
clear : function() {
this.strings = [];
}
};
// Note: 创建StringBuffer类继承StringBuilder类
StringBuffer = function() {
StringBuilder.apply(this, arguments);
};
StringBuffer.prototype = new StringBuilder();
// Note: 创建BigDecimal工具类
MathUtil = function() {
}
MathUtil.prototype = {
add : function(d1, d2) {
try {
// 进行加法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.add(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.add(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
add2 : function() {
try {
// 进行加法运算
var b = new BigDecimal('0');
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; i++) {
b = b.add(new BigDecimal(String(arguments[i])));
}
}
return b;// .setScale( 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
sub : function(d1, d2) {
try {
// 进行减法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.subtract(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.subtract(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
mul : function(d1, d2) {
try {
// 进行乘法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.multiply(b2).setScale(Number(arguments[2]),
BigDecimal.ROUND_HALF_UP);
}
return b1.multiply(b2);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
mul2 : function() {
try {
// 进行乘法运算
var b = new BigDecimal('1');
if (arguments.length > 1) {
for (var i = 0; i < arguments.length; i++) {
b = b.multiply(new BigDecimal(String(arguments[i])));
}
}
return b;
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
div : function(d1, d2) {
try {
// 进行除法运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal(String(d2));
if (arguments.length == 3 && typeof arguments[2] != "undefined"
&& !isNaN(arguments[2])) {
return b1.divide(b2, arguments[2], BigDecimal.ROUND_HALF_UP);
}
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
},
round : function(d1) {
try {
// 进行四舍五入运算
var b1 = new BigDecimal(String(d1));
var b2 = new BigDecimal('1');
if (arguments.length == 2 && typeof arguments[1] != "undefined"
&& !isNaN(arguments[1])) {
return b1.divide(b2, arguments[1], BigDecimal.ROUND_HALF_UP);
}
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
} catch (e) {
alert(e + "运算错误!");
return false;
}
}
}
// Note: 初始化BigDecimal工具类
var MathUtil = new MathUtil();
// Note: 创建基础工具类
BasicUtility = function() {
};
BasicUtility.prototype = {
/**
* Note: Execute the function
*
* @param fncName:to
* execute the method name
*/
executeFnc : function(fncName) {
try {
if (fncName != "" && fncName != null
&& typeof fncName != "undefined") {
if (fncName.indexOf("(") == -1) {
return eval(fncName + "()");
} else {
return eval(fncName);
}
}
} catch (e) {
alert(e + "使用错误:函数" + fncName + "未定义!");
return false;
}
},
/**
* Note: Get a parameter specified in the URL.
*
* @param parameterName
* parameter to remove
*/
getURLParameter : function(url, parameterName) {
var paramString = "";
var paramStartIndex = url.indexOf(parameterName);
var equalSign = url.charAt(paramStartIndex + parameterName.length);
if (paramStartIndex >= 0 && (equalSign == "=" || equalSign == "&")) {
var paramEndIndex = url.indexOf("&", paramStartIndex);
if (paramEndIndex >= 0) {
paramString = "&"
+ url.substring(paramStartIndex, paramEndIndex);
} else {
paramString = "&" + url.substring(paramStartIndex); // get the
// substring
// till the
// end.
}
}
return paramString;
},
/**
* Note: Adds a parameter to a given URL.
*
* @param parameterName
* parameter to add name
* @param parameterValue
* parameter to add value
*/
addURLParameter : function(url, parameterName, parameterValue) {
var paramPart = encodeURI(parameterName) + "="
+ encodeURI(parameterValue)
var lastChar = url.charAt(url.length - 1);
if (lastChar != "&" && lastChar != "?") {
if (url.indexOf("?") > 0) {
paramPart = "&" + paramPart;
} else {
paramPart = "?" + paramPart;
}
}
return url += paramPart;;
},
/**
* Note: Deletes a parameter specified in the given URL.
*
* @param url
* to process
* @param parameterName
* parameter to remove
* @return processed url
*/
deleteURLParameter : function(url, parameterName) {
var reg = new RegExp("([&|?]{1})"
+ escape(encodeURIComponent(parameterName))
+ "\s*=[^&|^#]*", "gi");
return url.replace(reg, "$1");
},
/**
* Note: Get the parameters in the form
*/
param : function(formId) {
var p = {}, allFields = jQuery('#' + formId).serializeArray();
jQuery.each(allFields, function(i, field) {
p[field.name] = field.value;
});
return p;
},
/**
* Note: 构建Form中带有name的元素作为URL中参数.
*
* @param formId
* 要构建的form id
* @param url
*/
buildFormParamToURL : function(formId, url) {
var p = this.param(formId), href = url;
if (!this.isEmptyValue(url) && !this.isEmptyValue(p)) {
href = url.indexOf("?") == -1 ? (url + "?") : (url + "&");
href = href + jQuery.param(p);
}
return href;
},
/**
* Note: 合并Table中相同内容的单元格(PS:如果要合并多列,从索引大的列开始合并)
*
* @param tableId
* :Table的Id
* @param beginRow:开始的行(索引从0开始)
* @param colIndex:合并的列(索引从0开始)
* @param property:获取内容的属性(innerHTML或innerText.
* 默认:innerHTML)
*/
mergeCell : function(tableId, beginRow, colIndex, property) {
var table = document.getElementById(tableId);
var att = (typeof property == "undefined" || property == "")
? "innerHTML"
: property;
var tempRow = beginRow;
var data = table.rows[tempRow].cells[colIndex][att];
for (var i = (tempRow + 1); i < table.rows.length; i++) {
if (data == table.rows[i].cells[colIndex][att]) {
table.rows[tempRow].cells[colIndex].rowSpan = table.rows[tempRow].cells[colIndex].rowSpan
+ 1;
table.rows[i].removeChild(table.rows[i].cells[colIndex]);
} else {
tempRow = i;
data = table.rows[tempRow].cells[colIndex][att];
}
table.rows[tempRow].cells[colIndex][att] = data;
}
},
/**
* Note: 计算百分比
*
* @param num:
* 除数
* @param total:
* 总数
*/
percent : function(num, total) {
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "──";
} else {
if (total > 0) {
return (Math.round(num / total * 10000) / 100.00);
} else {
if (num > 0) {
return 100;
} else {
return total == 0 ? 0 : (Math.round(num / Math.abs(total)
* 10000) / 100.00);
}
}
}
},
/**
* Note: 判断对象是否为空
*
* @param value:要判断的对象
*/
isEmptyValue : function(value) {
var type;
if (value == null) {
return true;
}
type = Object.prototype.toString.call(value).slice(8, -1);
switch (type) {
case 'String' :
return !jQuery.trim(value);
case 'Array' :
return !value.length;
case 'Object' :
return jQuery.isEmptyObject(value);
default :
return false;
}
},
/**
* Note: 判断select中是否存在值为value的项
*
* @param id:select的id
* @param value:要判断的值
*/
isExistOption : function(id, value) {
var isExist = false;
jQuery(jQuery("#" + id + " option")).each(function(i) {
if (jQuery(this).val() == value) {
isExist = true;
return false;
}
});
return isExist;
},
/**
* Note: 添加select项
*
* @param id:select的id
* @param value:要增加option的value
* @param text
* :要增加option的text
*/
addOptionValue : function(id, value, text) {
if (!this.isExistOption(id, value)) {
jQuery('#' + id).append(jQuery("<option>").val(value).text(text));
}
},
/**
* Note: 根据select的value删除select项
*
* @param id:select的id
* @param value:要删除option的value
*/
delOptionByValue : function(id, value) {
jQuery("#" + id + " option[value=" + value + "]").remove();
},
/**
* Note: 删除select选中项
*
* @param id:select的id
*/
delSelectedOption : function(id) {
jQuery("#" + id + " option:selected").remove();
},
/**
* Note: 清空select所有项
*
* @param id:select的id
*/
cleanSelect : function(id) {
jQuery("#" + id).empty();
},
/**
* Note: 如果a为空, 取b的值
*/
nvl : function(a, b) {
return this.isEmptyValue(a) ? b : a;
}
};
// Note: 初始化基础工具类
var basicUtility = new BasicUtility();
// Note: 日期对象原型扩展-日期格式化
// +———————————————————————————————————————————————————
// | @param format :必选项。字符串表达式,表示格式化字符串说明如下
// | YYYY|yyyy|YY|yy:年份
// | MM|M :月份
// | W |w :星期
// | dd|DD|d|D :日期
// | hh|HH|h|H :时
// | mm|m :分
// | ss|SS|s|S :秒
// | 格式化会改变原始Date对象的月份,以1开始.
// +———————————————————————————————————————————————————
Date.prototype.Format = function(format) {
var str = format;
var Week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
str = str.replace(/yyyy|YYYY/, this.getFullYear());
str = str.replace(/yy|YY/, (this.getYear() % 100) > 9
? (this.getYear() % 100).toString()
: '0' + (this.getYear() % 100));
str = str.replace(/MM/, this.getMonth() + 1 > 9 ? (this.getMonth() + 1)
.toString() : '0' + (this.getMonth() + 1));
str = str.replace(/M/g, this.getMonth() + 1);
str = str.replace(/w|W/g, Week[this.getDay()]);
str = str.replace(/dd|DD/, this.getDate() > 9
? this.getDate().toString()
: '0' + this.getDate());
str = str.replace(/d|D/g, this.getDate());
str = str.replace(/hh|HH/, this.getHours() > 9
? this.getHours().toString()
: '0' + this.getHours());
str = str.replace(/h|H/g, this.getHours());
str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes()
.toString() : '0' + this.getMinutes());
str = str.replace(/m/g, this.getMinutes());
str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds()
.toString() : '0' + this.getSeconds());
str = str.replace(/s|S/g, this.getSeconds());
return str;
}
// Note: 数组原型扩展-去除重复元素
Array.prototype.unique = function() {
var obj = new Object();
for (var i = 0, j = 0; i < this.length; i++) {
if (typeof obj[this[i]] == 'undefined') {
obj[this[i]] = j++;
}
}
this.length = 0;
for (var key in obj) {
this[obj[key]] = key;
}
return this;
};
发表评论
-
excel 导出及单元格合并
2014-08-13 16:00 617合并单元格类 public ActionForward do ... -
jsp Select 级联
2014-07-31 08:56 426<%@page import="java.ut ... -
jsquery解析XMl文件二级联动实现
2014-07-26 21:14 575xml文件 <?xml version="1. ... -
json使用
2014-07-20 12:46 375后台 String json="[{'key' ... -
通过中文转码使用包装类
2014-07-13 22:48 545jsp <%@ page language=" ... -
struts1标签循环里面的判断
2014-07-07 10:21 540<%@ page language="java ... -
自定义标签库循环数组 list map输出
2014-07-07 08:24 948jsp <%@ page language=" ... -
自定义标签库读取list输出
2014-07-06 14:59 374jsp <%@ page language=" ... -
jsp标签循环数字到jsp页面
2014-07-06 13:53 542jsp <%@ page language=" ... -
自定义标签库读取文件
2014-07-06 11:38 402jsp <%@ page language=" ... -
jsp自动标签实现字母转换
2014-07-06 11:35 348jsp <%@ page language=" ... -
jsp自定义标签实现比较两个数值的大小
2014-07-06 11:33 859jsp <%@ page language=" ... -
jstl自定义标签库入门
2014-07-05 10:39 4501.先写java代码 package com.cgm.tldt ... -
jsp调用普通java类实例
2014-07-05 10:10 4421.jsp页面 <%@ page language= ... -
jstl c标签库的使用
2014-07-05 09:27 408<%@ page language="java ... -
文件多线程下载
2014-07-04 08:27 618//线程下载类 package com.c ... -
HttpURLConnection实现断点下载
2014-07-02 23:35 2142package cn.demo; import java.i ... -
java不依赖浏览器的(HttpUrlConnection)单线程不间断下载
2014-07-02 23:01 564package cn.demo; import java.io ... -
HttpUrlConnection模拟浏览器发送请求
2014-07-02 22:32 540servlet...code package cn.itc ... -
servle+jspt文件下载
2014-07-02 22:22 517jsp code <%@ page language=& ...
相关推荐
### JSP Table 单元格合并 在网页开发中,表格是展示...综上所述,通过结合 JSP 和 JavaScript 技术,我们可以有效地实现在动态生成的表格中进行单元格合并的功能。这不仅提升了用户体验,也让数据呈现更加直观有序。
本主题聚焦于"JSP中table导出多表头excel"的技术实现,这是一种常见的需求,特别是在展示复杂表格数据时,多表头能够清晰地组织和展示信息。我们将探讨如何利用前台JavaScript技术来完成这一任务,并关注IE浏览器的...
1.表格的宽度以及表格每一列的宽度需要固定(特殊情况除外:当表格列数少并且表格总宽度明显小于表格父容器的宽度时,也就是表格列不存在自动换行的问题) 2.表格父容器尺寸大小改变时,需要调用 setBoxSize 方法,...
JSP(Java Server Pages)是一种实现动态网页内容生成的技术,它允许开发者将Java代码嵌入HTML页面中,从而实现网页的动态内容展示。在实际开发中,经常需要将页面上的表格数据导出到Excel文件中,以便于用户下载和...
我们可以通过JSP的EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)来动态生成表格。例如,使用EL获取数组或集合中的数据: ```jsp <table border="1"> ${header}" var="headerItem...
5. `<img>`标签插入图像,`<table>`用于创建表格,`<tr>`定义行,`<th>`和`<td>`分别定义表头和单元格,`rowspan`和`colspan`用于合并单元格。 6. `<a>`标签的`href`属性定义链接目标,`mailto:`协议用于创建电子...
8. **表头合并**:通过`headerRows`和`footerRows`属性,可以实现表格的多行表头和表尾。 总的来说,DisplayTag是Struts2开发中增强表格展示的强大工具,它的丰富功能和易用性使得开发者能更专注于业务逻辑,而不是...
JSP(JavaServer Pages)是一种基于Java的动态网页技术,它允许开发人员将Java代码嵌入到HTML或XML文档中,以实现服务器端的数据处理和页面生成。以下是一些与JSP相关的知识点: 1. 文件I/O操作:在示例代码中,...
- `<table>`、`<tr>`、`<td>`和`<th>`:分别代表表格、表格行、表格数据单元格和表头单元格。 - `rowspan`属性:用于合并单元格,让一个单元格跨多行显示。 5. URL结构:URL由协议、主机名或IP地址和文件名三部分...
DisplayTag是一个开源的Java Web开发库,主要用于生成复杂的表格,提供了强大的分页、排序、格式化和国际化等功能。在Web应用程序中,DisplayTag能够极大地提高数据展示的效率和用户体验。让我们深入了解一下`...
- 如果有Java涉及,可能使用了JSP(Java Server Pages)或者Servlet来动态生成HTML,或者使用JavaFX或者Swing来创建桌面端的报表应用。 4. 日报表的应用场景: - 个人日志管理:报表可以用于记录每日工作进度、...
- 表头合并:通过 `headerClass` 属性实现多列合并。 总的来说,DisplayTag 提供了全面的表格处理功能,使得开发者可以轻松地在网页上构建复杂的数据展示,提高了开发效率和用户体验。在实际项目中,可以根据需求...
11. **服务器端技术**:对于jsp和asp开发,可以在后端代码中嵌入CSS,或者通过动态生成CSS代码来实现特定的边框样式,尤其是在需要数据驱动边框样式的情况下。 综上所述,掌握CSS表格边框的样式技巧,可以极大地...
- 动态网页通过服务器端脚本如JSP、ASP、ASP.NET等生成内容,用户可以通过浏览器进行互动更新。 4. 网页元素: - 常见的网页元素包括文本、图片、动画、声音和视频,这些元素增强了网页的互动性和吸引力。 5. ...
- **JSP (JavaServer Pages)**: 一种基于Java的技术,用于创建动态网页。JSP页面包含静态HTML内容和动态Java代码。 - **Servlet**: 一种Java技术,用于扩展应用程序服务器的功能。Servlet可以处理HTTP请求,并生成...
- 表格的基本结构包括:`<table>`、`<tr>`(表格行)、`<td>`(单元格)和`<th>`(表头单元格)。 - **单元格合并**: - `rowspan`属性用于垂直合并单元格,即向下合并;`colspan`属性用于水平合并单元格,即向右...
其中一个重要特性是其丰富的标签库,这些标签能够帮助开发者快速构建动态的网页,并且有效地减少代码量。 #### 1. `<s:a>` - 超链接标签 此标签用于创建超链接,类似于 HTML 中的 `<a>` 标签。例如:`...