报表引擎API开发入门—简单程序数据集
2017-08-02 12:39
267 查看
小编近期接的项目是有关报表开发的。非常想把这部分知识分享出来。希望大家可以支持我。不多说,立即进入我们今天的话题。
FineReport设计器与server不可能满足全部的需求,某些个性化需求可能无法实现。
我们能够深入的开发与控制API接口。想要了解我们内核结构及api的使用,首先我们必须掌握一些主要的概念,下图就是我们内核的最基本图示。
图是网上找的。有点不清楚。大家放大看哈。
因为每一个部分各自包括了非常多属性,比方能够设置单元格的前景、背景、边框、字体、字号等;又比方每一个WorkSheet中能够加入。删除单元格、能够设置每一个sheet的页面属性、能够给每一个sheet中加入图表悬浮元素等;再比方能够对WorkBook进行运行获得结果并导出成各种格式、能够进行打印、加入工具栏等等。下图为FineReport全部开放的API,我们今后都会用到。
1. 问题描写叙述
FineReport报表的数据来源能够是数据库数据或是文本数据,而且还能够是其他不论什么类型的数据,由于FineReport是通过AbstractTableData抽象类来读取数据源的,而上述全部的数据来源都继承实现其抽象方法,因此仅仅要实现了AbstractTableData抽象类,也就能够用自己定义类型的数据源了(程序数据集),FineReport报表引擎就能够读取定义的数据源作为报表数据源使用。
1.获取AbstractTableData的总列数
2.获取AbstractTableData中第columnIndex列的列名
3.推断是否存在第rowIndex行。这主要是用于处理超大数据时,全然遍历全部数据获取总行数相当困难,用这种方法来推断第rowIndex行是否存在,存在则可读取
4.获取AbstractTableData的总行数
5.获取AbstractTableData中第columnIndex列,第rowIndex行的数据
在某些应用场景中,须要在程序中对数据进行处理后再作为报表的数据源使用。
3.1定义程序数据源
定义一个类。继承AbstractTableData。并实现里面的方法,详细的代码例如以下:
// 定义程序数据集的列名与数据保存位置[/code]
private
private
// 实现构建函数,在构建函数中准备数据[/code]
publicArrayTableDataDemo()
this
this
// 实现ArrayTableData的其它四个方法。由于AbstractTableData已经实现了hasRow方法[/code]
publicintgetColumnCount()
return
public String getColumnName(int columnIndex)
return
publicintgetRowCount()
return
public Object getValueAt(int rowIndex,int columnIndex)
return
将ArrayTableDataDemo.java编译生成ArrayTableDataDemo.class类。
将生成的类文件复制到报表project/WEB-INF/classes文件夹下。因为该类是在com. fr.data包中的,因此终于应该将该ArrayTableData.class放在/WEB-INF/classes/com/fr/data以下。此时该程序数据源便定义好了。
3.2配置程序数据源
点击模板数据集以下的加号。选择程序数据集,然后在弹出的程序数据集对话框中,选择相应的class文件,例如以下图:
3.3使用程序数据集
配置好程序数据源后便能够使用定义的程序数据集了。与其它类型的数据集用法是同样的,能够通过拖拽方法实现单元格数据列绑定。例如以下图:
今天就说到这啦,是不是非常不好懂,小编在做着项目之前没接触过报表开发也是费了一番功夫。大家继续关注哦!
API基本知识
小编近期项目所做的是关于一个报表软件—FineReport报表开发的一些事,或许有人接触过。知识相通,我今天就把我做的分享出来。FineReport设计器与server不可能满足全部的需求,某些个性化需求可能无法实现。
我们能够深入的开发与控制API接口。想要了解我们内核结构及api的使用,首先我们必须掌握一些主要的概念,下图就是我们内核的最基本图示。
图是网上找的。有点不清楚。大家放大看哈。
因为每一个部分各自包括了非常多属性,比方能够设置单元格的前景、背景、边框、字体、字号等;又比方每一个WorkSheet中能够加入。删除单元格、能够设置每一个sheet的页面属性、能够给每一个sheet中加入图表悬浮元素等;再比方能够对WorkBook进行运行获得结果并导出成各种格式、能够进行打印、加入工具栏等等。下图为FineReport全部开放的API,我们今后都会用到。
简单程序数据集
FineReport设计器本身已经提供了数据库数据源、文本数据源、xml数据源等多种数据来源方式,同一时候程序猿还能够通过java程序自行生成数据来源,仅仅须要实现TableData接口便能够了。1. 问题描写叙述
FineReport报表的数据来源能够是数据库数据或是文本数据,而且还能够是其他不论什么类型的数据,由于FineReport是通过AbstractTableData抽象类来读取数据源的,而上述全部的数据来源都继承实现其抽象方法,因此仅仅要实现了AbstractTableData抽象类,也就能够用自己定义类型的数据源了(程序数据集),FineReport报表引擎就能够读取定义的数据源作为报表数据源使用。
2.实现原理
AbstractTableData抽象类主要有5个方法。例如以下:1.获取AbstractTableData的总列数
publicintgetColumnCount()[code];
2.获取AbstractTableData中第columnIndex列的列名
public String getColumnName(int columnIndex)[code];
3.推断是否存在第rowIndex行。这主要是用于处理超大数据时,全然遍历全部数据获取总行数相当困难,用这种方法来推断第rowIndex行是否存在,存在则可读取
publicbooleanhasRow(int rowIndex)[code];
4.获取AbstractTableData的总行数
publicintgetRowCount()[code];
5.获取AbstractTableData中第columnIndex列,第rowIndex行的数据
public Object getValueAt(int rowIndex,int columnIndex)[code];
在某些应用场景中,须要在程序中对数据进行处理后再作为报表的数据源使用。
3.演示样例
以下我们定义数据集为例如以下样式:列为Name,Score,值分别为Alex,15;Helly,22。Bobby,99作为程序数据集。3.1定义程序数据源
定义一个类。继承AbstractTableData。并实现里面的方法,详细的代码例如以下:
public[code]classArrayTableDataDemoextendsAbstractTableData
{
// 定义程序数据集的列名与数据保存位置[/code]
private
String[] columnNames;
private
Object[][] rowData;
// 实现构建函数,在构建函数中准备数据[/code]
publicArrayTableDataDemo()
{
String[] columnNames = {"Name"
,"Score"
};
Object[][] datas = { {"Alex"
,new
Integer(15
) },
{"Helly"
,new
Integer(22
) },{"Bobby"
,new
Integer(99
) }};
this
.columnNames = columnNames;
this
.rowData = datas;
}
// 实现ArrayTableData的其它四个方法。由于AbstractTableData已经实现了hasRow方法[/code]
publicintgetColumnCount()
{
return
columnNames.length;
}
public String getColumnName(int columnIndex)
{
return
columnNames[columnIndex];
}
publicintgetRowCount()
{
return
rowData.length;
}
public Object getValueAt(int rowIndex,int columnIndex)
{
return
rowData[rowIndex][columnIndex];
}
}
将ArrayTableDataDemo.java编译生成ArrayTableDataDemo.class类。
将生成的类文件复制到报表project/WEB-INF/classes文件夹下。因为该类是在com. fr.data包中的,因此终于应该将该ArrayTableData.class放在/WEB-INF/classes/com/fr/data以下。此时该程序数据源便定义好了。
3.2配置程序数据源
点击模板数据集以下的加号。选择程序数据集,然后在弹出的程序数据集对话框中,选择相应的class文件,例如以下图:
3.3使用程序数据集
配置好程序数据源后便能够使用定义的程序数据集了。与其它类型的数据集用法是同样的,能够通过拖拽方法实现单元格数据列绑定。例如以下图:
今天就说到这啦,是不是非常不好懂,小编在做着项目之前没接触过报表开发也是费了一番功夫。大家继续关注哦!
相关文章推荐
- 报表引擎API开发入门—带参程序数据集
- 报表引擎API开发入门—简单程序数据集
- 报表引擎API开发入门—带参程序数据集
- 报表引擎API开发入门—简单程序数据集
- 报表引擎API开发入门— EJB程序数据源
- 报表引擎API开发入门— EJB程序数据源
- ArcGIS API for Silverlight开发入门(8):在程序中使用Virtual Earth的服务
- ArcGIS API for Silverlight开发入门(8):在程序中使用Virtual Earth的服务
- 【Cocos2d-x游戏引擎开发笔记(19)】简单数据存储以及抗锯齿
- (新手入门)AS3基于Starling引擎移动开发之starling简单碰撞
- ArcGIS API for Silverlight开发入门(9)外传:在程序中调用AO
- 网页游戏开发入门教程三(简单程序应用)
- 自定义数据的RDLC报表开发入门(一)
- Linux网络编程-简单的客户端和服务器通讯程序开发入门(2)
- 简单入门: 如何用Adobe Form来展示SAP报表数据
- API入门系列之四 -相当简单的SDK程序
- gSoap入门之三__C++开发的简单WebService客户端程序
- 网页游戏开发入门教程三(简单程序应用)
- 最简单的Windows win32 API 程序开发方法
- ArcGIS API for Silverlight开发入门(8):在程序中使用Virtual Earth