程序数据集

编辑
文档创建者:夏娃 (67727 )     浏览次数:4576次     编辑次数:12次     最近更新:doreen0813 于 2017-12-05     

目录:

1、描述编辑

上一节BI可能通过设计器远程服务器的方式,以服务器数据集的形式来连接数据。这样其数据来源可以是数据库数据,还可以是其它任何类型的数据,因为BI是通过AbstractTableData抽象类来读取数据源的,而上述所有的数据来源都继承实现其抽象方法,因此BI可以用自定义类型的数据源了(程序数据集),BI引擎就能够读取定义的数据源作为报表数据源使用。下文讲述程序数据集的建立方法。

2、实现原理编辑

AbstractTableData抽象类主要有5个方法,如下:
//获取AbstractTableData的总列数
public int getColumnCount();
//获取AbstractTableData中第columnIndex列的列名
public String getColumnName(int columnIndex);
//判断是否存在第rowIndex行,这主要是用于处理超大数据时,完全遍历所有数据获取总行数相当困难,用这个方法来判断第rowIndex行是否存在,存在则可读取
public boolean hasRow(int rowIndex);
//获取AbstractTableData的总行数
public int getRowCount();
//获取AbstractTableData中第columnIndex列,第rowIndex行的数据
public Object getValueAt(int rowIndex, int columnIndex);
在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用

3、案例编辑

下面我们定义数据集为如下样式:列为Name,Score,值分别为Alex,15;Helly,22;Bobby,99作为程序数据集。
3.1 定义数据源程序
定义一个类ArrayTableDataDemo继承AbstractTableData,并实现里面的方法,具体代码如下:
package com.fr.wind; import com.fr.data.AbstractTableData; public class ArrayTableDataDemo extends AbstractTableData { // 定义程序数据集的列名与数据保存位置 private String[] columnNames; private Object[][] rowData; // 实现构建函数,在构建函数中准备数据 public ArrayTableDataDemo() { 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方法 public int getColumnCount() { return columnNames.length; } public String getColumnName(int columnIndex) { return columnNames[columnIndex]; } public int getRowCount() { return rowData.length; } public Object getValueAt(int rowIndex, int columnIndex) { return rowData[rowIndex][columnIndex]; } }
将ArrayTableDataDemo.java编译生成ArrayTableDataDemo.class类。
将生成的类文件拷贝到/webapps/WebReport/WEB-INF/classes/com/fr/wind下,此时该程序数据源便定义好了。
注:上面WEB-INF后面的可存放地址在BI目录中是没有的,需要自行创建。
3.2 配置程序数据
首先我们要将设计器远程到BI的服务器上。此处详见设计器远程到BI服务器上
打开服务器数据集,点击加号选择程序数据集:
222
进行类名选择。
222
222

222
可看到服务器数据集下面,即有程序数据集。打开BI的数据配置,添加业务包,在数据连接中选择服务器数据集,如下图:
222
选择下一步,加入到Fineindex,更新Fineindex后,预览该表可看到其表内容:
222
到此,简单的程序数据集配置就完成了。

注:在编译类的时候,请选择与BI所属服务器一致的JDK,本文使用的是BI默认的tomcat其JDK环境是1.8,因此编绎程序源时,也使用的是JDK1.8;否则在BI更新Fineindex会报错。

附件列表


主题: 数据配置
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?