FineReport动态数据库与内置数据集

发布于:2022-11-12 ⋅ 阅读:(1123) ⋅ 点赞:(1)

前言

      若您数据库中的表结构是一样的,其数据是不一样的,您希望可以动态切换数据库使其展示的结果不同。还有一种情况,若是 Oracle 数据库中的模式名和表名不一样,表结构一样且数据是不一样的,希望可以动态切换模式名和表名使其展示的结果不同。

      内置数据集,是指新建一个类似数据库表的原表,可作为模板的数据源来设计报表。如在某一台机器上使用数据库查询制作了一个模板,将该模板拷贝到另外一台机器访问则需要有对应的连接,若没有此连接就不能访问该模板。此时可以直接将该模板的数据集定义成内置数据集或者在制作模板的机器上将该模板输出成内置数据集模板,这样该模板就可以在任何电脑上访问了。

该功能可方便用户进行功能测试,或发送模板给帆软技术进行调试纠错。

1.动态数据库

1.1 动态切换数据库

在数据连接和模板做好的基础上,以 Oracle 数据集为例,直接在「数据库名称」框中写个参数,如下图所示:

注:用户名和密码也可以使用参数,参见本文第 4 节。

给 ${database} 参数赋值即可实现动态数据源的效果,一般直接在 URL 后面赋值,例如访问数据库 frhelp:

1.2 动态切换模式名和表名

同样在数据连接和模板做好的基础上,改变数据集定义把模式名和表名都变成参数,如下图所示:

给这两个参数赋值即可。

注:如果使用的不是 Oracle 数据库,那么只需定义一个表名参数,如 select * from ${tablename},即可实现动态切换表的效果。

1.3动态切换 IP 地址、数据库名字

以 SQL Server 为例:动态 IP 和数据库名,可以让用户名和密码也通过参数来传递。

传值说明: 

  1. 给参数 IP 传值:「localhost」
  1. 给参数 dbname 传值:「test」
  1. 给参数 user 传值:「sa」
  1. 给参数 password 传值:「123456」

其他数据库的设置类似,这里就不一一赘述了

注:如集成在某个系统的话,参数传递和报表处理参数是一样的。

2.内置数据集

2.1 功能简介

创建「内置数据集」有两种方式:

  1. 输出内置数据集模板:直接将模板输出成模板(内置数据),里面使用的所有数据自动变成内置数据集;
  1. 定义内置数据集:将数据手输进内置数据集中,再使用其制作模板;

由于直接定义「内置数据集」需要手输数据比较麻烦,所以一般使用的是第一种方式,详见本文第 2 节。

2.2输出模板内置数据

下面以 demo 模板「堆积折线图」为例,它使用的模板数据集「ds1」是数据库查询。

1)选择「文件」,将该模板输出为模板(内置数据),如下图所示:

2)更改文件名后保存,如下图所示:

注:内置数据集不能自动还原为模板数据集,所以输出的模板不要和原模版同名覆盖原模板。

刷新后查看 123.cpt,可以看到使用的数据集已经变成内置数据集。如下图所示:

2.3定义内置数据集

1)点击「+」,选择内置数据集,如下图所示:

2)在内置数据集设置页面,可以新增列并设置「列名」和「字段类型」。如下图所示:

注:由于内置数据集输入数据很麻烦,所以正常情况下不会使用手动输入的方式。仅会使用第 3 节方式直接输出模板内置数据集。

3)列设置好后就需要输入具体数据,并设置表名为「地区产品销量表」。如下图所示:

设置完后,可以看到模板数据集中会增加一个名为 '地区产品销量表' 的数据集,如下图所示:

总结

以上是关于帆软FineReport动态数据库和内置数据集的详细操作方法,希望对你的帆软数据可视化分析有一点点帮助,至于在实际工作中如何运用,是一件比较复杂的事,需要将这些方法适配到自己所在的业务,甚至需要根据实际业务进行一些修改,这都需要很多的实践和思考。


网站公告

今日签到

点亮在社区的每一天
去签到