iReport5.6.0 linechart 制作方法

摘要:
iReport官方网站和文档上的图表设计以饼图和JDBC源代码为例。2) 为了在JavaBeans数据源准备的iReport中使用“JavaBeansetdatasource”,需要指定一个工厂类来返回包含javabean的集合。示例程序中的工厂类名为“com.jaspersoft.report.examples.SampleJRDataSourceFactory”。

iReport 官网和文档上关于chart设计以饼图和JDBC源作为样例。但很多其它的情况下因为报表中的数据须要首先加工处理,因此很多其它的是从JavaBeans set datasource从获取数据,另外linechart也是使用非常多的一种chart工具,本文就记录在iReport中通过JavaBeansset datasource 获取数据,继而生成linechart报表的过程。 

1.        下载安装iReport5.6.0

http://community.jaspersoft.com/project/ireport-designer/releases下载安装,此步略。

2.        报表制作

打开iReport

1)        生成模板

依次选择 文件->New,选择Blank A4,点击”Open thisTemplate”button。例如以下图:

iReport5.6.0 linechart 制作方法第1张

 选择报表路径。输入报表名称:“testLineReport”,例如以下图

 iReport5.6.0 linechart 制作方法第2张

继续点“下一步”->“完毕”。

2)        JavaBeans数据源准备

iReport中为了使用“JavaBeansset datasource”,须要指定一个工厂类,用以返回一个包括javabeans的集合,样例程序中的工厂类名是“com.jaspersoft.ireport.examples.SampleJRDataSourceFactory”。当中须要一个静态方法返回Collection<Object> 这种数据结构。另外自然须要定义一个Javabean返回详细的数据(包括set, get方法)。在我们的样例中。因为在linechart中须要用到subdataset,该subdataset须要从一个net.sf.jasperreports.engine.data.JRBeanCollectionDataSource中获取数据。因此还须要多定义一个返回这种数据类型的JavaBean。

综上,我们定义的三个类依次例如以下:

表格 1 TestBean

package com.report.linechart;
                             
public class TestBean {
    public Stringcat;
    public int value;  
    public TestBean(){
    }  
    public String getCat(){
        returncat;
    }  
    public void setCat(String cat){
        this.cat = cat;
    }  
    public int getValue(){
        returnvalue;
    }  
    public void setValue(int value){
        this.value = value;
    }  
}
 

表格 2 TestReport

package com.report.linechart;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class TestReport {
    JRBeanCollectionDataSource resultsList;    
    public TestReport(){
    }  
    public JRBeanCollectionDataSource getResultsList(){
        returnresultsList;
    }  
    public void setResultsList(JRBeanCollectionDataSource resultsList){
        this.resultsList = resultsList;
    }
}
 

表格 3 TestFactory

package com.report.linechart;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Vector;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class TestFactory { 
    public static Collection<TestReport> getTestReports(){
        Collection<TestReport> testReports = new Vector<TestReport>();
        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);    
        JRBeanCollectionDataSource resultsList = new JRBeanCollectionDataSource(testBeans);     
        TestReport tr = new TestReport();
        tr.setResultsList(resultsList);
        testReports.add(tr);       
        return testReports;
    }
}

注:上面须要着重注意的是TestReport这个bean返回的数据类型是JRBeanCollectionDataSource,它能够作为一个数据源向linechart提供画图数据。

3)        编译完毕后。将上述生成的类增加到iReport的classpath下,以便iReport可以找到它们,例如以下图:

选择“工具“-》”选项“

 iReport5.6.0 linechart 制作方法第3张

4)        设置 Report Datasources(工具条上一个插座一样的图标)

iReport5.6.0 linechart 制作方法第4张

如上图,依次选择“ReportDatasources”-》“New”-》“JavaBeans set datasources” 

下一步,设置详细的类名和方法。例如以下图:

iReport5.6.0 linechart 制作方法第5张

注:注意类的全名和方法名要与创建的类全然一致,通过“Test”button能够測试一下,然后通过的话选择“Save”button。

在主窗体中,能够看到当前报表的datasource已经设置成 linechartDatasourceFactory了:

 iReport5.6.0 linechart 制作方法第6张

5)        报表设计

因为我们主要颜色linechart的设计方法。除了保留Titleband和 Summary band,删除其它的band。注意将linechart放置到 summary band中,假设放置在detail band中,数据源中有多条曲线的话就会分散在多个chart中,而不会显示在一个chart中。

a)        Title band

Title band中我们简单放置一个“StaticField”。显示“Line char test”

b)        Summary band

