jasperreport学习之javabean封装成list作为数据源
原创 by javaliujie http://javaliujie.iteye.com/blog/278936
1.思想
javabean
↓
↓封装
↓
Collection
↓
↓作为数据源
↓
JRDataSource
2.代码部分
CustomBean.java
package cn.com.jr;
public class CustomBean
{
private String city = null;
private Integer id = null;
private String name = null;
private String street = null;
public CustomBean(String pcity,Integer pid,String pname,String pstreet)
{
city = pcity;
id = pid;
name = pname;
street = pstreet;
}
public CustomBean getMe()
{
return this;
}
public String getCity()
{
return city;
}
public Integer getId()
{
return id;
}
public String getName()
{
return name;
}
public String getStreet()
{
return street;
}
}
CustomBeanFactory.java
package cn.com.jr;
import java.util.Arrays;
import java.util.Collection;
public class CustomBeanFactory
{
private static CustomBean[] data =
{
new CustomBean("Berne", new Integer(9), "James Schneider", "277 Seventh Av."),
new CustomBean("Berne", new Integer(22), "Bill Ott", "250 - 20th Ave."),
new CustomBean("Boston", new Integer(23), "Julia Heiniger", "358 College Av."),
new CustomBean("Boston", new Integer(32), "Michael Ott", "339 College Av."),
new CustomBean("Chicago", new Integer(39), "Mary Karsen", "202 College Av."),
new CustomBean("Chicago", new Integer(35), "George Karsen", "412 College Av."),
new CustomBean("Chicago", new Integer(11), "Julia White", "412 Upland Pl."),
new CustomBean("Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl."),
new CustomBean("Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl."),
new CustomBean("Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave."),
new CustomBean("Dallas", new Integer(36), "John Steel", "276 Upland Pl."),
new CustomBean("Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av."),
new CustomBean("Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave."),
new CustomBean("Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl."),
new CustomBean("Dallas", new Integer(4), "Sylvia Ringer", "365 College Av."),
new CustomBean("Dallas", new Integer(0), "Laura Steel", "429 Seventh Av."),
new CustomBean("Lyon", new Integer(38), "Andrew Heiniger", "347 College Av."),
new CustomBean("Lyon", new Integer(28), "Susanne White", "74 - 20th Ave."),
new CustomBean("Lyon", new Integer(17), "Laura Ott", "443 Seventh Av."),
new CustomBean("Lyon", new Integer(2), "Anne Miller", "20 Upland Pl."),
new CustomBean("New York", new Integer(46), "Andrew May", "172 Seventh Av."),
new CustomBean("New York", new Integer(44), "Sylvia Ott", "361 College Av."),
new CustomBean("New York", new Integer(41), "Bill King", "546 College Av."),
new CustomBean("Oslo", new Integer(45), "Janet May", "396 Seventh Av."),
new CustomBean("Oslo", new Integer(42), "Robert Ott", "503 Seventh Av."),
new CustomBean("Paris", new Integer(25), "Sylvia Steel", "269 College Av."),
new CustomBean("Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave."),
new CustomBean("Paris", new Integer(5), "Laura Miller", "294 Seventh Av."),
new CustomBean("San Francisco", new Integer(48), "Robert White", "549 Seventh Av."),
new CustomBean("San Francisco", new Integer(7), "James Peterson", "231 Upland Pl.")
};
public static Object[] getBeanArray()
{
return data;
}
public static Collection getBeanCollection()
{
return Arrays.asList(data);
}
}
3.iReport设置
a.设置环境变量
b.查询获得变量
c.iReport页面
d.iReport最终效果图
4.与程序结合代码
CustomDataSource.java
package cn.com.jr;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class CustomDataSource implements JRDataSource
{
private Object[][] data =
{
{"Berne", new Integer(22), "Bill Ott", "250 - 20th Ave."},
{"Berne", new Integer(9), "James Schneider", "277 Seventh Av."},
{"Boston", new Integer(32), "Michael Ott", "339 College Av."},
{"Boston", new Integer(23), "Julia Heiniger", "358 College Av."},
{"Chicago", new Integer(39), "Mary Karsen", "202 College Av."},
{"Chicago", new Integer(35), "George Karsen", "412 College Av."},
{"Chicago", new Integer(11), "Julia White", "412 Upland Pl."},
{"Dallas", new Integer(47), "Janet Fuller", "445 Upland Pl."},
{"Dallas", new Integer(43), "Susanne Smith", "2 Upland Pl."},
{"Dallas", new Integer(40), "Susanne Miller", "440 - 20th Ave."},
{"Dallas", new Integer(36), "John Steel", "276 Upland Pl."},
{"Dallas", new Integer(37), "Michael Clancy", "19 Seventh Av."},
{"Dallas", new Integer(19), "Susanne Heiniger", "86 - 20th Ave."},
{"Dallas", new Integer(10), "Anne Fuller", "135 Upland Pl."},
{"Dallas", new Integer(4), "Sylvia Ringer", "365 College Av."},
{"Dallas", new Integer(0), "Laura Steel", "429 Seventh Av."},
{"Lyon", new Integer(38), "Andrew Heiniger", "347 College Av."},
{"Lyon", new Integer(28), "Susanne White", "74 - 20th Ave."},
{"Lyon", new Integer(17), "Laura Ott", "443 Seventh Av."},
{"Lyon", new Integer(2), "Anne Miller", "20 Upland Pl."},
{"New York", new Integer(46), "Andrew May", "172 Seventh Av."},
{"New York", new Integer(44), "Sylvia Ott", "361 College Av."},
{"New York", new Integer(41), "Bill King", "546 College Av."},
{"Oslo", new Integer(45), "Janet May", "396 Seventh Av."},
{"Oslo", new Integer(42), "Robert Ott", "503 Seventh Av."},
{"Paris", new Integer(25), "Sylvia Steel", "269 College Av."},
{"Paris", new Integer(18), "Sylvia Fuller", "158 - 20th Ave."},
{"Paris", new Integer(5), "Laura Miller", "294 Seventh Av."},
{"San Francisco", new Integer(48), "Robert White", "549 Seventh Av."},
{"San Francisco", new Integer(7), "James Peterson", "231 Upland Pl."}
};
private int index = -1;
public CustomDataSource()
{
}
public boolean next() throws JRException
{
index++;
return (index < data.length);
}
public Object getFieldValue(JRField field) throws JRException
{
Object value = null;
String fieldName = field.getName();
if ("the_city".equals(fieldName))
{
value = data[index][0];
}
else if ("id".equals(fieldName))
{
value = data[index][1];
}
else if ("name".equals(fieldName))
{
value = data[index][2];
}
else if ("street".equals(fieldName))
{
value = data[index][3];
}
return value;
}
}
TestPDF.java
public class TestPdf {
public static void main(String args[]) {
File reportFile = new File("javabeantest.jasper");
CustomDataSource cds = new CustomDataSource() ;
try {
JasperRunManager.runReportToPdfFile(reportFile.getPath(), "c:\\javabeantest.pdf", new HashMap(), cds) ;
} catch (JRException e) {
e.printStackTrace();
}
}
}
原创 by javaliujie http://javaliujie.iteye.com/blog/278936
分享到:
- 2008-11-26 10:55
- 浏览 11138
- 评论(9)
- 论坛回复 / 浏览 (4 / 7013)
- 查看更多
相关推荐
jasperreport学习 之 javabean封装成list作为数据源.pdf 数据源制作方法,文档里面还包括源码下载地址。
下载包含程序源码,lib包,ireport创建模板操作文档,说明。程序可以在java myeclipse环境下直接运行。jasperreport版本6.3.1,ireport为5.6.0
实例中通过利用自定义javabean数据源实现报表实例,其中有代码和文档,还有项目中所需要的jar包,不需要重新下载jasper获取jar包
jasperreport创建多个List数据源报表 通多个detail实现多个table效果,简单 快捷
几经探索,终于寻找到在一个报表中使用多个数据源的方法,现在分享出来以便后来者少走弯路!网上很多资料说多数据源只能使用子报表方式,呵呵!
JasperReport为用Java生成PDF报表的一种技术
采用JDBCConnection 方式调用 java文件: BaseExcelExport.java HtmlExport.java PDFExport.java XlsJExcelExport.java XlsPOIExport.java JasperPrintWithDataSource.java JDBCConnection.java
JasperReport学习之路 网上摘录
原创:iReport&JasperReport开发手记(一) List报表开发与发布 b/s下,List报表开发与发布
jasperreport 后台封装代码,调用方法: new PDFExport().export(request, response, reportFilePath, parameters, new JDBCConnection().getConnection(),"report"); new XlsJExcelExport().export(request, ...
webwork下jasperreport的subreport使用套打 javabean作为数据源。
JasperReport 学习必备手册
图示ireport中使用javabean作数据源开发基于jasperreports报表过程
JasperReport 后台 代码 封装,采用JRDataSource方式。
jasperreport学习资料(附jasperreport API).
jasperreport从数据库中取数据
JasperReports+iReport报表开发学习文档,里面包括很多学习文档,可以看看是否对自己有帮助
NULL 博文链接:https://wutougui.iteye.com/blog/687845
学习Jasperreport和ireport的好资料!
:JDBC,CVS,Hibernate,JavaBean ,以及用户自定义的数据 支持所有有效的数据源。如 Arrary List 源,如 。4. 5. 6. scriptlet )支持。 集成脚本( 20 内置图表支持:超过 种的图表支持。并可扩展。 种语言