ireport 学习笔记

iReport 使用手册(生成 PDF 表单)(1) 针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)最新整理电子书《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!最新整理电子书[外链图片转存中…(img-O3kHGKgK-1711621042285)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》 阅读详情

交流QQ群:26651479


使用iReport制作报表的详细过程(Windows环境下)


一、准备

1.1、 安装JDK
    下载地址:http://www.sun.com
    验证JDK或是JRE是否可以默认运行,在命令行(CMD)打入X:>java 可用时出现:Usage:java..开头的一堆信息
    不可用则必须进行配置,在windows的环境变量设置:
 path:在最后面加入“;java的安装目录”
 JAVA_HOME :“java的安装目录”
 CLASSPATH:“java的安装目录/bin”
    重新验证JDK或是JRE是否可以在CMD运行

1.2、 下载iReport
    地址:http://ireport.sourceforge.net/

1.3、 准备数据库
    iReport支持绝大部分数据库,只要该数据库能提供JDBC驱动器。
    【特别提示】数据库的版本要求与iReport文件夹下的Lib目录的使用驱动程序兼容,建议下载最新版本的驱动


二、配置基本信息

2.1、配置界面使用的语言
    设置环境,通过【Tools】-【Options】开启配置iReport系统的基本信息对话框。在“Language”里面选择语言,【Apply】确认。

2.2、配置数据库连接
     这是报表与数据库的接口。点击[Report Datasources]按钮打开对话框。
     iReport 会记录以前使用的所有连接,除非手工删除,否则都会存在配置列表中,不管是否可用。
     点击【New】进入配置新连接界面,填写JDBC连接需要的信息,iReport支持多种数据源连接。
     如果需要报表提供中文内容显示可以在JDBC URL下工夫,比如输入:
         jdbc:mysql://localhost/SUBRDB?user=****&password=****&useUnicode=true&characterEncoding=GB2312
     [Test]按钮可测试数据库是否可用。

2.3、新建一个空报表的基本配置
     单击工具栏的第一个工具“New Report”,新建一个报表。

2.4、几个重要的概念
     1) iReport 的输出格式
        可以支持: PDF、HTML、CSV、JAVA2D、Excel、纯文字、JRViewer,其中最常用的是PDF、JRViewer。
        JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。 Jasperreport 提供默认的JRViewer输出类。
     2) 报表的动态对象变量、参数、字段
        ·字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。比如一个ID的所有值 $F{ filedsName }
        ·参数(Parameters):这是你的应用需要提供给报表的入口。
         比如你希望在报表被解释的时候提供 Where语句的条件值,那么就可以使用参数 $P{ parameterName }
        ·变量(Variables):这是报表中一些逻辑运算的表现,比如统计值 $V{ variablesName }
     3) 编译、静态运行、动态运行
        Jasperreport 运行时需要的就是一个jasper后缀的文件,编译过程其实就是把jrxml后缀的文件生成 jasper后缀的文件。
        静态运行和动态运行是相对的,后者带数据源运行,比如带数据库运行。
        静态运行与数据源无关,如果报表中出现和数据源有关的对象,则以null显示。
     4) 报表结构
        大致有:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
        ·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了
        ·pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。
        ·columnHeader:无可非议的这里是放置列的名称,记住不是列数据。
        ·Detial:放置需要循环的数据,比如销售记录数据。
        ·columnFooter:放置列级别的统计计算值或是列的说明。
        ·pageFooter:放置页级别的统计值或是页的说明。
        ·Summary:可能需要对几页(你的报表可能由几个页组成)的统计值。在几页的Detial之后,出现一个统计页面。
        ·groupHeader:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容。
         比如以月份为单位每组分开显示记录,那么就可以定义一个组,groupHeader就是放置组说明或是组标志最好的地方。
        ·Groupfooter:放置组的统计或是说明。

