FineBI学习系列之FineBI官网提供的程序数据集(图文详解)

Posted zlslch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FineBI学习系列之FineBI官网提供的程序数据集(图文详解)相关的知识,希望对你有一定的参考价值。

 

 

 

不多说,直接上干货!

 

  这是来自FineBI官网提供的帮助文档

http://help.finebi.com/
http://help.finebi.com/doc-view-31.html

 

 

目录:

 

 

 

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类。
 
  怎么做?
     用jdk 然后cmd里头命令
    或者用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:\\>

 

    出错的原因是: 

       报错的是工具内置的jar包
       建议你用开发工具吧
       然后引入这几个java包
       然后在编译
 
 
  解决办法:
     你直接去工具的安装目录的WebReport下的WEB-INF下的lib目录下拷贝
     如果搞不清楚,直接把这几个包全部引入工具中
技术分享图片

 


     保存你这个java文件就行
 
 
 
   这里,我使用在Eclipse里将.java 编译成 .class文件?
    答: 可以,当你点击保存的时候,eclipse已经帮你编译好了,你可以在你当前工程的目录下,找到bin文件夹,文件夹下面有编译好的你的.class文件
 技术分享图片

 

 

 

 技术分享图片

 

 
 
 
 
 
    将生成的类文件拷贝到/webapps/WebReport/WEB-INF/classes/com/fr/wind下,此时该程序数据源便定义好了。
技术分享图片

 

  
技术分享图片
    注:上面WEB-INF后面的可存放地址在BI目录中是没有的,需要自行创建。

 

  

 

 

 

 

 

 

 

 

 

 

 

 

  3.2 配置程序数据
  首先我们要将设计器远程到BI的服务器上。此处详见设计器远程到BI服务器上
  打开服务器  ->  服务器数据集,点击加号选择程序数据集:

技术分享图片

 

 

 

 

 技术分享图片

 

 

 

 

 

 

 

 

 

  进行类名选择。

 技术分享图片

 

 

 技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

欢迎大家,加入我的微信公众号:大数据躺过的坑        人工智能躺过的坑
 
 
 

同时,大家可以关注我的个人博客

   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)技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片 

 

技术分享图片

 

 

 

 

 

技术分享图片

 

 

 

 

 

 技术分享图片

以上是关于FineBI学习系列之FineBI官网提供的程序数据集(图文详解)的主要内容,如果未能解决你的问题,请参考以下文章

FineBI学习系列之FineBI官网提供的SAP数据集(图文详解)

FineBI学习系列之FineBI官网提供的服务器数据集(图文详解)

FineBI学习系列之FineBI与Transwarp Inceptor数据连接(图文详解)

FineBI学习系列之FineBI的业务包管理(图文详解)

FineBI学习系列之FineBI新建仪表板(图文详解)

FineBI学习系列之FineBI的业务包分组(图文详解)