,然后在跳转到jreport的这个controller里,代码如下:/**
* 打印查询业务报表方法
*/
@RequestMapping(params = "method=printReport")
public String printReport(HttpServletRequest request, ModelMap model,
HttpServletResponse response){
//bangjiantongji.jasper//4.5版本的打印模板
//bangjiantongji1.jasper//老版本的打印模板
String reportFilePath = "/report/reportFiles/bangjiantongji.jasper";
Map parameters = new HashMap();
//获取用户信息
OperatorDetails loginUser = SpringSecurityUtils.getCurrentUser();
String userDept = loginUser.getUser().getDeptCodeTree(); //当前登录用户编号
String today = request.getParameter("today");//判断是否是从个人工作台进来的标识
Page<CaseBaseInfoFlow> pages = new Page<CaseBaseInfoFlow>(10);
String caseNo = request.getParameter("caseNo"); //办件编号
String caseApplicant = request.getParameter("caseApplicant");//申报人
String caseType = request.getParameter("caseType");//办件类型
String caseStartDateBegin = request.getParameter("caseStartDateBegin");//受理时间Begin
String caseStartDateEnd = request.getParameter("caseStartDateEnd");//受理时间End
String surplusDays = request.getParameter("surplusDays")==null?"-1":request.getParameter("surplusDays");//剩余天数
String caseEndDateBegin = request.getParameter("caseEndDateBegin");//受理时间Begin
String caseEndDateEnd = request.getParameter("caseEndDateEnd");//受理时间End
String caseStatus = request.getParameter("caseStatus")==null?"":request.getParameter("caseStatus");//办件状态
String code = request.getParameter("code")==null?"":request.getParameter("code"); //服务事项Code
String chType=request.getParameter("chtype"); //选择类型(dist:中心;dept:部门;user:事项)
CaseBaseInfoFlow caseFlow = new CaseBaseInfoFlow();
caseFlow.setCaseNo(caseNo);
caseFlow.setCaseApplicant(caseApplicant);
caseFlow.setCaseType(caseType);
caseFlow.setCaseStartDateBegin(caseStartDateBegin);
caseFlow.setCaseStartDateEnd(caseStartDateEnd);
caseFlow.setCaseEndDateBegin(caseEndDateBegin);
caseFlow.setCaseEndDateEnd(caseEndDateEnd);
//caseFlow.setServCode(servCode);
if(surplusDays=="-1"){
caseFlow.setSurplusDay(Integer.valueOf(-1));
}else{
caseFlow.setSurplusDay(Integer.valueOf(surplusDays));
}
if(caseStatus!=""){
caseFlow.setCaseStatus(caseStatus);
}
User user = loginUser.getUser();
StringBuffer sql = new StringBuffer();
sql.append("select row_number() over (order by c.id ) as xuhao, isNull(c.caseNo,'') caseNo,isNull(c.servName,'') servName,isNull(c.flowInstanceId,-1) flowInstanceId,c.servCode,c.servWarnDay,");
sql.append(" isNull(c.caseType,'') caseType,isNull(c.caseStatus,'') caseStatus,isNull(c.caseApplicant,'') caseApplicant,isNull(c.deptName,'') deptName,");
sql.append(" isNull(c.receiverName,'') receiverName,isNull(c.receiverName,'') processUser,");
sql.append(" isNull(convert(varchar(10),c.caseStartDate,120),'') caseStartDate,");
sql.append(" isNull(convert(varchar(10),c.casePromiseDate,120),'') casePromiseDate");
sql.append(" from t_sp_caseBaseInfo c where 1=1 ");
if(StringUtils.isNotBlank(userDept)){//当前登录人的查询权限(可以查询那些部门信息)
String[] userDepts = userDept.split(",");
String userDeptes = "";
for (int i =0;i<userDepts.length;i++) {
userDeptes += "'"+userDepts[i]+"',";
}
sql.append(" and c.deptCode in(" + userDeptes.substring(0, userDeptes.length()-1) + ")");
}
if(today!=null){
if("accept".equals(today)){
sql.append(" and DateDiff(day,c.casestartdate,getdate())=0 and c.deptCode ='"+user.getDeptCode()+"' and c.acceptPeople='"+user.getUserName()+"' and c.caseFrom in('窗口受理','网上申报') ");
}
if("finish".equals(today)){
sql.append(" and c.caseStatus in('许可','不予许可','退件','补正不来','已发证') and DateDiff(day,c.caseEndDate,getdate())=0 and c.deptCode = '"+user.getDeptCode()+"'");
}
}
if(StringUtils.isNotBlank(caseFlow.getCaseStatus())){ //办件状态
sql.append(" and c.caseStatus = '" + caseFlow.getCaseStatus() + "'");
}
if(StringUtils.isNotBlank(caseFlow.getCaseNo())){ //办件编号
sql.append(" and c.caseNo like '%" + caseFlow.getCaseNo() + "%'");
}
if(StringUtils.isNotBlank(caseFlow.getCaseApplicant())){ //申报人
sql.append(" and c.caseApplicant like '%" + caseFlow.getCaseApplicant() + "%' ");
}
if(StringUtils.isNotBlank(caseFlow.getCaseStartDateBegin()) && StringUtils.isNotBlank(caseFlow.getCaseStartDateEnd())){ //受理时间
sql.append(" and convert(varchar(10),c.caseStartDate,120) >= convert(varchar(10),'" + caseFlow.getCaseStartDateBegin() + "',120) ");
sql.append(" and convert(varchar(10),c.caseStartDate,120) <= convert(varchar(10),'" + caseFlow.getCaseStartDateEnd() + "',120) ");
}
if(StringUtils.isNotBlank(caseFlow.getCaseEndDateBegin()) && StringUtils.isNotBlank(caseFlow.getCaseEndDateEnd())){ //办结时间
sql.append(" and convert(varchar(10),c.caseEndDate,120) >= convert(varchar(10),'" + caseFlow.getCaseEndDateBegin() + "',120) ");
sql.append(" and convert(varchar(10),c.caseEndDate,120) <= convert(varchar(10),'" + caseFlow.getCaseEndDateEnd() + "',120) ");
}
if(caseFlow.getSurplusDay()!=-1){
if(StringUtils.isNotBlank(String.valueOf(caseFlow.getSurplusDay()))){ //剩余天数
sql.append(" and c.surplusDay = " + caseFlow.getSurplusDay() + "");
}
}
if(StringUtils.isNotBlank(caseFlow.getCaseType())){//办件类型
sql.append(" and c.caseType = '" + caseFlow.getCaseType() + "'");
}
if(StringUtils.isNotBlank(code)){//服务事项Code
this.spliceAuth(sql, chType, code);
//sql.append(" and w.servCode = '" + caseFlow.getServCode() + "'");
}
List flowList = jdbcTemplate.queryForList(sql.toString());
parameters.put("zs", flowList.size());
parameters.put("strSql", sql.toString());
try {
System.out.println("=============老方法调用=============");
publicMethodOld( model,request, response, parameters);
} catch (Exception e) {
e.printStackTrace();
}
// try {
// System.out.println("===========新方法调用===========");
// JasperReportUtil.reportHTML(request, response, reportFilePath,
// parameters, flowList);
// } catch (Exception e) {
// e.printStackTrace();
// }
return null;
}@RequestMapping(params = "method=publicMethodOld")
public void publicMethodOld(ModelMap model,HttpServletRequest request, HttpServletResponse response,Map parameters)
{
try{
ServletContext context = request.getSession().getServletContext();
String reportFilePath = request.getParameter("reportFile");
System.out.println("reportFilePath==="+reportFilePath);
// String reportFilePath = request.getParameter("reportFile");
File reportFile = new File(context.getRealPath(reportFilePath));
JasperPrint jasperPrint = null;
Connection conn = dataSource.getConnection();
System.out.println("reportFile.getPath==="+reportFile.getPath());
try {
// JasperReport jasperReport = (JasperReport)JRLoader.loadObject(new File(reportFile.getPath()));
InputStream inputStream = new FileInputStream(new File(reportFile.getPath()));
// jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, conn);
jasperPrint = JasperFillManager.fillReport(inputStream, parameters, conn);
// 将这个报表结果存入session中给后来的导出报表使用。
request.getSession().setAttribute("jasperReport", jasperPrint);
} catch (Exception e) {
e.printStackTrace();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out
.println("<title>JasperReports - Web Application Sample</title>");
out
.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out
.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
out.println("<pre>");
e.printStackTrace(out);
e.printStackTrace();
out.println("</pre>");
out.println("</body>");
out.println("</html>");
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (jasperPrint != null) {
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
} else {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out
.println("<title>JasperReports - Web Application Sample</title>");
out
.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<span class=\"bold\">Empty response.</span>");
out.println("</body>");
out.println("</html>");
}
}catch(Exception ee){
ee.printStackTrace();
}
}
* 打印查询业务报表方法
*/
@RequestMapping(params = "method=printReport")
public String printReport(HttpServletRequest request, ModelMap model,
HttpServletResponse response){
//bangjiantongji.jasper//4.5版本的打印模板
//bangjiantongji1.jasper//老版本的打印模板
String reportFilePath = "/report/reportFiles/bangjiantongji.jasper";
Map parameters = new HashMap();
//获取用户信息
OperatorDetails loginUser = SpringSecurityUtils.getCurrentUser();
String userDept = loginUser.getUser().getDeptCodeTree(); //当前登录用户编号
String today = request.getParameter("today");//判断是否是从个人工作台进来的标识
Page<CaseBaseInfoFlow> pages = new Page<CaseBaseInfoFlow>(10);
String caseNo = request.getParameter("caseNo"); //办件编号
String caseApplicant = request.getParameter("caseApplicant");//申报人
String caseType = request.getParameter("caseType");//办件类型
String caseStartDateBegin = request.getParameter("caseStartDateBegin");//受理时间Begin
String caseStartDateEnd = request.getParameter("caseStartDateEnd");//受理时间End
String surplusDays = request.getParameter("surplusDays")==null?"-1":request.getParameter("surplusDays");//剩余天数
String caseEndDateBegin = request.getParameter("caseEndDateBegin");//受理时间Begin
String caseEndDateEnd = request.getParameter("caseEndDateEnd");//受理时间End
String caseStatus = request.getParameter("caseStatus")==null?"":request.getParameter("caseStatus");//办件状态
String code = request.getParameter("code")==null?"":request.getParameter("code"); //服务事项Code
String chType=request.getParameter("chtype"); //选择类型(dist:中心;dept:部门;user:事项)
CaseBaseInfoFlow caseFlow = new CaseBaseInfoFlow();
caseFlow.setCaseNo(caseNo);
caseFlow.setCaseApplicant(caseApplicant);
caseFlow.setCaseType(caseType);
caseFlow.setCaseStartDateBegin(caseStartDateBegin);
caseFlow.setCaseStartDateEnd(caseStartDateEnd);
caseFlow.setCaseEndDateBegin(caseEndDateBegin);
caseFlow.setCaseEndDateEnd(caseEndDateEnd);
//caseFlow.setServCode(servCode);
if(surplusDays=="-1"){
caseFlow.setSurplusDay(Integer.valueOf(-1));
}else{
caseFlow.setSurplusDay(Integer.valueOf(surplusDays));
}
if(caseStatus!=""){
caseFlow.setCaseStatus(caseStatus);
}
User user = loginUser.getUser();
StringBuffer sql = new StringBuffer();
sql.append("select row_number() over (order by c.id ) as xuhao, isNull(c.caseNo,'') caseNo,isNull(c.servName,'') servName,isNull(c.flowInstanceId,-1) flowInstanceId,c.servCode,c.servWarnDay,");
sql.append(" isNull(c.caseType,'') caseType,isNull(c.caseStatus,'') caseStatus,isNull(c.caseApplicant,'') caseApplicant,isNull(c.deptName,'') deptName,");
sql.append(" isNull(c.receiverName,'') receiverName,isNull(c.receiverName,'') processUser,");
sql.append(" isNull(convert(varchar(10),c.caseStartDate,120),'') caseStartDate,");
sql.append(" isNull(convert(varchar(10),c.casePromiseDate,120),'') casePromiseDate");
sql.append(" from t_sp_caseBaseInfo c where 1=1 ");
if(StringUtils.isNotBlank(userDept)){//当前登录人的查询权限(可以查询那些部门信息)
String[] userDepts = userDept.split(",");
String userDeptes = "";
for (int i =0;i<userDepts.length;i++) {
userDeptes += "'"+userDepts[i]+"',";
}
sql.append(" and c.deptCode in(" + userDeptes.substring(0, userDeptes.length()-1) + ")");
}
if(today!=null){
if("accept".equals(today)){
sql.append(" and DateDiff(day,c.casestartdate,getdate())=0 and c.deptCode ='"+user.getDeptCode()+"' and c.acceptPeople='"+user.getUserName()+"' and c.caseFrom in('窗口受理','网上申报') ");
}
if("finish".equals(today)){
sql.append(" and c.caseStatus in('许可','不予许可','退件','补正不来','已发证') and DateDiff(day,c.caseEndDate,getdate())=0 and c.deptCode = '"+user.getDeptCode()+"'");
}
}
if(StringUtils.isNotBlank(caseFlow.getCaseStatus())){ //办件状态
sql.append(" and c.caseStatus = '" + caseFlow.getCaseStatus() + "'");
}
if(StringUtils.isNotBlank(caseFlow.getCaseNo())){ //办件编号
sql.append(" and c.caseNo like '%" + caseFlow.getCaseNo() + "%'");
}
if(StringUtils.isNotBlank(caseFlow.getCaseApplicant())){ //申报人
sql.append(" and c.caseApplicant like '%" + caseFlow.getCaseApplicant() + "%' ");
}
if(StringUtils.isNotBlank(caseFlow.getCaseStartDateBegin()) && StringUtils.isNotBlank(caseFlow.getCaseStartDateEnd())){ //受理时间
sql.append(" and convert(varchar(10),c.caseStartDate,120) >= convert(varchar(10),'" + caseFlow.getCaseStartDateBegin() + "',120) ");
sql.append(" and convert(varchar(10),c.caseStartDate,120) <= convert(varchar(10),'" + caseFlow.getCaseStartDateEnd() + "',120) ");
}
if(StringUtils.isNotBlank(caseFlow.getCaseEndDateBegin()) && StringUtils.isNotBlank(caseFlow.getCaseEndDateEnd())){ //办结时间
sql.append(" and convert(varchar(10),c.caseEndDate,120) >= convert(varchar(10),'" + caseFlow.getCaseEndDateBegin() + "',120) ");
sql.append(" and convert(varchar(10),c.caseEndDate,120) <= convert(varchar(10),'" + caseFlow.getCaseEndDateEnd() + "',120) ");
}
if(caseFlow.getSurplusDay()!=-1){
if(StringUtils.isNotBlank(String.valueOf(caseFlow.getSurplusDay()))){ //剩余天数
sql.append(" and c.surplusDay = " + caseFlow.getSurplusDay() + "");
}
}
if(StringUtils.isNotBlank(caseFlow.getCaseType())){//办件类型
sql.append(" and c.caseType = '" + caseFlow.getCaseType() + "'");
}
if(StringUtils.isNotBlank(code)){//服务事项Code
this.spliceAuth(sql, chType, code);
//sql.append(" and w.servCode = '" + caseFlow.getServCode() + "'");
}
List flowList = jdbcTemplate.queryForList(sql.toString());
parameters.put("zs", flowList.size());
parameters.put("strSql", sql.toString());
try {
System.out.println("=============老方法调用=============");
publicMethodOld( model,request, response, parameters);
} catch (Exception e) {
e.printStackTrace();
}
// try {
// System.out.println("===========新方法调用===========");
// JasperReportUtil.reportHTML(request, response, reportFilePath,
// parameters, flowList);
// } catch (Exception e) {
// e.printStackTrace();
// }
return null;
}@RequestMapping(params = "method=publicMethodOld")
public void publicMethodOld(ModelMap model,HttpServletRequest request, HttpServletResponse response,Map parameters)
{
try{
ServletContext context = request.getSession().getServletContext();
String reportFilePath = request.getParameter("reportFile");
System.out.println("reportFilePath==="+reportFilePath);
// String reportFilePath = request.getParameter("reportFile");
File reportFile = new File(context.getRealPath(reportFilePath));
JasperPrint jasperPrint = null;
Connection conn = dataSource.getConnection();
System.out.println("reportFile.getPath==="+reportFile.getPath());
try {
// JasperReport jasperReport = (JasperReport)JRLoader.loadObject(new File(reportFile.getPath()));
InputStream inputStream = new FileInputStream(new File(reportFile.getPath()));
// jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, conn);
jasperPrint = JasperFillManager.fillReport(inputStream, parameters, conn);
// 将这个报表结果存入session中给后来的导出报表使用。
request.getSession().setAttribute("jasperReport", jasperPrint);
} catch (Exception e) {
e.printStackTrace();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out
.println("<title>JasperReports - Web Application Sample</title>");
out
.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out
.println("<span class=\"bnew\">JasperReports encountered this error :</span>");
out.println("<pre>");
e.printStackTrace(out);
e.printStackTrace();
out.println("</pre>");
out.println("</body>");
out.println("</html>");
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (jasperPrint != null) {
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
} else {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out
.println("<title>JasperReports - Web Application Sample</title>");
out
.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<span class=\"bold\">Empty response.</span>");
out.println("</body>");
out.println("</html>");
}
}catch(Exception ee){
ee.printStackTrace();
}
}
解决方案 »
- el 表达式 里 equals 与==的区别
- 有关struts2 的模型驱动 有达人帮忙解决下
- sql server2005查询
- 在jsp中如何判断字符串的编码?
- 会spring+hibernate+jotm使用jta事务的帮帮忙
- web service的执行问题
- 使用spring框架能否取得继承自HttpServlet的对象?
- 有没有哪位遇到或知道displaytag中使用href时的空指针异常问题?
- struts+hibernate+sybase中文乱码问题
- JNDI有问!
- 基于annotation的方式整合struts2+spring3+hibernate4遇到问题
- 高分求eclipse插件demo
Java Plug-in 1.6.0_23
使用 JRE 版本 1.6.0_23-b05 Java HotSpot(TM) Client VM
用户主目录 = C:\Documents and Settings\Administrator
----------------------------------------------------
c: 清除控制台窗口
f: 终结在结束队列上的对象
g: 垃圾收集
h: 显示此帮助消息
l: 转储类载入程序列表
m: 打印内存使用
o: 触发日志记录
q: 隐藏控制台
r: 重新载入策略配置
s: 转储系统和部署属性
t: 转储线程列表
v: 转储线程堆栈
x: 清除类载入程序高速缓存
0-5: 设置跟踪级别为<n>
----------------------------------------------------
Exception in thread "thread applet-EmbeddedViewerApplet.class-1" java.lang.ClassFormatError: Incompatible magic value 218762506 in class file net/sf/jasperreports/view/save/JRPdfSaveContributor
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
at net.sf.jasperreports.view.JRViewer.initSaveContributors(JRViewer.java:456)
at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:302)
at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:241)
at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:220)
at JRViewerSimple.<init>(JRViewerSimple.java:42)
at EmbeddedViewerApplet.init(EmbeddedViewerApplet.java:69)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
网上查了,讲是编译的时候版本不兼容造成的...但是小弟真心不是熟悉这个,第一次接触...
请各位大侠帮忙解决...不胜感激....