2.5、向表添加对象
     1) 添加静态对象(Static Text)
        添加文本,拖动到[Static Text]Label到需要的地方,双击他写进内容。还可编辑其大小、颜色等。
        添加图片,点击[Image Tool],选择图片,操作与Text 类似。其他静态对象操作步骤类似。
     2) 创建 SQL 查询语句
        通过菜单【资料来源】-【报表查询】开启SQL输入对话框,并在【ReportSQL Query】Label中输入SQL语句
        可自动或手动获取数据库表的可用Fields。单击【OK】 ,保存报表。
     3) 创建字段动态对象
        字段也就是数据库中的字段,通过字段的列表(工具条上可以找到 [Text Field]),可以拖放detial段
     4) 创建组
        组是一个很重要的概念,一个报表可以多个组,每个组以一个关键字为标记。
        比如希望Bug统计是根据项目(或是产品)进行统计的。那么可以设立一个项目标记的组。
     5) 添加参数和使用参数(Parameter)
        参数作用,一般是需要外界提供参数给报表的入口,比如SQL语句的 where 条件的表达式。
        通过【预览】-【报表参数】开启报表参数列表对话框(工具条上可以找到相应的工具)。
        当应用提供参数时,只要指定提供给这个参数,那么报表解释引擎即可替换这些变量然后再执行SQL语句
        例如:添加参数 id 后,可在报表的查询语句里加入 where memid = $P{id} ,页面没传来这参数时,它的值为null
     6) 添加变量和使用变量
        变量的定义类似参数,通过【预览】-【报表变量】开启报表变量列表对话框(工具条上可以找到相应的工具)
        如定义一个Bug的计数器。除了自定义变量,iReport 还有提供一些内嵌(Buildin)的变量,比如页码,行记录数等。

三、JSP生成文件
     以下是一个生成报表文件的jsp页面实例

<%@ page pageEncoding="UTF-8" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.view.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
<%
    request.setCharacterEncoding("UTF-8");
    String printer = request.getParameter("printer");//页面传来的参数
    String doc = request.getParameter("doc"); //页面传过来的,需要调用的报表的名称(如“member.jasper”就写member)
    String loadType = request.getParameter("loadType");//需生成报表的文件类型

    //连接到数据库
    String url ="jdbc:mysql://127.0.0.1:3306/test";
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection(url,"root", "root");
    //設置生成報表參數
    Map parameters = new HashMap();
    parameters.put("printer", printer);//把页面参数传给报表

    //設置jasper文件
    //如果写在Servlet里,则这句的“application”应写成“this.getServletContext()”
    File reportFile = new File(application.getRealPath("/reports/" + doc +".jasper"));
    JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile.getPath(),parameters,conn);

    try
    {  
     JRExporter exporter = null;
        if ( "xls".compareTo(loadType) == 0 )
     {
         response.setContentType("application/vnd.ms-excel");
         response.addHeader("Content-Disposition", "attachment;filename=" + jasperPrint.getName() + ".xls");
      exporter = new JRXlsExporter();
      exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
      exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
        exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
     }
     else if ( "pdf".compareTo(loadType) == 0 )
     {
         response.setContentType("application/pdf");
         response.addHeader("Content-Disposition", "attachment;filename=" + jasperPrint.getName() + ".pdf");
            exporter = new JRPdfExporter();
     }
     else if ( "html".compareTo(loadType) == 0 )
     {
         response.setContentType("application/octet-stream");
         response.addHeader("Content-Disposition", "attachment;filename=" + jasperPrint.getName() + ".html");
            exporter = new JRHtmlExporter();
            exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
     }
     else if ( "rtf".compareTo(loadType) == 0 )
     {
         response.setContentType("application/octet-stream");
         response.addHeader("Content-Disposition", "attachment;filename=" + jasperPrint.getName() + ".rtf");
            exporter = new JRRtfExporter();
     }
     else if ( "csv".compareTo(loadType) == 0 )
     {
         response.setContentType("application/octet-stream");
         response.addHeader("Content-Disposition", "attachment;filename=" + jasperPrint.getName() + ".csv");
            exporter = new JRCsvExporter();
     }
     else if ( "xml".compareTo(loadType) == 0 )
     {
            exporter = new JRXmlExporter();
     }
     else
     {
            JasperViewer.viewReport(jasperPrint); //不建议用到这个
            throw new Exception();
     }
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
        exporter.exportReport();
    }
    catch ( JRException e )
    {
     System.out.println("-----report.jsp.err: " + e);
     throw new ServletException(e);
    }
    catch ( Exception e )
    {
     System.out.println("----- view report -----");
    }
    finally
    {
        if(conn!=null)try{conn.close();}catch(Exception e){e.printStackTrace();}
    }
%>
</body>
</html>

 

Fastjson2 2.0.26反序列化漏洞深度剖析:从原理到PoC构造 本文深度剖析了Fastjson2在2.0.26及之前版本中存在的反序列化漏洞。该漏洞允许攻击者通过构造包含恶意TemplatesImpl对象的JSONArray,并利用BadAttributeValueExpException触发,在反序列化过程中实现远程代码执行。文章从漏洞原理、PoC构造、利用链分析到防御建议,提供了全面的技术解读,帮助开发者和安全人员理解其危害并采取应对措施。 阅读详情

相关推荐

Hermes Dashboard Web 端部署完整说明

