`
qxmcool
  • 浏览: 93637 次
  • 性别: 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报表应用

    Struts2和JasperReport的整合是Web应用程序中创建动态报表的一种常见方法。JasperReport是一个功能强大的开源报表引擎,允许开发人员通过iReports这样的设计工具以可视化的形式创建复杂的报表模板。Struts2,作为一...

    jasperreport一个子报表的例子

    JasperReport是一个强大的Java报告库,它允许开发者创建复杂、美观的报表,广泛应用于企业级应用中。在JasperReport中,子报表是用于在主报表内部嵌套其他报表的一个功能,可以用来组织和展示更复杂的结构化数据。...

    iReport-JasperReport 报表开发指南

    5. **样式与格式**:探索样式表(CSS)的应用,如何定义字体、颜色、边框等样式,以及如何应用样式到报表元素。 6. **表达式与变量**:理解JEXL表达式,如何使用它们进行计算和逻辑判断,以及定义和使用变量来处理...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全

    "ireport-5.6.0 Jasperreport 报表工具 jar包大全" 这个标题提到了两个关键组件:iReport和JasperReport,它们都是用于创建和设计报表的重要工具,尤其在Java开发环境中广泛使用。标题中的“5.6.0”是这两个工具的...

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

    Struts2 和 JasperReport 的整合是为了解决在 Web 应用中生成复杂报表的需求。JasperReport 是一个强大的开源报表引擎,它允许开发者通过设计模板来生成各种类型的报表,如 PDF、HTML、Excel 等。而 Struts2 是一个...

    JasperReport报表成型框架

    "报表开发注意事项.docx" 文件很关键,因为它很可能包含了开发JasperReport报表时的实践经验、注意事项和常见问题解答,是开发者的重要参考资料。 总结,JasperReport作为一个灵活的报表工具,为开发者提供了丰富...

    JasperReport动态报表归并行数据

    设计JasperReport报表时,通常会使用iReport(早期版本)或Jaspersoft Studio(较新版本)这样的可视化工具。这些工具提供图形化界面,便于创建和编辑报表模板,同时支持预览和调试,以确保动态数据处理的正确性。 ...

    jasperreport报表开发小结.docx

    jasperreport报表开发小结 一、JasperReports 概述 JasperReports 是一个面向开发人员设计的开源 Java 类库,通过它可以为 Java 应用程序增加报表功能。JasperReports 采用 Lesser GNU Public License (LGPL) 许可...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全 Two

    JasperReport是一个开源的报表引擎,它允许开发者在Java应用程序中生成静态和动态报表。它的强大之处在于可以处理多种数据源,如数据库查询结果、XML文件、Java对象等,并能将这些数据转化为用户友好的格式,如PDF、...

    jasperreport报表模板预览 applet与servlet通信

    标题中的“jasperreport报表模板预览 applet与servlet通信”揭示了本文将要讨论的重点,即如何在Java环境中使用JasperReport库创建报表模板,并通过Applet和Servlet进行数据交互来实现预览功能。JasperReport是一个...

    Struts2与Jasperreport报表结合

    Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求并管理应用程序流程,而JasperReport则是一个强大的报告生成工具,能够创建复杂的报表设计,并以各种格式如PDF、HTML、Excel等导出。...

    iReport-5.6.0 Jasperreport 报表

    使用iReport和JasperReport进行报表开发,不仅可以提高开发效率,还能保证报表的专业性和美观度。无论是在企业级应用还是小型项目中,它们都是生成高质量报表的理想工具。通过不断学习和实践,开发者可以充分利用...

    JasperReport动态生成报表

    **JasperReport动态生成报表** JasperReport是一款强大的开源报表工具,主要用于生成各种复杂的静态和动态报表。它基于Java,可以很好地与Java应用程序、Web应用和企业级应用集成,提供丰富的报表设计和灵活的数据...

    jasperReport测试项目(含报表设计文件).rar_jasperReport 设计报表_jasperreport_报表设

    在本项目中,“jasperReport测试项目(含报表设计文件).rar”是一个压缩包,包含了一系列用于JasperReport报表设计的文件,帮助我们理解和实践报表开发。 报表设计是JasperReport的核心功能,通过使用JRXML文件,...

    JasperReport 水晶报表

    JasperReport是一款开源的报表工具,广泛应用于Java环境中,为开发者提供了设计、生成和展示复杂报表的功能。它以其灵活性、强大的数据处理能力和丰富的图表选项而备受赞誉。水晶报表(Crystal Reports)是另一款...

Global site tag (gtag.js) - Google Analytics