⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reportmanagement.java

📁 java版源代码,里面包含很多源代码,大家可以看看.
💻 JAVA
字号:
package com.trulytech.mantis.util;

import java.util.*;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
import com.trulytech.mantis.system.Properties;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import com.trulytech.mantis.result.DBResult;
import com.trulytech.mantis.system.logWriter;
import net.sf.jasperreports.engine.util.JRLoader;

/**
 *
 * <p>Title: Mantis</p>
 *
 * <p>Description: 生成jasperReport</p>
 *
 * <p>Copyright: Copyright (c) 2002</p>
 *
 * <p>Company: </p>
 *
 * @author Wang Xian
 * @version 1.0
 */
public class ReportManagement {
  /**
   * 打印摸版文件名
   */
  private String rptFile;
  /**
   * 参数列表
   */
  private HashMap param;

  private HashMap meta;

  private Object[][] data;

  public ReportManagement(String rptFile) {
    this.rptFile = rptFile;
  }

  public ReportManagement(String rptFile, HashMap param) {
    this.rptFile = rptFile;
    this.param = param;
  }

  public void setRptFile(String rptFile) {
    this.rptFile = rptFile;
  }

  /**
   * 设置参数信息,对应jasperReport中的parameter信息
   * @param param HashMap
   */
  public void setParam(HashMap param) {
    this.param = param;
  }

  public void setData(Object[][] data) {
    this.data = data;
  }

  public void setMeta(HashMap meta) {
    this.meta = meta;
  }

  public String getRptFile() {
    return rptFile;
  }

  public HashMap getParam() {
    return param;
  }

  public HashMap getMeta() {
    return meta;
  }

  public Object[][] getData() {
    return data;
  }

  /**
   * 设置数据信息,对应jasperreport中的Field
   * @param Result DBResult
   */
  public void setData(DBResult Result) {
    if (Result != null) {
      this.data = Result.toArray();
      this.meta = new HashMap();
      for (int i = 0; i < Result.ColumnCount; i++) {
        meta.put(new Integer(i).toString(), new Integer(i));
      }

    }
  }

  /**
   * 产生JasreportPrint
   * @return JasperPrint
   * @throws Exception
   */
  public JasperPrint GenerateRpt() throws Exception {

    JasperReport jasperReport = (JasperReport) JRLoader.
        loadObjectFromLocation(Properties.
                               RptTemplatePath +
                               this.rptFile);

    DataSource dataSource = null;

    if (meta == null)
      dataSource = new DataSource();
    else if (data == null) {
      dataSource = new DataSource();
    }
    else if (data.length == 0) {
      dataSource = new DataSource();
    }
    else
      dataSource = new DataSource(meta, data);

    JasperPrint jasperPrint = JasperFillManager.fillReport(
        jasperReport,
        param, dataSource);

    return jasperPrint;

  }

  /**
   * 输出PDF报表到文件
   * @param Filename String
   * @param jasper JasperPrint
   * @return String
   * @throws Exception
   */
  public String ExportPDFFile(String Filename, JasperPrint jasper) throws
      Exception {

    logWriter.Debug("输出PDF报表到" + Filename);

    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasper);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, Filename);
    exporter.exportReport();
    exporter = null;
    jasper = null;
    data = null;
    if (meta != null)
      meta.clear();
    meta = null;
    if (param != null)
      param.clear();
    param = null;
    return "";
  }

  /**
   * 输出PDF文件到HttpServletResponse
   * @param response HttpServletResponse
   * @param jasper JasperPrint
   * @return String
   * @throws Exception
   */
  public String ExportPDF(HttpServletResponse response, JasperPrint jasper) throws
      Exception {
    logWriter.Debug("输出PDF报表");

    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", " filename=report.pdf");
    ServletOutputStream ouputStream = response.getOutputStream();
    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasper);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
    exporter.exportReport();
    ouputStream.flush();
    ouputStream.close();
    exporter = null;
    jasper = null;
    data = null;
    if (meta != null)
      meta.clear();
    meta = null;
    if (param != null)
      param.clear();
    param = null;
    return "";
  }

  /**
   * 输出Excel报表到文件
   * @param Filename String
   * @param jasper JasperPrint
   * @return String
   * @throws Exception
   */
  public String ExportExcelFile(String Filename, JasperPrint jasper) throws
      Exception {
    logWriter.Debug("输出Excel报表到" + Filename);

    JRXlsExporter exporter = new JRXlsExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasper);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, Filename);
    exporter.exportReport();
    exporter = null;
    jasper = null;
    data = null;
    if (meta != null)
      meta.clear();
    meta = null;
    if (param != null)
      param.clear();
    param = null;
    return "";
  }

  /**
   * 输出Excel报表到HttpServletResponse
   * @param response HttpServletResponse
   * @param jasper JasperPrint
   * @return String
   * @throws Exception
   */
  public String ExportExcel(HttpServletResponse response, JasperPrint jasper) throws
      Exception {

    logWriter.Debug("输出Excel报表");

    response.setContentType("application/msexcel");
    response.setHeader("Content-Disposition", " filename=report.xls");
    ServletOutputStream ouputStream = response.getOutputStream();
    JRXlsExporter exporter = new JRXlsExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasper);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
    exporter.exportReport();
    ouputStream.flush();
    ouputStream.close();
    exporter = null;
    jasper = null;
    data = null;
    if (meta != null)
      meta.clear();
    meta = null;
    if (param != null)
      param.clear();
    param = null;
    return "";
  }
}

/**
 *
 * <p>Title: Mantis</p>
 *
 * <p>Description: 用于Jasper报表的数据源</p>
 *
 * <p>Copyright: Copyright (c) 2002</p>
 *
 * <p>Company: </p>
 *
 * @author Wang Xian
 * @version 1.0
 */
class DataSource
    implements JRDataSource {
  private Object[][] data;
  private int index;
  private Map meta;

  public DataSource(Map meta, Object[][] data) {
    this.meta = meta;
    this.data = data;

    this.index = -1;
  }

  public DataSource() {
    this.meta = null;
    this.data = null;

    this.index = -1;
  }

  public Object getFieldValue(JRField field) throws
      JRException {
    if (this.data == null)
      return "";
    else
      return data[index][getMetaIndex(field.getName())];
  }

  public boolean next() throws JRException {
    if (data == null)
      return false;
    else {
      index++;

      return (index < data.length);
    }
  }

  private int getMetaIndex(String name) {
    if (this.meta == null)
      return 0;
    else
      return ( (Integer) meta.get(name)).intValue();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -