IReport 数据源

sirtener 2009-07-10 02:53:44
在做WEB工程时, 涉及到报表的打印,用到IReport, 想咨询下 : IReport中涉及到的datasource的获取,我从存储过程中获取的结果集,在后台把该结果集封装为JRResultSetDataSource对象,并能传回到jasper格式的文件上,用什么方式将该结果集中的数据显示出来,应该怎样写? 谢谢
...全文
392 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chendejiang 2010-08-31
  • 打赏
  • 举报
回复
推荐jasperreport QQ群121174498
8错的群
jypapgl 2010-02-22
  • 打赏
  • 举报
回复
收藏 我也刚刚要做 iReport的项目! 欢迎老手指教我一下 好心人可加我好友啊
blue_sky0915 2009-07-13
  • 打赏
  • 举报
回复
现在有ireport3.5或更高版本出现了,建议你试试。
由于上面你说的是JRResultSetDataSource对象实现了JRDataSource接口,因此你选JRDatasource provider应该就可以了
其实用什么数据源没关系的,你可以选择JavaBean Set DataSource也可以用Database jdbc connection等,本质都一样的。我一般用JavaBean Set DataSource或自创一格empty的模板,然后自己copy xml过来编译,先试试吧
sirtener 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 blue_sky0915 的回复:]
使用ireport编写模板,模板的数据源选择JRResultSetDataSource类型,模板上字段为JRResultSetDataSource类中的属性,最后传一个JRResultSetDataSource的list给模板即可显示数据
[/Quote]

我用的ireport 1.3.2创建模板后选择数据源(Report Query/JavaBean DataSource/DataSource Provider/CVS dataSource), 没有找到JRResultSetDataSource类型的数据源选择.还望您指点下, 谢谢
sirtener 2009-07-13
  • 打赏
  • 举报
回复
好的, 谢谢您们, 尤其是blue_sky0915, 为我提供无私的帮助, 应该能够达到我所需要的效果.
blue_sky0915 2009-07-13
  • 打赏
  • 举报
回复
你说的版本我没用过---不好意思,更正一下
blue_sky0915 2009-07-13
  • 打赏
  • 举报
回复
你说的版本我没说过,我用3.5的新建模板(向导)-》选数据源的时候双击JRDatasource provider,接着输入name点击test提示成功(默认的class,你可以修改为自己的class),然后save即可,后面自己去修改一下模板中的参数。

其实直接用JavaBean Set Datasource很简单,上面行不通的话不妨试试这个
阿士匹灵 2009-07-13
  • 打赏
  • 举报
回复
ireport 还真没用过

学习了

zoumin19870910 2009-07-13
  • 打赏
  • 举报
回复
最近也开始学习用ireport做报表了,学习。。。
sirtener 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 blue_sky0915 的回复:]
现在有ireport3.5或更高版本出现了,建议你试试。
由于上面你说的是JRResultSetDataSource对象实现了JRDataSource接口,因此你选JRDatasource provider应该就可以了
其实用什么数据源没关系的,你可以选择JavaBean Set DataSource也可以用Database jdbc connection等,本质都一样的。我一般用JavaBean Set DataSource或自创一格empty的模板,然后自己copy xml过来编译,先试试吧
[/Quote]

我找到3.1.0中提到过datasource provider, 还想问问您这个怎样用, 我点击该项, 没什么反应
zhangpeixv 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 blue_sky0915 的回复:]
使用ireport编写模板,模板的数据源选择JRResultSetDataSource类型,模板上字段为JRResultSetDataSource类中的属性,最后传一个JRResultSetDataSource的list给模板即可显示数据
[/Quote]
大概过程就是这个样子了
需要多调试
呵呵

不是很简单的
当初我也费了不少劲
存储过程我没有用过
我用的好像是javabean的datasource
xinyisi015 2009-07-10
  • 打赏
  • 举报
回复
用IReport可视化的编辑软件,生成.jrxml文件
这是一个很好用的东西。
把这个文件放到src中

这是我的一点代码
ResultSet rs = (ResultSet) request.getSession().getAttribute(
"mxrs");
// 将结果集封装为报表数据源
JRResultSetDataSource ds = new JRResultSetDataSource(rs);
// 读取报表格式文件
InputStream is = null;
is = HighwayDataQueryAction.class.getResourceAsStream("jrxml文件的相对路径");
// 从文件流中获取报表文件,然后封装为报表对象
JasperReport report = JasperCompileManager.compileReport(is);
is.close();
// 为报表添加输出信息
// 1、首先获得报表中的某个区域
JRBand header = report.getPageHeader();
// 2、根据键值获得“时间范围”静态文本区域
JRStaticText kssj = (JRStaticText) header.getElementByKey("kssj");
String ks = "开始时间:";
ks += ksj;
kssj.setText(ks);
JRStaticText jssj = (JRStaticText) header.getElementByKey("jssj");
String js = "结束时间:";
js += jsj;
jssj.setText(js);
// 3、根据键值获得"打印时间"静态文本区域
JRStaticText printDate = (JRStaticText) header.getElementByKey("dysj");
printDate.setText("打印时间:"+ new SimpleDateFormat("yyyy.MM.dd hh:MM:ss").format(Calendar.getInstance().getTime()));
// 获得报表打印对象
JasperPrint print = JasperFillManager.fillReport(report, new HashMap(),ds);
rs.close();
// 打开预览窗体
JasperViewer.viewReport(print,false);


我做报表费了不少劲
希望能对你有点帮助。
kadach11 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 blue_sky0915 的回复:]
使用ireport编写模板,模板的数据源选择JRResultSetDataSource类型,模板上字段为JRResultSetDataSource类中的属性,最后传一个JRResultSetDataSource的list给模板即可显示数据
[/Quote]

楼上正解
javagxc 2009-07-10
  • 打赏
  • 举报
回复
blue_sky0915 2009-07-10
  • 打赏
  • 举报
回复
使用ireport编写模板,模板的数据源选择JRResultSetDataSource类型,模板上字段为JRResultSetDataSource类中的属性,最后传一个JRResultSetDataSource的list给模板即可显示数据

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