这几天本人专门对网络报表的设计及打印技术进行了调查研究,在网上收集了许多相关资料,其中ireport+jasperreport是许多相关人士的首推,因此本人对此进行了较详细的学习,下面是本人在学习ireport和jasperreport过程中碰到的一些问题及网上摘录的解决方法,希望大家阅读此文后会有所收获。
1.Jasperreport及ireport简介:
   JasperReport 是一款报表打印组件,是开放源代码组织 sf.net 中的一个 java 报表打印工程,JasperReport 的最新版本是 0.5.2 版,最新版本可以从 http://jasperreports.sourceforge.net/index.html 下载得到。
    iReport 也是开源组织 sf.net 中的一款免费软件,其主要作用是用来以可视化的方式设计生成 JasperReport 所使用的报表格式文件,因为 JasperReport 本身并未提供很好的可视化报表设计工具,iReport 的出现正好弥补了这个缺陷。iReport 的最新版本是 0.3.0,
iReport 可以从 http://ireport.sourceforge.net 下载得到。
2.Jasperreport及ireport的安装及配置:
Jasperreport不用另外进行安装,只需要下载JasperReport-x.x.x.jar 文件就可以了。JasperReport 的配置比较简单,直接将JasperReport-x.x.x.jar 文件添加到操作系统的环境变量 ClASSPATH 中即可完成 JasperReport 的配置。
iReport 在 Windows 平台也是以.zip 形式的文件提供的,直接解压缩后就算完成了安装。只有 2.x 版的iReport需要配置,3.0 版的iReport无需进行任何配置,直接启动时 ireport.bat 文件就可以了。
3.iReport中文显示的问题:
   1)、当iReport中提示框输入中文不能正常显示时,直接将iReport下lib中的tinylaf.jar这个包删除即可。
  2)、在iReport中运行报表时如果出现乱码问题时,将itext-1.02b.jar和iTextAsian.jar这两个包加到CLASSPATH即可。即加入到C:/iReport-0.3.0/lib目录中即可。
3)、带有中文显示的报表:
任意画一文本框,双击它,在出现的对话框中选择 Static Text 项,修改 text 内容为汉字,如下所示:
同时,修改 FONT 项中的内容与下图相同
改动的地方有三项,一是 font name,二是 PDF font name 三是 PDF Encoding 再次预览报表即可显示中文报表。上面修改的第二和第三项在JRViewer中是看不出来效果的,如果选择报表的生成结果为PDF 格式则会体现出来。
4. 设置数据库连接
   选择“data source”菜单中的“Connections/Datasources”,在打开的数据连接列表窗口中点击“new”以便新增一个数据源,JasperReport 可以使用多种数据源,可以是 JDBC 数据库连接,也可以是从 XML 文件中取数据等,以下是使用 ORACLE 中的 CH 数据库做为数据源的一个配置例子。
         
上例中是以 ORACLE 做为数据库的一个例子,我们还需要手工复制 ORACLE 的 JDBC 驱动文件到 iReport 的 lib 目录,复制 JDBC 驱动以外需要重新运行 iReport 才会生效。配置好数据源以后,点击“Test”按钮,如果配置没有错误,应该会出现如下所示的内容:
测试数据库连接成功后,点击“Save”按钮保存这个数据源以便完成数据源的配置。
5.JasperReport 在程序中的应用
   在网上找到JasperReport 在程序中的应用的例子,现摘录如下:
1.) Servlet:
import javax.servlet.*;
import javax.servlet.http.*;
import dori.jasper.engine.*;
import java.io.*;
import java.util.*;
import java.sql.*;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class TestReport extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn =
DriverManager.getConnection(

"jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=sa");
ServletContext servletContext =this.getServletContext();
File reportFile = new File(servletContext.getRealPath("test/iteminfo.jasper"));
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (JRException jre) {
System.out.println("JRException:" + jre.getMessage());
} catch (Exception e) {
System.out.println("Exception:" + e.getMessage());
}
}
public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
2.) JSP:

<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
//数据库连接
Connection conn=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=
sa");
//取到编译后的jasper文件
File reportFile = new File(application.getRealPath("test/iteminfo.jasper"));
//向报表中定义的参数赋值
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
3.)如何将 PDF 格式报表结果直接输出到打印机
注:这段代码只能应用在JavaApplication中
public void print() throws UnsupportedFormatException
{
save("./tmp.pdf");
try
{
String osName = System.getProperty("os.name");
//FOR WINDOWS 95 AND 98 USE COMMAND.COM
if (osName.equals("Windows 95") || osName.equals("Windows 98"))
{
Runtime.getRuntime().exec("command.com /C start acrord32 /p " + "./tmp.pdf");
}
//FOR WINDOWS NT/XP/2000 USE CMD.EXE
else
{
Runtime.getRuntime().exec("cmd.exe /C Start acrord32 /p " + "./tmp.pdf");
}
}
catch (IOException IOE)
{
JOptionPane.showMessageDialog(null, IOE.getMessage(), "RuntimeException",
JOptionPane.ERROR_MESSAGE);
}
}
6. 以上是本人在学习Jasperreport及ireport中认为应该注意的及容易碰到的一些问题,许多解决方案是直接从网上摘录的,另外Jasperreport及ireport的软件及一些相关的学习资料,我已经将其COPY到公司的SERVER服务器暂存盘上我的个人目录下的网络报表设计子目录中,大家要是不想自己去下载,可直接到服务器上去COPY一份,同时也希望对大家有所帮助。

