【ireport工具制作报表使用流程】

  • 1.ireport使用说明
    • 2.安装包及相关环境下载
    • 3.快速入门上手
  • 如何使用代码生成报表

1.ireport使用说明

ireport 是一款方便实用的报表编辑工具,你可以使用这个工具通过简单的拖拉的形式设计自己需要的报表页面,同时它可以独立连接数据库。如果你想学习如何使用ireport工具你 可以仔细阅读这篇文章。

2.安装包及相关环境下载

由于ireport工具年代已经比较久远,而且不是国内开发的软件,已经被收购所以下载建议不要找官网,可以找百度网盘等别人下载好的链接地址,或者头铁的去官网试一试:

  1. 官网下载地址: ireport官网下载地址
  2. 百度网盘下载地址 百度网盘下载地址
    提取码:j8e4;
  3. 下载完成后,无法直接打开,应为软甲比较老旧不支持jdk1.7以上的jvm环境,所以还需要下载一个jdk1.7,(电脑中有jdk1.7或以下版本的忽略即可)JDK 1.7安装包(Windows 64位)可以在官网上下载,也可以在百度网盘上下载 jdk-7u80-windows-x64.exe。
    链接:jdk1.7下载地址
    提取码:lj89
  4. 以上环境相关安装完成即可打开;

3.快速入门上手

  1. 安装完成后打开软件,首先需要设置数据库连接(这里以Mysql为例,其他类似);

  2. 配置完数据库后点击文件=》New,根据报表情况选择对应的模板


根据指示填写相关信息后点击完成

进入设计页面,页面右侧会显示属性栏和组件面板栏 左边展示报表设计格式

其中Detail1是用来存放列表信息的可以存在多个,其余的部分只能存在一个,每一个Detail1都可以编辑一个对应的SQL来获取报表数据。每个模块生成报表后展示如下

通过使用组件面板的工具设计好报表样式后,我们可以通过工具直接编译预览
首先在最左侧的操作栏中选中你的项目右键找到属性
在属性中找到When No Data这个设置为如图所示,
点击编译后可以进行预览


其中Detail1中的信息需要通过SQL来展示,我们需要点击图中按钮位置来进行SQL编写及报表页面中相关报表的变量内容设置。


