`
qxmcool
  • 浏览: 91230 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

jasperReport的报表应用

阅读更多
框架自带的项目改造的 访问Dis即可显示

/*
* ============================================================================
* GNU Lesser General Public License
* ============================================================================
*
* JasperReports - Free Java report-generating library.
* Copyright (C) 2001-2009 JasperSoft Corporation http://www.jaspersoft.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
*
* JasperSoft Corporation
* 539 Bryant Street, Suite 100
* San Francisco, CA 94107
* http://www.jaspersoft.com
*/
package datasource;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;

/**
* @author Teodor Danciu (teodord@users.sourceforge.net)
* @version $Id: WebappDataSource.java 2692 2009-03-24 17:17:32Z teodord $
*/
public class WebappDataSource implements JRDataSource
{
/**
*
*/
private Object[][] data =
{
{"Berne", new Integer(22), "Bill Ott", "250 - 20th Ave."},
{"Berne", new Integer(9), "James Schneider", "277 Seventh Av."},
{"Boston", new Integer(32), "Michael Ott", "339 College Av."},
{"Boston", new Integer(23), "Julia Heiniger", "358 College Av."},
{"Chicago", new Integer(39), "Mary Karsen", "202 College Av."},
{"Chicago", new Integer(35), "George Karsen", "412 College Av."},
{"Chicago", new Integer(11), "Julia White", "412 Upland Pl."},
{"Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl."},
{"Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl."},
{"Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave."},
{"Dallas", new Integer(36), "John Steel", "276 Upland Pl."},
{"Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av."},
{"Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave."},
{"Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl."},
{"Dallas", new Integer(4), "Sylvia Ringer", "365 College Av."},
{"Dallas", new Integer(0), "Laura Steel", "429 Seventh Av."},
{"Lyon", new Integer(38), "Andrew Heiniger", "347 College Av."},
{"Lyon", new Integer(28), "Susanne White", "74 - 20th Ave."},
{"Lyon", new Integer(17), "Laura Ott", "443 Seventh Av."},
{"Lyon", new Integer(2), "Anne Miller", "20 Upland Pl."},
{"New York", new Integer(46), "Andrew May", "172 Seventh Av."},
{"New York", new Integer(44), "Sylvia Ott", "361 College Av."},
{"New York", new Integer(41), "Bill King", "546 College Av."},
{"Oslo", new Integer(45), "Janet May", "396 Seventh Av."},
{"Oslo", new Integer(42), "Robert Ott", "503 Seventh Av."},
{"Paris", new Integer(25), "Sylvia Steel", "269 College Av."},
{"Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave."},
{"Paris", new Integer(5), "Laura Miller", "294 Seventh Av."},
{"San Francisco", new Integer(48), "Robert White", "549 Seventh Av."},
{"San Francisco", new Integer(7), "James Peterson", "231 Upland Pl."}
};

private int index = -1;


/**
*
*/
public WebappDataSource()
{
// System.out.println("方法");
}


/**
*
*/
public boolean next() throws JRException
{
index++;
//System.out.println("next方法");
return (index < data.length);
}


/**
*
*/
public Object getFieldValue(JRField field) throws JRException
{
//System.out.println("getFieldValue方法");

Object value = null;

String fieldName = field.getName();

if ("City".equals(fieldName))
{
value = data[index][0];
}
else if ("Id".equals(fieldName))
{
value = data[index][1];
}
else if ("Name".equals(fieldName))
{
value = data[index][2];
}
else if ("Street".equals(fieldName))
{
value = data[index][3];
}

return value;
}
}

package req;

import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;
import datasource.WebappDataSource;

public class Dis extends HttpServlet {

protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

ServletContext context = this.getServletConfig().getServletContext();

response.setContentType("text/html");

try {
JasperCompileManager.compileReportToFile(context
.getRealPath("/reports/WebappReport.jrxml"));

String reportFileName = context
.getRealPath("/reports/WebappReport.jasper");
File reportFile = new File(reportFileName);
if (!reportFile.exists())
throw new JRRuntimeException(
"File WebappReport.jasper not found. The report design must be compiled first.");

JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());
Map parameters = new HashMap();
parameters.put("ReportTitle", "Address Report");
parameters.put("BaseDir", reportFile.getParentFile());
// JasperPrint jasperPrint =
// JasperFillManager.fillReport(
// reportFileName,
// parameters,
// new WebappDataSource()
// );
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, parameters, new WebappDataSource());

// request.getSession().setAttribute(
// BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,
// jasperPrint);

// JRPdfExporter jrp = new JRPdfExporter();
// jrp.exportReport();
byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
if (bytes != null) {
response.setContentType("text/html");
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}

// 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 (JRException e) {
e.printStackTrace();
}
}

}
分享到:
评论

相关推荐

    Struts2+JasperReport报表应用

    JasperReports作为一种优秀且开源的报表引擎,不利用太可惜了。同时,借助开源的JasperReports模板设计利器iReports,可以可视化的设计报表模板。基于Web的报表在很多项目中都是需要的。而随着Struts2的流行,就应该...

    整合Struts2+JasperReport Web报表应用示例

    整合Struts2+JasperReport Web报表应用示例 整合Struts2+JasperReport Web报表应用示例

    论文研究-报表工具JasperReport的实现及应用 .pdf

    报表工具JasperReport的实现及应用,金辉,,本文详细讨论了报表工具JasperReport的原理及使用方法,它是纯Java编写的,基于XML技术设计报表模板,通过在程序中调用模板动态地显示��

    JasperReport+iReport报表开发手册.zip

    JasperReports 是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换 成 PDF,HTML,或者 XML 格式。它有一个相关的开源工程--IReport,这是一个图形化的辅 助工具,主要用于数据报表设计。...

    使用JasperReport输出image图像

    asperReport的应用,发现大部分都是讲如何将jasper导入一个html或pdf进行打印的例子,并没有直接将jasperReport打印生成一个图像的示例。包括jaspe自带的demo里面,所以有高手就写了如何生成图片的方法

    JasperReport + Servlet Web应用之:HTML显示报表内容

    NULL 博文链接:https://zmx.iteye.com/blog/580325

    jasperreport

    JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。

    IReport报表开发教程

    jasperreport+ireport开发java报表入门级教程 文章将会涉及3个方面的内容: 第一部分:使用iReport制作报表的详细过程(Windows环境下) ...第三部分:使用Jasperreport作为报表控件开发Web报表应用

    Jasperreport+ireport 实践操作及web应用

    学习完jasperreports+ireport,给我感觉深刻,不仅掌握了报表开发技术,还掌握了如何在web中生成pdf,xls,rtf文件,以下是jasperreports+ireport开发知识点: 1.字段,变量,参数,传参 2.矢量图,位图 3.超链接,锚 4.数据源,...

    JasperReport 与 iReport 的配置与使用.pdf

    JasperReport 与 iReport 的配置与使用.pdf;作者:裴贺先 内容概况: 第一章:JasperReport 与 iReport 简介 第二章:安装与配置 ...第四章:JasperReport 在程序中的应用 第五章:参考信息及其他

    JasperReport开发(一)

    文章目录一、PDF报表打印概述1.1 概述1.2 常见PDF报表的制作方式1.3 JasperReport框架的介绍1.4 JasperReport相关文件介绍1.5 开发流程概述 一、PDF报表打印概述 1.1 概述 在企业级应用开发中,报表生成、报表打印...

    jasperreport ant运行以及启动hsqldb服务

    JasperReports是一个强力的报表产生工具,他有能力描述丰富内容到...它完全用Java编写的,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态内容。它的主要目的是以一种简单而灵活的方式来帮助创建导向的页面。

    Jasperreport for java developers(从入门到精深)

    此书是Java程序员开发report的一个必备资料,真本书将让从开始只知道report的中文字意的你能用ireport 和 Jasperreport 开发出一套完美的报表。此书是收费的,也是现在最新版、最完整的Jasperreport学习资料,像现在...

    ireport & jasperreport

    JasperReport 是一款报表打印组件,是开放源代码组织sf.net 中的一个java 报表打印工程,...JasperReport 适合用来做WEB 应用程序与Java Application 的报表打印组件,而且关键的一点是:JasperReport 是免费的!

    智能OA办公系统 SpringBoot JAVA 开源OA协同办公系统自研工作流引擎支持可视化表单设计与流程设计支技分布式部署

    本项目JDK8x64+SpringBoot+MyBatis+Redis+Durid+Beetl的框架组合的开源OA系统,自研工作流引擎,支持可视化表单设计与流程设计。...支持jasperreport报表系统。 本项目权限管理可控制页面、接口、数据操作。

Global site tag (gtag.js) - Google Analytics