反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

程序数据源

  • 文档创建者:lu123
  • 历史版本:7
  • 最近更新:RosieY 于 2021-09-26
  • 1. 概述

    FineReport 报表的数据来源可以是数据库数据、文本数据,并且还可以是其它类型的数据。

    FineReport 主要通过 AbstractTableData 抽象类来读取数据源,上述所有的数据来源都继承 AbstractTableData 类实现抽象方法,因此用户只要实现了 AbstractTableData 抽象类,FineReport 报表引擎就能够读取用户自定义的数据源。

    FineReport 支持程序数据集,用户自定义程序数据源后,可在数据集处添加「程序」数据集使用。如下图所示:

    具体可参考简单示例:简单程序数据集

    10.0.16 之前的版本,AbstractTableData 抽象类有 4 个方法;10.0.16 及之后的版本,进一步封装取数,只需要实现 2个方法即可。具体内容如下:

    1)10.0.16 之前的版本

    获取 AbstractTableData 的总列数:

    public int getColumnCount();

    获取 AbstractTableData 中第 columnIndex 列的列名:

    public String getColumnName(int columnIndex);

    获取 AbstractTableData 的总行数:

    public int getRowCount();

    获取 AbstractTableData 中第 columnIndex 列,第 rowIndex 行的数据,在某些应用场景中,需要在程序中对数据进行处理后再作为报表的数据源使用。

    public Object getValueAt(int rowIndex, int columnIndex);

    2)10.0.16 及之后的版本

    初始化列名数组:

    /**
         * 初始化列名数组
         *
         * @return {col1,col2,col3...}
         * @throws TableDataException
         */
        public abstract String[] initColumnNames();

    加载数据:

    /**
         * 加载数据
         *
         * @return 行列数据
         */
        public abstract List<Object[]> loadData();

    2. 索引

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526