通过反向代理(nginx)使用公网域名访问时,会遇到 Host 头校验、CORS 跨域、WebSocket 连接拒绝三个核心问题。本文档记录了完整的源码修改方案和部署步骤。确保 nginx 主配置加载了 WebSocket map(宝塔默认为。路径的公开访问(无需登录),其他路径仍受 Cookie 认证保护。Hermes Dashboard 默认绑定。访问站点时会先弹出浏览器密码框,输入用户。在 nginx 反向代理配置中的。环境变量动态读取允许的域名。nginx 配置中已添加。

大白菜代码的博客 800

ireport和jasperreport的简单使用

1.下载ireport包和jasperreport包  去官方网站下载。  iReport-nb-3.5.0.zip  jasperreports-3.5.0-project.zip2.使用ireport  可以直接使用ireport生成报表,jasperreport只是用来在web应用上使用报表。  1》.单独使用ireport,而且不使用中文,则不需要加入任何包到i

在交流中成长 2707

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

使用ireport+jasperReport报表生成

一、报表样式设计        1、使用ireport Design进行报表可视化设计[下载地址:http://community.jaspersoft.com/project/ireport-designer]         2、打开ireport Design并新建一个blank A4的模板,如下所示,默认定义了页面的不同结构                  3、我

敌测漏师 2789

STM32F103+AX58100 EtherCAT从站SPI移植实战:CubeMX配置避坑指南

本文详细介绍了STM32F103与AX58100 EtherCAT从站控制器的SPI接口移植实战,重点解析CubeMX配置中的关键参数与常见陷阱。内容涵盖硬件连接规范、SPI模式设置、中断优先级规划及协议栈对接技巧,帮助开发者高效实现工业自动化领域的实时通信方案。特别强调CPOL/CPHA配置与AX58100的匹配要求,避免数据错位问题。

weixin_29230865的博客 330

《QMT量化实战系列》支持自定义筛选与排序的多因子策略,实测年化收益超100% (1)

公众号推出《QMT量化实战》系列,通过多维度、多策略、多场景讲解QMT量化平台应用,每期附代码解读。本期复现《支持自定义筛选与排序的多因子策略》,策略包含三大核心模块:1. 通过Tushare获取30+财务因子数据;2. 提供灵活筛选机制(支持排除ST股、次新股及特定板块);3. 创新性多因子加权排序系统(支持自定义因子权重组合)。交易逻辑包含动态调仓机制,当持仓标的排名低于阈值时触发卖出。该策略具有高度可配置性,适合不同风险偏好的投资者。(149字)

qq_46262068的博客 1729

ireport制作jasperreport报表详细过程(包括jsp端代码实现)

概述: 现在简要的介绍Jasperreport 是如何工作的,这样你可以更好的理解iReport 是如何帮助Jasperreport 实现前端的工作,其实这些工作在我们看来就是“脏活”,为什么呢?看看下面的资料就知道了: 首先是要有一个XML文件(一般是以jrxml后缀),那么这个XML文件从那里来呢?做什么用呢? 这个XML 文件就是报表的定义文件,整个报表的每一个细节都在这个XML 文件...

weixin_33726313的博客 347

Windows 11下JDK 21与JMeter 5.6.3环境配置全攻略

环境变量是操作系统管理软件路径与执行权限的核心机制,它通过预设的键值对,指引系统在调用命令时定位可执行文件。理解其工作原理,是解决软件安装后“命令未找到”等问题的关键。对于Java生态而言,正确配置JAVA_HOME和Path变量,不仅能让java、javac等基础命令全局可用,更是Maven、Gradle乃至JMeter等众多工具链顺畅运行的基石。JMeter作为一款基于Java开发的经典性能测试与接口测试工具,其稳定运行高度依赖健全的Java环境。本文聚焦于在Windows 11系统上,为JDK 21与

weixin_30940783的博客 449

JasperReport初级教程(2.0.3)图文详解_绝对原创

如何调用Java代码,请查看另一篇文章: JasperReport初级教程(2.0.3)调用Java代码_图文详解_绝对原创  如需转载,请注明出处,http://www.川江号子.cn    。 另,本人有Word电子文档格式,如需要,请联系本人:asima127@gmail.com   由于有些图片以前是放在巴巴变上的,现在巴巴变不提供外链了,如果你愿意支付一定

2万+

rk3568 rk628桥片 rgb2hdmi

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 449

【推荐100个unity插件】制作美丽 Unity 景观,增强Terrain材质表现的插件——GTS

GTS地形着色器是一款专为Unity设计的强大工具,可解决地形纹理绘制和光照处理的难题。它提供一键式配置,支持实时调整地形效果,包含细节注入、高度混合、雪注入等核心功能,并兼容网格地形和低多边形模型。插件完美集成Gaia天气系统,支持HDRP细分效果。安装后通过GTS管理器创建配置文件并应用到地形,即可快速生成高质量地形渲染。其模块化设计包含全局设置、网格转换和细节调整等面板,使开发者能灵活控制地形表现,显著提升视觉效果与性能表现。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1564

IReport 学习笔记一

   前段时间接触了IReport,为巩固自身掌握,特此总结一下近段时间的所学。   本章节主要介绍环境的配置、界面工具操作等   IReport 是JasperReport的可视化开发工具,JasperReport使用XML来定义一个报表的结构,iReport可以让用户很方便地定义报表,而不需要手工去写这些XML文件。是免费的,不过其教程却是收费的。   1.  首先你要得到它们最新

jieyin的专栏 1111

CMake入门教程【基础篇】在Windows、Linux上安装CMake

CMake如何下载与安装

小鱼酱的博客 2725

ireport 学习笔记-单元格合并

此种报表的实现“和计”是机房人数的统计,总计是所有人数的统计![最大的难点可能就是合计这一栏的实现]  此区域主要是个报表群组,大家可以在IREPORT点击预览-》报表群组创建。      创建示图  完成上面设置后就可以看到testSpotNamneFooter区域了,能后就是在区

pingqunnayang的专栏 2955

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ireport报表Style属性,根据不同数据显示不同背景

ireport个人学习笔记 第一 二 三 四 最终 如果没效果可能跟别的控制面板的插件有冲突,删了这个字段再重新添加一次。

weixin_47863850的博客 788

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iReport学习笔记——动态报表

iReport学习笔记——动态报表 最近一直在研究jasperreport,今天终于搞定了动态报表问题。 所谓动态报表,顾名思义就是指报表的列头、列数和列内容都不是固定的,具体的数据是程序动态生成的。我们知道jasperreport的基本用法是用iReport画出模板jrxml然后编译成jasper,然后在程序里充填数据生成PDF或者其他格式的报表。但如果报表的列数不确定,就无法事先用...

caodaoxi的专栏 275

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ireport学习笔记

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33701564的博客 145

ireport jasperreport学习笔记(1)

最近开始学习ireport jasperreport开发web系统报表模块,下载最新的jasperreports-6.2.1与ireport5.6.0就开始摸索,ireport 具体安装方法百度后一大把,这里就不再赘述。集成到web系统中也很方便,显示html视图,导出excel,pdf网上也有很多对应代码,但测试的时候发现导出excel,pdf一直失败。而且抛出的异常比较诡异,异常代码为:org

q272870127的博客 407

iReport学习笔记(一)

      工作半年多了,做得杂,包括几个报表(导出pdf),在此总结一下用ireport报表开发报表的小技巧及一些常见问题的处理方法(本人用的是3.6.1版本):1.如何实现中文显示:     下载亚洲字体包iTextAsian.jar(包含中文字体),然后在iReport界面中进入:工具——选项——iReport——Classpath,通过“Add JAR”选项将iTextAsian.jar添加进去。这时文本区域的属性面板中的字体设置如下:pdfFontName项选"STSong-Light",勾选is

sisihcl_2009的专栏 699

iReport学习笔记——多张报表连续输出

<br />因实习工作需要,最近两天一直在研究iReport,入门的文章比较多,不再赘述。这是一个比较好的入门教程。http://hi.baidu.com/xhz12345/blog/item/c85f36239b4f5f41ac34de45.html<br />经常做报表的人知道,报表或者合同的开头通常包含封面或者一系列固定的说明和介绍信息,比如目录大纲,公司简介等,报表结尾通常又有一些固定不变的 内容,比如条款,签名等,而用过iReport做报表的人知道,其一次只能编辑一个报表模板,显然一个报表模板无

wpcxyking的专栏 8167

ireport学习笔记---第一个报表

先不管ireport里面元素的东西,我们先来一个简单的报表,之后慢慢的在学习那些细节的东西吧,希望这些东西对初学ireport的网友有所帮助  ireport的下载我在上篇学习笔记中有下载地址,数据库吗,随便哪种都可以。我这里用sql server 2005的数据库,都大同小异。  1. 运行我们的ireport,点击“文件”--“新建文档”  如下图所示:2. 点击“数据”--“数据源连接”,

sxzhliang的专栏 1205

答复: iReport 用户手册(可下载)

短短的4个小时,下载次数: 64 次了,说明这资料还是有用的。 如果觉得资料还有用的话,我这里还有:jasperReport+ireport中文指南.pdf;jasperreoprt+ireport学习笔记2到4.pdf...可以找我要。 毕竟:在信息爆炸的今天,交流是提高技术水平与管理水平的快捷方式!...

睿智科技 185
上一篇: php 学习笔记
下一篇: Agentflow 示例
daillo
博客等级 码龄18年 42粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值