`
hotdog
  • 浏览: 284895 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义ireport的图表展示功能

阅读更多

 

ireport做报表的时候,有时内建的报表并不能满足我们的需求。比如,需求要在Time series图上的每个点显示value值,在ireport内建的功能中就没有这样的实现。

 

图表展示是Jasperreports通过Jfreechart来实现的,并且提供了对外的自定义图形接口,利用这个接口可以重新定义内建的图形。这个接口是JRAbstractChartCustomizer,需要实现的方法为customize,通过参数我们可以获取到JFreechart对象然后做我们想做的事情。

 

所以要实现上述的需求,需要自定义这样的类。

 

public class SpeclTimeseriesChart extends JRAbstractChartCustomizer {

    @Override
    public void customize(JFreeChart chart, JRChart jrchart) {
        XYPlot plot = (XYPlot) chart.getPlot(); 
        XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
        //设置曲线是否显示数据点 
        xylineandshaperenderer.setBaseShapesVisible(true);
        
        //设置曲线显示各数据点的值 
        XYItemRenderer xyitem = plot.getRenderer();
        xyitem.setBaseItemLabelsVisible(true);
        xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); 
        xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); 
        plot.setRenderer(xyitem); 
    }
}
 

 

要在ireport中调试,需要专门为这个类打上Jar包(用eclipse的export很容易),然后在ireport的工具-选项的classpath中添加这个Jar包。

 

 

最后在ireport的图形属性中指定类的名字就OK了。

 

 

这样满足我们需求的Time series图就实现了,如果需要自定义其他类型的图表也是类似的操作。

 

 

  • 大小: 50.3 KB
  • 大小: 107.6 KB
分享到:
评论
7 楼 ljh001 2016-01-27  
显示的数据叠加在一起了怎么解决? 数据挨着一起,不好看
6 楼 sgp420 2014-03-25  
使用上面的方法,也是报类找不到,
 Filling report...
 Locale: 中文 (中国)
 Time zone: Default
Error filling print... Could not create chart customizer instance.
net.sf.jasperreports.engine.JRRuntimeException: Could not create chart customizer instance.      at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:294)      at net.sf.jasperreports.engine.fill.JRFillObjectFactory.visitChart(JRFillObjectFactory.java:746)      at net.sf.jasperreports.engine.base.JRBaseChart.visit(JRBaseChart.java:675)      at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:88)      at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:82)      at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:87)      at net.sf.jasperreports.engine.fill.JRFillBand.<init>(JRFillBand.java:89)      at net.sf.jasperreports.engine.fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:549)      at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:532)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:56)      at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:143)      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:53)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)      at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:855)      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)  Caused by: java.lang.ClassNotFoundException: Will not load classes from default package (SpeclTimeseriesChart)      at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:187)      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)      at java.lang.Class.forName0(Native Method)      at java.lang.Class.forName(Class.java:247)      at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:175)      at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)      at net.sf.jasperreports.engine.fill.JRFillChart.<init>(JRFillChart.java:291)      ... 17 more 
Print not filled. Try to use an EmptyDataSource...
5 楼 hero_shaoshuai 2011-12-27  
方便加下QQ吗,有问题请教一下,我Q:124312857,谢啦。
4 楼 hotdog 2011-04-12  
always-missing 写道
hotdog 写道
提示类找不到,是你的类名字写错了吧? SpeclTimeseriesChart不是SpecialTimeseriesChart


名字是对的,我就是起的这个。这个类名肯是可以自己起的吧.


Jar包是否加到了Classpath中?
3 楼 always-missing 2011-04-12  
hotdog 写道
提示类找不到,是你的类名字写错了吧? SpeclTimeseriesChart不是SpecialTimeseriesChart


名字是对的,我就是起的这个。这个类名肯是可以自己起的吧.
2 楼 hotdog 2011-04-09  
提示类找不到,是你的类名字写错了吧? SpeclTimeseriesChart不是SpecialTimeseriesChart
1 楼 always-missing 2011-04-08  
能帮我看看我的问题不?采用你的方法还是报错。
我有一个sql查询出的结果集,但是Time series的时候不好看,我就采用了你的方法,生成了一个jar包,绑定到ireport的classpath中,配置好Customizer Class类名,在ireport预览的时候报错
Error filling print... java.lang.NoClassDefFoundError: SpecialTimeseriesChart (wrong name: com/xx/report/SpecialTimeseriesChart) null 
java.lang.NoClassDefFoundError: SpecialTimeseriesChart (wrong name: com/xx/report/SpecialTimeseriesChart) 


谢谢

相关推荐

    利用iReport进行图表开发Demo源码

    JasperReport和iReport的图表功能广泛应用于商业智能、数据分析、企业管理等领域,如销售报告、财务分析、库存统计等。通过熟练掌握这些工具,开发者可以快速地将数据转化为易于解读的图形,提高决策效率。 总的来...

    ireport模板和自定义字体jar

    在IT行业中,报表生成是数据分析和业务展示的重要环节,而`iReport`作为一个开源的Java报表工具,为开发者提供了设计和生成复杂报表的功能。本文将深入探讨`iReport`模板和自定义字体的使用,以及如何结合`...

    ireport自定义报表制作使用手册

    它支持多种数据源,包括JDBC、XML、CSV等,可以创建复杂的表格、图表、文本等元素,提供丰富的样式和格式设置,让用户能够轻松设计出美观且功能丰富的报表。ireport是JasperReports库的配套设计工具,使得开发者能够...

    IREPORT报表例子

    在iReport中,图表是展示数据的有效方式。你可以创建各种类型的图表,如柱状图、饼图、线图、面积图等。首先,你需要选择一个数据源,然后定义图表的字段,接着设置图表类型、颜色、标签等属性。最后,将图表组件...

    Ireport 的 JAR包

    8. **插件系统**:IReport的可扩展性得益于其插件机制,用户可以自定义功能或导入第三方组件。 9. **API接口**:IReport提供了丰富的API接口,使得开发者可以将报表功能无缝集成到Java应用程序中。 10. **版本兼容...

    免费下载iReport-5.0.0.rar

    4. **图表功能** iReport内置了多种图表类型,如柱状图、饼图、线图等,可以直接从数据源生成动态图表。用户可以定制图表的颜色、标签、数据系列,以及交互式功能。 5. **预览和导出** 在设计过程中,iReport提供...

    ireport中文版

    6. **丰富的图表功能**:ireport内置了各种图表类型,如柱状图、饼图、线图、组合图等,可以实现复杂的数据可视化。 7. **模板管理**:ireport支持报表模板的保存和重用,方便用户管理和维护大量的报表设计。 8. *...

    IReport报表制作详解

    5. **子报表和分组**:对于复杂报表,可以使用子报表来嵌套报表,或者使用分组功能对数据进行分类展示。 四、JasperReport与IReport的配合 "IReport.doc"文档可能详细介绍了如何将IReport设计的报表与JasperReport...

    iReport-5.6.0.rar

    2. **报表设计**:iReport提供了丰富的报表设计功能,包括表格、图表、文本、图像等多种元素,用户可以通过拖拽的方式进行布局,同时支持自定义样式和格式,实现高度定制化的报表设计。 3. **SQL查询支持**:...

    Ireport

    iReport允许用户设计复杂的报表布局,包括表格、图表、文本框等元素,并能够与Java应用程序、Web应用程序以及数据库无缝集成。在这个环境中,开发者可以使用拖放功能来构建报表,同时支持SQL查询和脚本语言,以实现...

    iReport 4.8 报表导出工具

    无论是简单的数据展示,还是复杂的分析报告,用户都能借助其丰富的功能和灵活的设计方式,快速高效地完成任务。如果你是Java开发者,或者需要处理大量的数据报表,iReport 4.8无疑是一个值得尝试的选择。

    iReport+用户手册+教程

    iReport是一款强大的报表设计工具,尤其对于...总的来说,通过这份iReport用户手册和教程,你将能够掌握如何使用iReport设计出美观、实用的报表,无论是简单的数据展示还是复杂的分析报告,iReport都能帮你轻松完成。

    ireport设计打印报表工具,iReport-0.3.2.zip

    随着版本的更新,iReport逐渐增加了更多高级功能,如图表支持、自定义组件、数据集等功能。 3. **报表设计**:iReport提供了一个图形化的设计界面,用户可以通过拖拽的方式将不同的报表元素(如文本框、表格、图像...

    iReport-5.6.0 Jasperreport 报表

    5. **图表功能**:iReport可以生成各种图表,如条形图、饼图、线图等,支持自定义颜色、标签和数据系列。 6. **样式和主题**:用户可以创建和应用样式表(CSS)来控制报表的外观,也可以选择内置的主题或者创建...

    iReport-5.6.0-windows-installer

    6. **图表功能**:iReport内建了强大的图表生成器,可以创建各种类型的图表,如柱状图、饼图、线图等。用户可以自定义图表的颜色、样式,并可以绑定数据集中的字段,实现数据的可视化。 7. **预览与导出**:设计...

    ireport 报表生成工具

    1. **ireport的核心功能**: - **数据源连接**:ireport支持多种数据库类型,如MySQL、Oracle、SQL Server等,允许开发者灵活地连接到不同的数据源,获取所需的数据。 - **模板设计**:通过直观的拖拽界面,用户...

    iReport 1.2.5免安装版本下载

    3. **iReport的功能**:iReport提供了一系列强大的功能,如内置的样式表编辑器,使得用户可以自定义字体、颜色、边框等样式;SQL查询编辑器,用于从数据库中提取数据;以及支持 JasperReports 的所有功能,如子报表...

    iReport-5.6.0.zip

    用户可以自定义颜色、标签、数据系列,并且可以根据数据变化实时更新图表。这些图表可以直接嵌入到报表中,为数据分析提供直观的视觉表示。 此外,iReport还具有导出功能,可以将设计好的报表导出为PDF、HTML、...

    iReport-5.6.0 安装文件

    iReport的核心功能包括: 1. **报表设计**:通过拖放字段、图表、图像等元素,设计报表布局。支持多种数据源,如数据库、XML、CSV等。 2. **模板库**:内置丰富的报表模板,可快速启动新项目。 3. **表达式编辑器**...

Global site tag (gtag.js) - Google Analytics