最后一定要注意在你设计完成之后还需要对内容中的字体进行pdf设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0duYl91w-1652084941143)(https://img-在这里插入代码片blog.csdnimg.cn/3105c0d45dda4efcb0e4c09fe0e674ef.png)]

在属性上找到最后面的PDF相关设置,然后将值设置为如果所示的值。然后通过编译预览功能就可以查看报表。

如何使用代码生成报表

参考以下代码

package com.ntocc.util.ireport;import com.ntocc.config.RDSConnection;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Map;/*** @author: luocw* @date: 2019/03/04 09:28* @Desc: :描述该类的主要功能*/
@Component
public class IReportUtils {private static Connection connection;private static Logger logger = LoggerFactory.getLogger(IReportUtils.class);/*** 获取数据库连接* @return*/public static Connection getConnection(){String driver = RDSConnection.driver;String url = RDSConnection.url;String user = RDSConnection.user;String pass = RDSConnection.pass;try {Class.forName(driver);Connection con = DriverManager.getConnection(url, user, pass);return con;}catch(Exception e){e. printStackTrace();logger.error(e.getMessage());}return null;}/*** 单例模式* @return*/public static Connection getConn(){if (connection == null ){connection = getConnection();}return connection;}/**使用模板和数据库直连模式不安全,不建议使用* 导出pdf* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToPdf(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.pdf";}else {defaultFileName = defaultFileName + ".pdf";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());ServletOutputStream ouputStream = response.getOutputStream();JasperExportManager.exportReportToPdfStream(jasperPrint, ouputStream);ouputStream.flush();ouputStream.close();}/*** 导出doc文件* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToDoc(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.doc";}else {defaultFileName = defaultFileName + ".doc";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());//设置导出输出流JRExporter exporter = new JRRtfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());exporter.exportReport();}/*** 导出html文件* @param jasperFile* @param paramMap* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToHtml(String jasperFile, Map<String,Object> paramMap, HttpServletRequest request,HttpServletResponse response) throws IOException, JRException {response.setContentType("text/html");JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());ServletOutputStream ouputStream = response.getOutputStream();JRHtmlExporter exporter = new JRHtmlExporter();exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);//设置图片文件存放路径,此路径为服务器上的绝对路径String imageDIR =request.getSession().getServletContext().getRealPath("/");exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, imageDIR);//设置图片请求URIString imageURI = request.getContextPath() + "/";exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, imageURI);//设置导出图片到图片存放路径exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.TRUE);exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);exporter.exportReport();ouputStream.flush();ouputStream.close();}/*** 导出xls文件* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToExcel(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.xls";}else {defaultFileName = defaultFileName + ".xls";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());//设置导出输出流ServletOutputStream ouputStream = response.getOutputStream();JRXlsExporter exporter = new JRXlsExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);// 删除记录最下面的空行exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);// 删除多余的ColumnHeaderexporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);// 显示边框exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);exporter.exportReport();ouputStream.flush();ouputStream.close();}/*** 导出pdf* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToPdf(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response, JRDataSource dataSource) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.pdf";}else {defaultFileName = defaultFileName + ".pdf";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = new JasperPrintWithDataSource(paramMap, jasperFile, dataSource).getJasperPrint();ServletOutputStream ouputStream = response.getOutputStream();JasperExportManager.exportReportToPdfStream(jasperPrint, ouputStream);ouputStream.flush();ouputStream.close();}/*** 导出doc文件* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToDoc(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response, JRDataSource dataSource) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.doc";}else {defaultFileName = defaultFileName + ".doc";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = new JasperPrintWithDataSource(paramMap, jasperFile, dataSource).getJasperPrint();//        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());//设置导出输出流JRExporter exporter = new JRRtfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());exporter.exportReport();}/*** 导出html文件* @param jasperFile* @param paramMap* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToHtml(String jasperFile, Map<String,Object> paramMap, HttpServletRequest request,HttpServletResponse response, JRDataSource dataSource) throws IOException, JRException {response.setContentType("text/html");JasperPrint jasperPrint = new JasperPrintWithDataSource(paramMap, jasperFile, dataSource).getJasperPrint();
//        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFile,paramMap, getConn());ServletOutputStream ouputStream = response.getOutputStream();JRHtmlExporter exporter = new JRHtmlExporter();exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);//设置图片文件存放路径,此路径为服务器上的绝对路径String imageDIR =request.getSession().getServletContext().getRealPath("/");exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, imageDIR);//设置图片请求URIString imageURI = request.getContextPath() + "/";exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, imageURI);//设置导出图片到图片存放路径exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.TRUE);exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);exporter.exportReport();ouputStream.flush();ouputStream.close();}/*** 导出xls文件* @param jasperFile* @param paramMap* @param defaultFileName* @param request* @param response* @throws IOException* @throws JRException*/public static void exportToExcel(String jasperFile, Map<String,Object> paramMap, String defaultFileName, HttpServletRequest request,HttpServletResponse response, JRDataSource dataSource) throws IOException, JRException {if (StringUtils.isEmpty(defaultFileName)){defaultFileName =  "export.xls";}else {defaultFileName = defaultFileName + ".xls";}String fileName = new String(defaultFileName.getBytes("GBK"), "ISO8859_1");response.setHeader("Content-disposition", "attachment; filename="+ fileName);JasperPrint jasperPrint = new JasperPrintWithDataSource(paramMap, jasperFile, dataSource).getJasperPrint();//设置导出输出流ServletOutputStream ouputStream = response.getOutputStream();JRXlsExporter exporter = new JRXlsExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);// 删除记录最下面的空行exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);// 删除多余的ColumnHeaderexporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);// 显示边框exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);exporter.exportReport();ouputStream.flush();ouputStream.close();}}

【ireport工具制作报表使用流程】相关推荐

  1. 解决 Birt 等报表工具制作报表的几个难题

    解决Birt等报表工具制作报表的几个难题 在上一篇<Birt 如何实现不规则月份统计>中,我们讲解了如何帮助 Birt 制作这种报表的详细过程,在本文中我们再继续讨论几个类似的制作难题,并 ...

  2. Java制作报表系统流程_finereport报表制作详细过程

    一般来说,一个完整的报表设计流程,大体分为如下几个步骤: 1:打开设计器 2:配置数据源 3:新建报表 4:配置私有数据源 5:报表设计 6:预览报表 7:发布报表 第一部分:配置数据源 打开报表设计 ...

  3. Java制作报表系统流程_基于JAVA报表生成系统设计与实现.doc

    基于JAVA报表生成系统设计与实现 摘 要 现在是信息社会,各种信息都需要处理并直观展现,如股票,物价等信息都需要通过数据报表来展现.分析,因此高质量报表软件系统具有重要的实际意义. 本论文课题研究探 ...

  4. iReport 4.1 报表制作,子报表,实例解析

    开发使用步骤(iReport 4.1.1) (个人总结,如有问题请留言,另外知道table控件用法的给我留言或者发邮件谢谢.Email:jiazx0107@163.com) 目录 1.      开发 ...

  5. iReport 4.1 报表、子报表、主从报表、合计、实例解析

    开发使用步骤(iReport 4.1.1) 1.      开发使用步骤(iReport4.1)... 2 4.1.       JasperReport 和iReport的介绍... 2 4.1.1 ...

  6. iReport制作报表

    文章将会涉及3个方面的内容: 第一部分:使用iReport制作报表的详细过程(Windows环境下) 第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用 第三部分:使用Jasper ...

  7. 第一部分:使用iReport制作报表的详细过程(Windows环境下)

    第一部分:使用iReport制作报表的详细过程(Windows环境下) 提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/ ...

  8. IReport制作报表——日期时间显示格式

    IReport工具在制作报表的时候,会有日期或者日期时间的显示,我们可以给日期显示组件设置Pattern 属性值为我们想要的日期格式就可以了. 一般我们要显示的大多是:2013-06-04 03:36 ...

  9. 【报表技术】IReport图形化报表开发工具生成PDF文档

    [报表技术]IReport图形化报表开发工具生成PDF文档 新建一个文件. 由于IReport的默认设置是不支持中文的,IReport没有内置中文的包. 了解报表模板结构. ①title:报表标题. ...

最新文章

  1. 我,斯坦福AI读博,李飞飞是师娘,5年5篇顶会论文,依然一度抑郁怀疑人生
  2. 用sp_addlinkedserver建立链接服务器(sql server2008中通过测试)
  3. 34_pytorch,动量与lr衰减(momentum,learning rate)--学习笔记
  4. IntelliJ IDEA不好用?那是因为没掌握这些技巧
  5. 20160411作业
  6. SAP Spartacus界面注册用户获取OAuth Access Token的方式
  7. 将 WinForms 应用从 .NET Core 3.0 升级到 3.1
  8. [vue-cli]vue-cli提供了的哪几种脚手架模板?
  9. 深入理解移动前端开发之viewport
  10. 什么是分布式_什么是分布式系统,如何学习分布式系统?
  11. SQL Server 索引结构及其使用
  12. 百度天链平台:企业区块链技术赋能产业创新落地
  13. 实战:基于服务端开发和前后端分离开发区别
  14. vmplayer虚拟机文件夹共享不生效解决方法
  15. 智慧城管统计考评详解
  16. feedsky官网访问异常
  17. win10企业版跟win10专业版有什么区别,win10系统版本区别
  18. 旷世科技IoU-Net
  19. CS全球排名44,复旦计科实力如何?
  20. 机器学习之sklearn使用下载MNIST数据集进行分类识别

热门文章

  1. python实战:利用chrome抓包插件HTTP间谍分析有道翻译反爬机制
  2. 两台笔记本 共享上网
  3. Java毕设项目美发门店管理系统计算机(附源码+系统+数据库+LW)
  4. C#+ArcGIS Engine 获取地图中选中的要素
  5. matlab griddata nan,请教Matlab的griddata的用法
  6. 流程图符号及流程图的例子
  7. 好买衣虚拟试衣间之后 淘宝Buy+式理想国已不远
  8. 电信双百兆体验极速生活
  9. 【Tauri学习】自制剪切板管理工具
  10. R语言计算数值的反对数(antilog,antilogarithm)实战