我们从组件面板拖一个Chart元素到“Summaryband”中。选择“Line”类型,例如以下图:

 iReport5.6.0 linechart 制作方法第7张

点击“OK”后进入”Categorychart wizard”,我们先不做设置,直接点击“完毕”button。

回到主窗体。我们如今的报表样子例如以下:

 iReport5.6.0 linechart 制作方法第8张

c)        主数据源获取

iReport5.6.0 linechart 制作方法第9张

如上图所看到的,点击“Preview”右边的“Reportquery“图标,选择”JavaBean Datasource”,输入com.report.linechart.TestReport,再点击”Read attributes”,然后将resultsList 增加到选择的列表中。按“OK”确认。

d)        子数据源

回到主窗体后,选择“ReportInspector”根节点“testLineReport”。右键菜单选择”Add Dataset“,设置例如以下:

iReport5.6.0 linechart 制作方法第10张

下一步:(选择先前设置的主数据源linecharDatasourceFactory)

iReport5.6.0 linechart 制作方法第11张

下面先缺省下一步直到完毕。

然后在主窗体 “Report Inspector”中找到节点“subDataSet”。右键菜单选择”EditQuery“。同上选择JavaBean Datasource,输入TestBean的全路径后读出属性cat和value增加选择列表。

 iReport5.6.0 linechart 制作方法第12张

通过上述步骤,报表的主数据源和linechart的子数据源都已经关联好了。以下设置linechart的Chart Data。 

e)        Chart Data设置

在报表窗体的Summary band中选中linechart元素,按右键在弹出菜单中选择“Chart Data“,然后做例如以下设置:

iReport5.6.0 linechart 制作方法第13张


在”Dataset” tab 页中:

Sub dataset选择上面定义的“subDataSet”;在”Connection/Datasource exp”总选择 use datasourceexpression。然后输入“$F(resultsList)”作为子数据源获取数据的来源。而 resultsList正是我们定义的JRBeanCollectionDataSource类型的数据源。

在“Detail” tab页中:

我们选择增加两条曲线的数据。“Series expression”用来区分曲线,”Category expression”是横坐标,”Value expression”是纵坐标

 iReport5.6.0 linechart 制作方法第14张

iReport5.6.0 linechart 制作方法第15张

         到此,生成linechart的配置所有结束。

3.        执行Preview的效果例如以下:

iReport5.6.0 linechart 制作方法第16张

免责声明:文章转载自《iReport5.6.0 linechart 制作方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇前后端分离(model多对多)第26讲 对话框AlertDialog的自定义实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用C#和Excel进行报表开发-生成统计图Chart

    原文地址:http://www.opent.cn/a/094/1235.shtml     有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印。在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软也为C#操作Excel提供了完备的接口,虽然ZedGrap...

小程序加入echart 图表

github上的地址 https://github.com/ecomfe/echarts-for-weixin 复制到当前项目根目录下 添加展示bar图表例子的文件夹  index.json 中配置使用的组件,以及组件的位置 这一配置的作用是,允许我们在 pages/bar/index.wxml 中使用 <ec-canvas> 组件。注意路径...

G2使用中的一些坑:自定义图例、混合图形、label 默认隐藏等问题

一、自定义图例 legend 一般自定义图例较多的使用在混合图形里,以 G2 官网的这个 chart 为例,通过定制 legend 来显示自己定义的图例。 注意:legend 的配置项里一定要设置 custom: true ,自己在写的时候过多关注多个图形叠加使用,没有注意设置 custom,结果图表显示一直有问题,图例也显示不出来,折腾到怀疑人生。 二...

echarts数据变了不重新渲染,以及重新渲染了前后数据会重叠渲染的问题

1.echarts数据变了但是视图不重新渲染 新建Chart.vue文件 <template> <p :id="id":style="style"></p> </template> <script> export default{ name: "Chart", data() { return{ /...

helm3自定义chart编写

当我们安装好helm之后我们可以开始自定义chart,那么我们需要先创建出一个模板如下: helm create myapp 之后我们可以一下目录结构,目录的作用我简要介绍一下: templates/ 目录包括了模板文件。当Helm评估chart时,会通过模板渲染引擎将所有文件发送到templates/目录中。 然后收集模板的结果并发送给Kubernete...

基于Siverlight 3.0的超炫图表工具Visifire 最后一个免费版本,你还等什么?

概述              Visifire 是一个基于SilverLight的Chart组件,VISIFire 公司提供了 Open Source 的 Silverlight  Chart 组件,遵循GPL v3,可以在 ASP, ASP.Net, PHP, JSP, CodeFusion, Ruby on Rails 以及 HTML 中使用。支持...