网络报表学习体会心得!相关推荐

  1. 计算机应用基础心得体会300字,网络远程学习的心得体会

    网络远程学习的心得体会 当我们经过反思,有了新的启发时,写一篇心得体会,记录下来,这样有利于培养我们思考的习惯.那么写心得体会要注意的内容有什么呢?下面是小编为大家整理的网络远程学习的心得体会,希望对 ...

  2. 关于java学习体会心得

    关于初次学习java,在python的基础上,学习java,但是学习起来还是很困难.对于学习的列表.字典.循环等,在python中学习很差,所以导致java学习比较难. 在面向程序时,比较容易学习,但 ...

  3. 下位机和上位机通信 学习体会心得

    使用 sim 卡的  下位机 所处的环境是在 移动/联通   的局域网中 上位机 处于 电信 即 互联网中 想要将 包  放到我们的电脑上即上位机  ,必须通过  移动/联通 的网关 发送到 电信的网 ...

  4. 中国教师研修网计算机培训心得体会,教师网络培训学习心得体会最新5篇精选...

    我感到这次培训活动不空洞,是一次既经济又有实效的培训活动,我们真的能够与课改专家应对面的交流,获取最新的教改信息和最优的教学方式.一起来看看教师网络培训学习心得体会最新5篇精选,欢迎查阅! 教师网络培 ...

  5. 计算机能力提升选网络研修,信息技术能力提升工程网络研修学习心得体会2017...

    <信息技术能力提升工程网络研修学习心得体会.doc>由会员分享,可免费在线阅读全文,更多与<信息技术能力提升工程网络研修学习心得体会[2017]>相关文档资源请在帮帮文库(ww ...

  6. 2022年网络我的网络爬虫学习心得

    2022年网络我的网络爬虫学习心得 写在前面 一.心得 二.爬虫项目中所需要的pip模块 1.requests 2.bs4 3.Pandas 4.selenium 5.Scrapy 6.gerapy_ ...

  7. 小学生计算机课学生心得,【小学信息技术学习体会13篇】_小学信息技术学习体会范文大全_2021年小学信息技术学习体会_东城教研...

    小学信息技术学习体会 大家都对小学信息技术学习体会特别关注,东城教研特别为大家整理了一些有关小学信息技术学习体会的内容,其中,培养学生的创新意识和创造能力.下面就结合我的教学实践,谈谈我的几点体会.一 ...

  8. 计算机技术应用体验,2018教师信息技术应用体验学习个人心得体会2篇

    1.用现代教学技术进行多媒体教学是现代教育的一大趋势.信息技术教育培识,通过这次培训才知道计算机技术只是信息技术的一部分,计算机只是我们获取信息最有效的工具.而信息技术课主要内容是以计算机和网络技术为 ...

  9. 学计算机个人心得体会,学习计算机心得体会范文五篇

    学习计算机心得体会范文五篇 当我们受到启发,对生活有了新的感悟时,写心得体会是一个不错的选择,这样可以记录我们的思想活动.那么写心得体会要注意的内容有什么呢?以下是小编精心整理的学习计算机心得体会范文 ...

最新文章

  1. 【yolov4目标检测】(4) opencv+yolov4-tiny 实现选择性目标检测,附python完整代码
  2. 查找(三)——基于平衡二叉树的查找(对排序二叉树的改进)
  3. VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)
  4. 10个常用的Python图像处理工具,非常全了
  5. java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
  6. 什么叫做石英表_石英表 是什么意思??
  7. Tomcat 服务器只能存有一个正在运行的项目
  8. angular日期输入框html,html5 – Angular2:日期格式文本框ngModel不起作用
  9. Etcd超全解:原理阐释及部署设置的最佳实践
  10. Landsat 8卫星波段介绍以及波段组合
  11. vuecli3代码压缩混淆
  12. 有关private T
  13. Django搭建个人博客之编写博客文章的Model模型
  14. Ken Thompson的话
  15. 可重入锁模拟三个线程之间的通信
  16. 《数字图像处理》-(3)-1从傅里叶级数到傅里叶变换详细推导以及傅里叶图像的性质
  17. 服务器安装docker和docker-compose,并开放2375端口
  18. STM32中的程序在RAM还是FLASH里运行?
  19. springboot feign 404 小坑
  20. 毒液:致命守护者HDTC1080清晰英语中字

热门文章

  1. excel导出java.lang.ArrayIndexOutOfBoundsException:-32768
  2. 过压保护电路(OVP)
  3. 带孩子看的100部BBC经典纪录片
  4. Allegro自动10度走线详细教程
  5. Python基础06-数据结构
  6. 常见笔顺错误的字_笔画容易出错的字?
  7. Android基站定位——通过手机信号获取基站信息
  8. 枫叶蓝代码生成工具 和对服装行业的一些感悟
  9. 贪心问题(Python代码实现)——磁带最优存储问题
  10. 国家药监局打印不了(打印插件一直弹框)