- 浏览: 243588 次
- 性别:
- 来自: 山西
文章分类
最新评论
-
jy00509336:
wgrmmtmr 写道let g:miniBufExplMap ...
用Gvim建立IDE编程环境 (Windows篇) -
wgrmmtmr:
let g:miniBufExplMapWindowsNavV ...
用Gvim建立IDE编程环境 (Windows篇) -
jy00509336:
avi9111 写道还是同样问题,你这个代码ctrl+c和ct ...
JTextField只允许输入数字和字母 -
avi9111:
还是同样问题,
你这个代码
ctrl+c和ctrl+v粘贴 ...
JTextField只允许输入数字和字母 -
jy00509336:
ILoveDOUZHOU 写道windows下为什么使用vim ...
用Gvim建立IDE编程环境 (Windows篇)
转载自:http://www.blogjava.net/bulktree/archive/2008/12/12/245963.html 继上篇bean数据源,如果我们自己定义自己的数据源该如何去写呢?
jasperReport提供了很多的便利去实现自己的DataSource,简单的有三种方式:
直接实现bean的方式 bean工厂 表格模型
还是使用前面的person.jasper文件,和Person.java VO类
此种方式需要实现JRDataSource接口,定义一个二维对象数组用来存放数据,通过遍历数组的数据实现getFieldValue()和next()方法
PersonDataSource.java
import javax.activation.DataSource;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
/**
*
* @author bulktree Email: laoshulin@gmail.com @ Nov 7, 2008
*/
public class PersonDataSource implements JRDataSource {
public PersonDataSource() {
}
private Object[][] data = {
{ "001", "bulktree1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "bulktree2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "bulktree3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "bulktree4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "bulktree5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "bulktree6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "bulktree7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "bulktree8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "bulktree9", "Man9", "29", "009999", "IsoftStone9" },
{ "001", "oakertree1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "oakertree2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "oakertree3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "oakertree4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "oakertree5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "oakertree6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "oakertree7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "oakertree8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "oakertree9", "Man9", "29", "009999", "IsoftStone9" },
{ "001", "laoshulin1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "laoshulin2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "laoshulin3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "laoshulin4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "laoshulin5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "laoshulin6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "laoshulin7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "laoshulin8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "laoshulin9", "Man9", "29", "009999", "IsoftStone9" } };
private int index = -1;
public Object getFieldValue(JRField jrField) throws JRException {
Object value = null;
String fieldName = jrField.getName();
if ("pid".equals(fieldName)) {
value = data[index][0];
}
if ("name".equals(fieldName)) {
value = data[index][1];
}
if ("sex".equals(fieldName)) {
value = data[index][2];
}
if ("age".equals(fieldName)) {
value = data[index][3];
}
if ("password".equals(fieldName)) {
value = data[index][4];
}
if ("department".equals(fieldName)) {
value = data[index][5];
}
return value;
}
public boolean next() throws JRException {
index++;
return (index < data.length);
}
}
这个和遍历数据库Result的游标是一样的道理,刚开始的时候是指向第一条数据的前面,next一下才会指向第一条数据,相信这个不是很难懂吧!通过以下语句产生 JasperPrint对象
getReportParameter(), personDataSource);
bean工厂:
此种方式不需要实现JRDataSource接口,定义bean数组存放数据,只需要简单的提供两个方法即可:返回一个对象数组和返回一个bean集合
PersonBeanFactory.java代码如下:
import java.util.Arrays;
import java.util.Collection;
/**
*
* @author bulktree Email: laoshulin@gmail.com @ Nov 7, 2008
*/
public class PersonBeanFactory {
private static Person[] data = {
new Person("001", "bulktree1", "Man1", "21", "001111", "IsoftStone1"),
new Person("002", "bulktree2", "Man2", "22", "002222", "IsoftStone2"),
new Person("003", "bulktree3", "Man3", "23", "003333", "IsoftStone3"),
new Person("004", "bulktree4", "Man4", "24", "004444", "IsoftStone4"),
new Person("005", "bulktree5", "Man5", "25", "005555", "IsoftStone5"),
new Person("006", "bulktree6", "Man6", "26", "006666", "IsoftStone6"),
new Person("007", "bulktree7", "Man7", "27", "007777", "IsoftStone7"),
new Person("008", "bulktree8", "Man8", "28", "008888", "IsoftStone8"),
new Person("009", "bulktree9", "Man9", "29", "009999", "IsoftStone9"),
new Person("001", "oakertree1", "Man1", "21", "001111", "IsoftStone1"),
new Person("002", "oakertree2",
发表评论
-
禁用JavaWeb应用中URL上包含的jsessionid
2014-03-21 13:02 1597Java Web 应用似乎总有这样的情况,有事没事总是要在 ... -
java操作保存图片到oracle数据库及获取图片到页面显示
2014-03-21 13:00 1380《--------保存图片到数 ... -
jsp页面通过java调用oracle blob字段显示图片
2014-03-21 12:58 1089转载自:http://blog.csdn.net/javad ... -
正则表达式中在多个匹配的内容中间加字符
2014-03-04 21:35 911selectedText = selectedText.rep ... -
ServletFileUpload parseRequest异常处理
2013-07-16 17:31 1729今天在linux服务器上发布程序后,上传图片处理异常,详情如 ... -
log4j时区设置
2013-03-21 17:23 32812013年3月19日更新程序后,服务器上的码表一直加载不上, ... -
JDBC连接报ORA-12505,sid无法找到
2013-02-06 11:10 3615转载自:http://www.calcprofit.com/ ... -
Javascript网页打印大全
2012-10-11 09:21 1297转载自:http://www.cnblogs.com/gaku ... -
Servlet编程之用Servlet显示图片
2012-09-04 21:38 1237转载自:http://developer.51cto.com/ ... -
tomcat JNDI 连接池
2012-08-02 10:59 1024一.在tomcat_home/common/lib下放入 ... -
JTextArea->JTextPane 解决文字对齐方式的问题
2012-04-09 15:08 4222转载自:http://www.blogjava.net/cer ... -
jquery下json数组的操作用法实例
2011-08-13 10:51 3210转载自:http://blog.csdn.ne ... -
能盖住Select的Div
2011-07-15 23:16 956<html> <head> ... -
jQuery.extend 函数详解
2011-07-11 10:12 932转载自:http://www.cnblogs.com/Ra ... -
利用js获取服务器时间的两个简单方法
2011-07-08 14:57 1609有时用js来获取服务器时间。一般会用System.DateTi ... -
jQuery获取表单项目以及AJAX应用
2011-07-07 09:28 1156转载自:http://www.tsingfeng.com/?p ... -
velocity date.format
2011-06-27 19:39 4114Today's date is: $dateT ... -
Java中修改derby.log文件的路径
2011-04-29 15:26 2152项目中用到derby嵌入式数据库。可是其log文件derby. ... -
socket, nio socket 及nio socket框架MINA总结
2011-04-07 16:55 1214来源:http://blog.csdn.net/lcllc ... -
PreparedStatement 数据大小超出此类型的最大值
2011-03-04 11:17 1946转载自:http://heath-derek.iteye.co ...
相关推荐
本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在帮助读者更好地理解和掌握iReport和...
- **配置步骤**:创建 JavaBean 类作为数据源,通过方法返回 Bean 对象列表。 #### 七、Swing 集成与展示 - **Swing 集成**:利用 Swing 组件(如 JTable 或 JList)展示报表数据。 - **报表预览**:在 Swing 界面...
在JasperReport中,JavaBean可以被用作数据源,每个Bean实例代表报表中的一行数据。 要实现自定义JavaBean数据源,你需要遵循以下步骤: 1. **创建JavaBean**: 首先,你需要定义一个Java类,包含你需要在报表中...
- 配置数据源、jasperReport相关的bean以及任何其他必要的配置信息。 #### 三、报表设计与数据填充 1. **报表设计** - 使用iReport工具设计报表模板,支持多种页面方向(如Portrait、Landscape)。 - 报表包含...
1. **数据源支持**:JasperReport支持多种数据源,包括但不限于数据库连接、Java Bean、XML文件、Java集合等。这意味着可以根据不同的应用场景选择最合适的数据源类型。 2. **报表设计灵活性**:支持设计普通报表、...
- 配置报表查询,选取JavaBean数据源并指定Bean类路径,读取Bean的属性。 - 设计报表布局,包括字段选择和样式设置。 - 编译报表,生成`.jasper`文件,这一步完成后,iReport的工作基本结束。 5. MyEclipse创建工程...
4. **DataSource**:讲解如何在报表中使用多种数据源,包括bean数组、bean集合或自定义数据源(只需实现`JRDataSource`接口)。 5. **Fonts**:展示不同字体的应用方法。 6. **Horizontal**:演示水平分栏报表的...
4. **生成报表**:在Action中,我们需要加载报表模板,设置数据源(通常是Action中的JavaBean集合),然后使用JasperReport API生成报表。这通常涉及以下步骤: ```java // 在ReportAction的execute方法中 Map ...
本文将深入探讨在WebWork环境下,如何使用JasperReport的子报告(subreport)功能进行套打,并以javabean作为数据源。 首先,我们需要了解什么是JasperReport的子报告。在JasperReport中,子报告是一个独立的报表...
在ireport中,我们可以将javabean类的实例作为数据源,通过字段映射,将bean的属性值绑定到报表模板的各个元素上。这样,当报表运行时,javabean中的数据会被自动填充到对应的字段中。 2. **PDF报表的制作**:...
5. 集成Spring和iBatis:配置Spring的ApplicationContext,定义Bean,设置数据源和SqlMapConfig。 6. 测试:通过浏览器发送请求,查看报表是否正确生成。 这个项目展示了如何在一个Java Web应用中有效地整合多种...
JasperReport是一款非常强大的报表生成工具,它支持多种数据源,如JDBC、XML等,并且可以输出PDF、HTML、XLS等多种格式的报表。Spring MVC则是一个基于Java的轻量级Web应用框架,用于构建可扩展的企业级应用。 ####...
总结来说,Spring MVC结合JasperReports可以实现高效的数据可视化,通过自定义数据源、报表渲染和iReport设计,开发者能够创建满足业务需求的报表系统。在整个过程中,关键在于理解报表数据源的构建、报表的填充和...
在网上找了很多ireport基于...对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,经常下载无积分,所有收一点点积分。祝大家研究顺利,共同进步!
它以其简洁的API、丰富的图表库以及对各种数据源的支持,成为了Java开发人员的首选报表解决方案之一。在“japerreport lib”这个压缩包中,我们看到主要包含的是JasperReport的相关库文件,这些文件是实现...
在Spring中,你可以创建一个Bean来封装数据源,并通过`JRDataSource`接口将其传递给报表引擎。 4. **报表的生成与导出**: 在Java代码中,你可以创建一个`JasperPrint`对象,用它来装载报表模板并填充数据。接着,...
- 在Java程序中加载.jasper文件,通过JasperFillManager.fillReport方法,使用JDBC数据源填充数据并生成报表。 通过以上步骤,可以有效地利用iReport进行报表设计,并结合Java程序实现报表的自动化生成。这对于...
JasperReport是一款开源的报表设计工具,它能够根据输入的数据源(如数据库查询结果、XML文档等)生成丰富的PDF、HTML、XLS等多种格式的报表。由于其高度可定制化的特点以及良好的扩展性,JasperReport被广泛应用于...
在`jasperReport生成PDF中文依赖包`中,可能包含`.jrxml`文件,这是iReport的报表定义文件,用于描述报表的布局和数据来源。在设计报表时,要确保字体设置支持中文,例如使用SimSun(宋体)或其他支持UTF-8编码的...
模板中可以包含静态文本、图像、表格、图表等元素,并通过填充数据源来生成实际的报表。 接下来,我们来看看如何在Spring3 MVC项目中整合JasperReport: 1. **配置依赖**:首先,在你的Maven项目中,你需要添加...