Java程序生成linechart report的方法「建议收藏」

Java程序生成linechart report的方法

大家好,又见面了,我是全栈君。

iReport一般是一个设计阶段的工具。用来设计出报表的排版和内容。报表的动态生成须要程序来实现(毕竟报表的数据是动态的,数量是非常多的,不可能用iReport Preview的方式一个个手工去生成)。

利用上一篇iReport5.6.0linechart制作方法http://blog.csdn.net/hbsong75/article/details/39992475)生成.jasper文档后。就能够通过Java程序的方法来动态生成linechart报表了。

程序生成报表的要素主要是以下三点:

1.        iReport 通过parameters获取数据;

1)        主报告Parameters添加resultsList 參数

Java程序生成linechart report的方法「建议收藏」

这个參数接下来要用来接收从程序的MAP中传过来的子数据集;

2)        子数据集(subDataSet)配置Parameter

在Summary band中选择linechart元素,右键选择“CharData“,在弹出的对话框中选择”Parameters” tab 页。在这里我们将要配置怎样从程序中接收子数据集的数据源:

 Java程序生成linechart report的方法「建议收藏」

点击“Add”加入參数:

 Java程序生成linechart report的方法「建议收藏」

按上图蓝色数字编号依次配置好。这一步的关键是:$P{REPORT_PARAMETERS_MAP}.get(“resultsList”),当中在后面的程序中传递数据源的键值须要时“resultsList”,跟这里的key值要一致,否则就获取不到传递的数据了。

配置完毕后点击“CompileReport“,又一次生成.jasper文件。

 

2.        调用JasperRunManager的几个静态方法,如runReportToPdf,runReportToHtmlFile等;

演示样例程序例如以下:(TestBean.java參考上文)

package com.report.linechart; import java.io.File;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JasperRunManager;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class TestReportGenerator {    /**     * @param args     */    public static void main(String[] args) {           List<TestBean> testBeans = new ArrayList<TestBean>();        TestBean tb1 = new TestBean();        tb1.setCat("1");        tb1.setValue(1);        testBeans.add(tb1);        TestBean tb2 = new TestBean();        tb2.setCat("2");        tb2.setValue(2);        testBeans.add(tb2);            File reportFile = new File("D:\\workspace\\jasperreport\\linecharReport\\testLineReport.jasper");        File reportPdfFile = new File("D:\\workspace\\jasperreport\\linecharReport\\testLineReport.pdf");        Map<String,Object> parameters=new HashMap<String,Object>();        JRBeanCollectionDataSource resultsList = new JRBeanCollectionDataSource(testBeans);               parameters.put("resultsList", resultsList);        parameters.put("reportTitle", "This is a test report");        try {            byte[] reportStream = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,new JREmptyDataSource());            FileOutputStream fw = new FileOutputStream(reportPdfFile);            fw.write(reportStream);            fw.close();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

3.        通过iReport的Parameters关联数据源

能够看到。resultsList是JRBeanCollectionDataSource类型,程序中通过 parameters.put(“resultsList”,resultsList),将linechart须要用到的TestBean数据集合进行了传递;相相应的,iReport的配置中$P{REPORT_PARAMETERS_MAP}.get(“resultsList”) 获取了该数据集。

 

最后运行该測试程序,能够发如今D:\workspace\jasperreport\linecharReport文件夹下生成了testLineReport.pdf文件。打开该PDF文件,看到与在iReport中Preview的一致(測试数据一样):

 Java程序生成linechart report的方法「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115334.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Socket java.net.SocketException: Connection reset的解决方案[通俗易懂]

    Socket java.net.SocketException: Connection reset的解决方案[通俗易懂]背景:服务端通讯方式:TCP/IPsocket短链接。首先看下我的最开始的socket代码:publicstaticbyte[]sendMessage(Stringurl,intport,byte[]request,inttimeout){byte[]res=null;Socketsocket=n

    2022年7月13日
    31
  • 达梦数据库备份还原使用

    达梦数据库备份还原使用达梦数据库备份还原使用一、关于备份二、物理备份三、逻辑备份一、关于备份1、备份的作用:①、防止误操作②、软硬件故障,做恢复③、防止天灾2、备份的方式:逻辑备份和物理备份3、备份的介质:磁盘,磁带,光盘支持第三方的备份软件:如上海爱数,鼎甲等。二、物理备份物理备份分为:冷备和热备冷备:DMAP服务是打开的,数据库实例是关闭的方式1:利用控制台工具去备2、DMRM…

    2022年5月14日
    54
  • ai修复照片软件是哪个软件_AI照片修复免费版-AI照片修复软件下载v1.1.0安卓版-西西软件下载…「建议收藏」

    ai修复照片软件是哪个软件_AI照片修复免费版-AI照片修复软件下载v1.1.0安卓版-西西软件下载…「建议收藏」AI照片修复软件是一款专业的照片图片修复处理工具,可以帮助用户将旧照片、老照片以及低像素的照片进行修复,软件界面赶紧操作简单,适合没有经验的伙伴修复使用,除此之外,还有各种美化效果,轻松将照片上色、换底、换像素,来西西下载即可使用哦!AI照片修复软件简介:AI照片修复是一款免费的智能AI照片修复处理工具,包括照片破损修复、黑白照片上色、无损放大、模糊照片清晰增强等实用工具。基于先进的AI图像生成技…

    2022年4月18日
    121
  • CSS自定义鼠标样式[通俗易懂]

    CSS自定义鼠标样式[通俗易懂]效果图原理cursor属性:cursor属性规定要显示的光标的类型(形状)。该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状。使用url,可自定义鼠标图标。cursor:url(‘https://blog-static.cnblogs.com/files/lucas–liu/cat6.ico’),default;自定义图标注意点尺寸最好选择不大于于32*32像素的Opera9.3和Safari3不支持url值图片最好用绝对路径浏览器兼容性不一

    2022年5月31日
    46
  • iOS 签名机制与证书

    iOS 签名机制与证书iOS 签名机制与证书 声明 纯粹就是总结,很多地方跟参考资料一样,就是自己手动打一遍,自己亲自画个图增加理解和加强记忆力,而不只是复制粘贴 iOS 打包流程也不在此叙述,相信很多人已经对照过各种图文

    2022年5月23日
    46
  • Flink的sink实战之二:kafka

    Flink的sink实战之二:kafka

    2020年11月19日
    181

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号