你可以读出数据库中的所有数据 然后 通过存储过程,让用户在页面上输入参数,你获取他输入的参数的同时 也是你拼接SQL的同时。。就这个 在用拼接的这个SQL做查询。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了高昌免费建站欢迎大家使用!
首先需要做好一张报表的模板,工具最好用iReport, 做好后会生成两种文件。 后缀 .jasper 和 .jrxml 的报表文件。然后把这两个文件 和一个JSP页面放到同一目录下, 在JSP文件里面配置数据源:代码:%@ page import="com.handson.service.report.*,java.sql.*"%
%@ page contentType="text/html;charset=GBK"%
jsp:directive.page import="java.util.*" /
jsp:directive.page import="java.util.HashMap" /
jsp:directive.page
import="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource" /
%
Collection coll = (Collection) request.getAttribute("putinReportList"); //putinReportList是由请求传来的LIST
//设置数据库JDBC连接
JRBeanCollectionDataSource con = new JRBeanCollectionDataSource(
coll);
//设置外部参数对
Map parameters = new HashMap();
//parameters.put("rptToday", "2008-01-11");
//parameters.put("rptMan", "sterning"); PDFExport exportReport = new PDFExport();
exportReport.exportToPDF(request, response, out, request
.getRealPath("/reports/putin_report.jrxml"), request
.getRealPath("/reports/putin_report.jasper"), parameters,
con);
out.clear();
out=pageContext.pushBody();
%
之前因为需要,去学习了几种WEB报表的打印方式,发现用Java直接去操作Word、Excel还是不那么方便,下面就简单介绍几种;
1、用浏览器自带的打印功能直接打印;
这种方式是最直接的,方便的,不需要加什么插件jar包,只要前台在一个 div 中模仿着报表的格式去设置界面布局,然后把数据动态的填充进去,再调用JavaScript打印函数,就可以实现界面的局部打印功能。(如果不想让报表div在界面中显示出来可以隐藏之)PS:不过直接在前台界面打印还是会遇到意想不到的情况,不同浏览器的问题,反正我就遇到不同浏览器打印出来的报表排版不一的情况,用的时候需要注意。
eg:
div布局
div id="printdiv" style="display:none;"
table id="tableid" class="main" cellspacing="0" cellpadding="0" border="1"
bordercolor="#000000" width="800px;"
/****** your code ******/
/table
/div
JavaScript部分:(自己根据需要选择触发响应的JS函数)
function windowprint() {
var f = document.getElementById("printdiv");
f.style.display = "";
window.print();
f.style.display = "none";
}
function myPrint(obj){
var newWindow=window.open("打印窗口","_blank");
var docStr = obj.innerHTML;
newWindow.document.write(docStr);
newWindow.document.close();
newWindow.print();
newWindow.close();
}