- 浏览: 477889 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
a115962262:
谢谢小伙伴,还好有你,拿回去试试,要兼容windos和linu ...
hyperic-sigar-1.6.4 java获取软硬件相关信息 -
东辉VS风行:
东辉VS风行 写道写的很好,没看懂的就要自己多看些书,别喷楼主 ...
extjs4 异步树的写法 -
东辉VS风行:
写的很好,没看懂的就要自己多看些书,别喷楼主 我感觉楼主写的 ...
extjs4 异步树的写法 -
546968662:
博主给解释一下异步请求时为什么会带上节点参数id
extjs4 异步树的写法 -
amwons:
谢谢了!这东西还真不好找。
hyperic-sigar-1.6.4 java获取软硬件相关信息
最近工作中用到报表,而我在学习JasperReport的过程中遇到了很多问题(主要是国内的资料太少了),网上很少找得到,在此我就把我找到的一些资料和大家共享,希望能对大家有所帮助。
1、JasperReport和iReport的资源,最新版本可以到下面官方网站得到
iReport官方网站:
http://ireport.sourceforge.net
JasperReport官方网站:
http://jasperreports.sourceforge.net
2、安装
1)、JDK的安装,并配置JAVA_HOME
比如我的JAVA_HOME路径如下:
JAVA_HOME D:\Program Files\j2sdk1.4.2_03
2)、由于中文的问题,所以还需要下载:itext-1.02b.jar和iTextAsian.jar包
下载地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
并在CLASSPATH中设置
例如我的CLASSPATH如下:
CLASSPATH
E:\Program Files\Apache Group\Tomcat4.1\webapps\testreport\WEB-INF\lib\itext-1.02b.jar;E:\Program
Files\Apache Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib\iTextAsian.jar;E:\Program Files\Apache
Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib;D:\tools\iReport0.2.3\lib
3)、iReport的安装iReport只要解压就OK,如果没有安装Ant,可以直接在iReport下的noAnt目录下,
运行startup.bat就可以了,这样iReport就可以启动了
4)、JasperReport
Jasperreport不需要任何配置,你只需将下载以后的jar包放到classpath下即可
5)、数据库的JDBC驱动包
加入到CLASSPATH中
3、详细资源
iReport官方提供了一些关于iReport视频,对于初学者很有帮助:
地址:http://ireport.sourceforge.net/docs.html
JasperReport官方提供的使用指南
地址:http://jasperreports.sourceforge.net/tutorial/index.html
JasperReport提供的一些例子:
地址:http://jasperreports.sourceforge.net/samples/index.html
4、常见问题
1)、iReport中提示框输入中文是不能正常显示,请将iReport下lib中的这个包删除tinylaf.jar
2)、在iReport中运行报表时如果出现乱码问题,请检查itext-1.02b.jar和iTextAsian.jar这两个包是否加到CLASSPATH
3)、在jsp或servlet高度报表时出现乱码或不显示,请检查你在报表设计过程中所设置的字体及其编码
比如:pdfname、pdfencoding
5、下面是两个调试例子
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);
}
}
jsp写法如下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="com.zx.report.util.CarUse"%>
<%@ page import="dori.jasper.engine.data.*" %>
<%
Connection conn = null;
Statement st = null;
ResultSet rs = null;
byte[] bytes = null;
List carUseList=new ArrayList();
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn =DriverManager.getConnection("jdbc:microsoft:sqlserver://10.10.10.207:1433;DatabaseName=report;user=sa;password=111111");
//以输入流方式
InputStream reportFile = getClass().getClassLoader().getResourceAsStream("carUserBd.jasper");
//以reportFile方式
//File reportFile =new File(request.getRealPath("/report/carUserBd.jasper"));
Map parameters = new HashMap();
String sqlCarUser="SELECT car.carNo, dept.Name , people.peopleName,carUse.useDescription ," +
" carUse.beginTime , carUse.planEndTime , carUse.comment , carUse.driver," +
" carUse.peopleNumber ,OneWay= case carUse.isOneWay when 0 then '双程' else '单程' end, " +
"isFirst= case carUse.priority when 0 then '低' when 1 then '中' else '高' end, carUse.start , " +
"carUse.destination , people.peopleName as ratifier FROM DEPT_CARUSELOG carUse , DEPT_CARINFO car , " +
"ADMIN_ORGANIZATION dept , PUBLIC_PEOPLEINFO people WHERE carUse.id=290 and " +
"caruse.carId=car.carId and carUse.departId=dept.id and carUse.peopleId=people.peopleId";
st = conn.createStatement();
rs = st.executeQuery(sqlCarUser);
while(rs.next()){
CarUse carUse=new CarUse();
carUse.setCarNo(rs.getString(1));
carUse.setName(rs.getString(2));
carUse.setPeopleName(rs.getString(3));
carUse.setUseDescription(rs.getString(4));
carUse.setBeginTime(rs.getDate(5));
carUse.setPlanEndTime(rs.getDate(6));
carUse.setComment(rs.getString(7));
carUse.setDriver(rs.getString(8));
carUse.setPeopleNumber(rs.getString(9));
carUse.setOneWay(rs.getString(10));
carUse.setIsFirst(rs.getString(11));
carUse.setStart(rs.getString(12));
carUse.setDestination(rs.getString(13));
carUse.setRatifier(rs.getString(14));
carUseList.add(carUse);
}
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(carUseList);
bytes =
JasperRunManager.runReportToPdf(
reportFile,
parameters,
ds);
String fileName = "test.pdf";
response.setContentType("application/pdf");
response.addHeader(
"Content-Disposition",
"attachment;filename=\"" + fileName);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
System.out.println("5");
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (SQLException sqle) {
System.out.println("SQLException:" + sqle.getMessage());
} catch (JRException e) {
e.printStackTrace();
}catch(ClassNotFoundException cnfe){
}
%>
jasperreport可以用Collection做为数据源,这种方式比用Connection方式更为灵活方便。
发表评论
-
spring security3 配置
2021-06-20 11:15 281<?xml version="1.0 ... -
JSP禁用缓存常用方法
2021-05-30 10:44 322jsp页面禁止缓存设置 1.客户端缓存要在<hea ... -
forward和redirect的区别
2021-05-29 09:55 2491.从地址栏显示来说 ... -
禁用浏览器的后退按钮
2013-04-13 22:49 1357如何禁用浏览器的后退按钮: 在登录表单提交页面中加入如下 ... -
限制同一个会话只允许一个账号登录,针对ie7、e8多标签同一会话问题
2013-04-13 23:17 1762package com.anxiesoft.util; ... -
Servlet、Filter、Listener执行的先后顺序
2021-05-29 09:54 983Listener在web容器中优先于Fiter执行,即在F ... -
jdbc连接Software caused connection abort: socket write error
2013-04-08 10:59 7385我使用jdbc开发了个j2ee ... -
解决Tomcat出现内存溢出的问题
2021-05-25 07:03 12Tomcat服务器出现 java.lang.OutOfMem ... -
memcached,windows版本环境搭建
2021-05-15 10:53 288首先到下载memcached的windows版本和java客 ... -
url中的参数含有空格,导致请求失败的问题
2011-12-11 21:19 10263今天写了个程序,代码如下: public class Tes ... -
struts 2 result的type值解释
2011-07-27 20:05 1322chain 用 ... -
如何解决安装阻止了的未知发行商的软件?
2011-06-17 10:17 3992没关系的,按以下设置搞定! 打开IE,“工具”—“INTERN ... -
No Hibernate Session bound to thread, and configuration does not allow creation
2011-05-15 23:08 4222No Hibernate Session bound to ... -
Thread: ADMU3011E: Server launched but failed initialization. Server logfiles sh
2011-04-25 21:34 3072http://fixunix.com/websphere/20 ... -
Linux系统上websphere7.0的安装和配置
2010-09-19 13:45 3214Linux系统上websphere7.0的安装和配置 1、we ... -
Criteria和DetachedCriteria的区别(转)
2009-07-13 21:21 1657最近在项目中使用 Spring 和 Hibernate ... -
Spring框架下PropertyPlaceholderConfigurer类
2009-01-04 10:11 1865它的作用是一个资源属 ... -
自己用jasperreports写一个pdf格式报表
2008-11-16 22:40 1767package mypackage.jasperreport; ... -
jasperreport生成html,Excel,PDF报表,数据源使用List
2008-11-13 10:07 3650jasperreport中可以使用List作为数据源,使用格式 ...
相关推荐
【JasperReport使用】这篇教程主要讲解如何使用JasperReport设计和生成报表,特别是通过iReport这个可视化工具来创建报表模板。JasperReport是一个开源的Java报表库,它允许开发者生成复杂的报表,包括数据的计算、...
### JasperReport 使用手册 #### 第一部分:使用 iReport 制作报表的详细过程(Windows 环境下) ##### 1.1 前言 本文档旨在详细介绍使用 iReport 制作报表的过程,尤其针对那些希望快速上手并完成报表开发任务的...
### Ireport 和 JasperReport 使用说明 #### Ireport 使用前准备 **1.1 下载 JDK** JDK(Java Development Kit)是开发 Java 应用的基础工具包,对于使用 Ireport 来说至关重要。建议下载 1.4.2 以上的版本。安装...
JasperReport和iReport的结合使用,为开发者提供了一种高效、灵活的方式来设计和生成复杂的报表。本文将深入探讨如何利用这两个工具进行WEB开发。 JasperReport是一款开源的Java报表库,它支持多种数据源,如数据库...
下面是一个简单的示例,展示了如何使用JDBCConnection类来获取数据库连接并传递给JasperReport使用。 ```java public class JDBCConnection { private String jdbcDriver; private String jdbcUrl; private ...
是一款报表打印组件,是开放源代码组织 中的一个 报表打印工程, JasperReport sf.net 由于 本身并未提供很好的可视化报表设计工具, JasperReport 在之后推出了 iReport ,作为 报表模版编辑软件,具有以下突出的...
通常,为了在项目中使用 JasperReport,我们需要下载一系列的 JAR 文件,这些文件包括 JasperReport 自身的核心组件以及它的依赖库,例如 iText(用于 PDF 输出)、JFreeChart(用于图表绘制)等。 描述 ...
在使用JasperReport前,需确保项目中包含以下必要的库: - groovy-all-1.7.5.jar:Groovy脚本引擎。 - commons-beanutils-1.8.3.jar:提供对Java Bean的操作支持。 - commons-digester-1.7.jar:用于解析配置文件。...
**JasperReport 使用的关键步骤** 1. **设计报表**: 使用iReport或Jaspersoft Studio创建报表模板,定义报表布局、样式、字段等。 2. **编译报表**: 将JasperDesign文件编译成JasperReport文件,这一步是运行报表...
1. ** PDF导出**:JasperReport使用Apache PDFBox库生成高质量的PDF文档,保持了原始报表的样式和布局。 2. ** Excel导出**:通过使用JExcelAPI,报表可以导出为可编辑的Excel工作簿,便于数据分析和修改。 3. ** ...
通过XML映射文件,iBatis可以动态地执行SQL,将查询结果转换为Java对象,供JasperReport使用。 JasperReport3.1.4是报表设计和生成的核心组件。它支持丰富的报表元素,如文本框、图像、表格等,以及复杂的样式和...
- **表达式语言**:JasperReport使用JasperReports Expression Language(JEXL)处理计算和逻辑,例如动态计算值、控制报表流程等。 - **.jasper编译**:JRXML设计文件需通过JasperCompileManager编译成.jasper二...
1. **报表设计**:jasperreport使用JRXML格式的XML文件来定义报表布局和样式。这些设计文件可以包含文本、图像、表格、图表等多种元素,并支持复杂的排版和样式设置。 2. **数据绑定**:jasperreport支持多种数据源...
1. **模板设计**:jasperReport使用JRXML文件作为模板,这种XML格式的文件可以包含所有报表设计的细节,如样式、布局和数据绑定。 2. **数据源支持**:jasperReport支持多种数据源,包括JDBC连接、XML数据、CSV文件...
"jasperreport使用.doc"是一个综合性的JasperReport使用指南,可能包含了报表的生成、预览、导出,以及如何在Java项目中集成JasperReports等核心内容。 "用iReport制作交叉表(CrossTabs).doc"专门针对交叉表的制作...
JasperReport使用XML格式的报表定义文件(.jrxml),开发者可以通过定义这些文件来创建静态或动态的报表。当这些报表需要展现时,JasperReport引擎会将.jrxml文件编译成.jasper文件,然后通过报表查看器进行展示。...
"JasperReport使用手冊.pdf"提供了JasperReport库的详细使用方法,包括如何定义数据源,创建动态报表,使用子报表,导出报表到不同格式(如PDF、HTML、Excel等),以及如何进行报表参数化等。 ".crtfxqtable.sql"看...
- **模板语言**: JasperReport使用JRXML格式的XML文件作为报表模板,定义了报表的布局、样式和数据绑定。 - **组件**: 报表可以包含各种元素,如文本框、表格、图像、图表、子报表等。 - **样式和格式**: 使用CSS...