不多说,直接上干货!
这是来自FineBI官网提供的帮助文档
http://help.finebi.com/
http://help.finebi.com/doc-view-31.html
目录:
1、描述
由上一节BI可能通过设计器远程服务器的方式,以服务器数据集的形式来连接数据。
这样其数据来源可以是数据库数据,还可以是其它任何类型的数据,因为BI是通过AbstractTableData抽象类来读取数据源的,而上述所有的数据来源都继承实现其抽象方法,因此BI可以用自定义类型的数据源了(程序数据集),BI引擎就能够读取定义的数据源作为报表数据源使用。下文讲述程序数据集的建立方法。
2、实现原理
//获取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); 在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用
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]; } }
或者用IDE之类的工具
这个实现起来很简单
https://blog.csdn.net/xuehuabaobeier/article/details/44597437
当然,你也许会出现这个问题
C:\\Users\\lenovo>D: D:\\>javac ArrayTableDataDemo.java ArrayTableDataDemo.java:3: 错误: 程序包com.fr.data不存在 import com.fr.data.AbstractTableData; ^ ArrayTableDataDemo.java:5: 错误: 找不到符号 public class ArrayTableDataDemo extends AbstractTableData { ^ 符号: 类 AbstractTableData 2 个错误 D:\\>
出错的原因是:
建议你用开发工具吧
然后引入这几个java包
然后在编译
保存你这个java文件就行
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/ http://www.cnblogs.com/sunnyDream/
详情请见:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071)