相信动态列的实现困扰了很多人,大数据量,多字段的加载将会非常耗时,数据又做不到真正的动态灵活。现有的方式都是通过变向的隐藏等方式来实现。
那该如何解决呢?这里分享帆软报表设计器FineReport的实现方案,结合实际工作中遇到的的相关内容。
我本地常用数据库是MYSQL,所以比较了解一点,所以实现方式也是基于mysql的。首先了解一下MySQL自带的information_schema数据库使用。
大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章后,你就会对information_schema数据库有所了解。
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
在 MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
information_schema数据库表说明:
- SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。
- TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。
- COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
- STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。
- USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
- SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
- TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
- COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
- CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
- COLLATIONS表:提供了关于各字符集的对照信息。
- COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOWCOLLATION的前两个显示字段。
- TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。
- KEY_COLUMN_USAGE表:描述了具有约束的键列。
- ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。
- VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。
- TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表
扩展的应用
- 查看某个数据库表的记录数
- 查看数据库所占空间
selectconcat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB,
concat(round(sum(index_length/1024/1024),2),'MB')as index_length_MB
frominformation_schema.tables where
table_schema='数据库名';
- 查看某个表所占空间
selectconcat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size,
concat(truncate(sum(max_data_length)/1024/1024,2),'MB')as max_data_size,
concat(truncate(sum(data_free)/1024/1024,2),'MB')as data_free,
concat(truncate(sum(index_length)/1024/1024,2),'MB')as index_size
frominformation_schema.tables where TABLE_NAME = '表名';
看完之后相信可能还是有点疑惑。就是说mysql中有一个系统库information_schema。这个库中存放着mysql数据库的数据库实例名,表名称,表注释,字段名称,字段注释等等等等。而这个库的存在为我们动态列的实现就提供了一个基础。(其余的数据库oracle、sqlserver、db2等也有类似的存在。)
然后我们继续回到主题。我在本地建立了一个测试库reporttest,测试表report。在mysql库中新建一个库reporttest(或者使用已经存在的库,但是如果使用已经存在的,那么报表内部sql内容就需要更改。所以最好新建一个),然后用类似navicat的工具运行我提供的reporttest.sql文件,即可建表并且导入数据,然后刷新即可,此时数据准备完成。
设计器创建数据连接test,填写对应的数据库信息,测试成功即OK。
此时,库名称为reporttest,表名称为report,数据连接test。这时直接预览动态列实现方案.cpt。
可以很清晰的看到效果,选择哪个列,它就只查询那个列,只展示哪个列的数据,这就是动态列的实现方案。大家可以依据我的逻辑,替换成自己的数据连接库、表数据进行测试使用体验!
相关推荐
在FineReport实现动态列报表的过程中,上述技术要点需根据实际需求合理利用。例如,可以根据业务需求预先设计好多种报表模板,并在模板中预留动态列的控制逻辑,以应对不同的数据展现需求。 根据所给的部分内容中的...
在这个“Finereport数据集参数实现动态列报表模板 + 函数JS代码”的资源包中,我们将深入探讨如何利用FineReport的特性来实现动态列报表,并结合JavaScript(JS)代码来优化这一过程。 首先,动态列报表的核心在于...
### 报表开发工具FineReport中如何把报表放到网页中显示 #### 一、背景介绍 随着信息技术的发展,越来越多的企业倾向于使用基于浏览器/服务器(Browser/Server,简称BS架构)的系统来处理业务流程。这类系统通常...
《Web报表工具FineReport全方位解析》 FineReport是一款强大的Web报表工具,专为解决企业数据可视化、报表设计等问题而生。本教程将深入探讨FineReport的功能特性,帮助用户全面掌握其使用技巧,实现高效的数据管理...
### 报表工具FineReport中如何把报表放到网页中显示 #### 一、背景与需求分析 随着互联网技术的发展,企业对于数据展示的需求越来越倾向于基于Web的解决方案。这些Web应用通常采用BS架构(Browser/Server架构),...
以上就是如何在FineReport报表工具中根据条件动态控制参数控件的显示与可用性的详细步骤。通过这种方式,报表设计者可以使得最终用户在使用报表时获得更加流畅和人性化的体验,同时保证了报表的交互逻辑清晰合理。...
报表工具通常用于数据的收集、整理、分析以及展示,帮助企业快速理解和利用大量业务数据,为决策提供依据。 1. **模板设计**:FineReport提供了丰富的图表类型和样式,用户可以通过拖拽方式轻松创建各种复杂报表...
报表工具FineReport在数据展现层面提供了强大的功能,使得数据可以以更直观和可读的形式呈现给用户。主要的知识点可以分为两大块:数据字典和公式形态。下面详细阐述这两部分的功能与应用。 首先,数据字典是...
报表工具FineReport使用教程之自动计算日期 FineReport是一款功能强大且国际通用的报表软件,广泛应用于企业的报表制作中。在日常工作中,我们经常需要制作以各种数据报表,来分析公司的经营业务的情况。今天,我们...
FineReport是企业级的报表工具,广泛应用于数据可视化和报表设计,特别是对于需要大量报表输出的企业来说,FineReport的易用性和灵活性非常受欢迎。在设计报表时,确保内容的准确显示和美观布局是非常重要的。而自动...
### 报表工具FineReport参数强化全攻略:深入解析与应用技巧 在现代数据分析与报告制作领域,报表工具扮演着至关重要的角色。其中,FineReport作为国内领先的报表开发工具,以其强大的功能、灵活的定制能力和易用性...
### 报表工具FineReport新版本参数全攻略 #### 细说FineReport 6.5参数界面设置变动 报表工具FineReport,作为帆软(中国)有限公司旗下的旗舰产品,一直致力于提供高效、灵活且功能丰富的报表解决方案。其新版本...
### Web报表工具FineReport定时器使用说明 #### 一、定时器概述 FineReport是一款功能强大的报表设计与生成工具,广泛应用于企业的数据处理与展示场景。FineReport V6.5版本进一步增强了定时器功能,使其在报表...
FineReport是一款强大的报表设计与管理软件,被广泛应用于各类企业及机构中。它不仅具备高效的数据处理能力,还能支持复杂多样的表单设计需求。随着技术的发展和用户需求的变化,FineReport也在不断升级优化,以满足...
### 报表工具FineReport正则表达式定义规则 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,在多种编程语言中都有应用,它可以帮助我们完成字符串搜索、替换等一系列复杂的文本处理任务。在报表...