提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表。今天我们来一起了解一下什么是报表,报表的结构、构成元素,以及为什么需要报表。
什么是报表?
简单的说:报表就是通过表格、图表等形式来动态显示数据,并为使用者提供浏览、打印、导出和分析的功能,可以用公式表示为:
报表 = 多样的布局 + 动态的数据 + 丰富的输出
报表通常包含以下组成部分:
- 报表首页:在报表的开始处,用来显示报表的标题、图形或说明性文字,每份报表只有一个报表首页。
- 页眉:用来显示报表中的字段名或对记录的分组名称,报表的每一页只有一个页面页眉。
- 主体:打印表或查询中的记录数据,是报表显示数据的主要区域。
- 页脚:打印在每页的底部,用来显示本页的汇总说明,报表只有一个页面页脚。
- 报表尾页:用来显示整份报表的汇总说明,在所有记录都被处理后,只打印在报表的结束处。
报表的发展历史
报表的使用和相关技术发展大致分为五个阶段。
一、纸质类报表
在没有计算机以前,人们利用纸和笔来记录数据。数据以记账人能理解的表现形式来记录,这种形式难于修改且不规范,易出错,且易丢失不易保存。如图所示:
二、电子化报表
计算机出现之后,人们利用计算机处理数据和界面设计的功能来生成、展示报表,相比较手工方式而言,工作效率大大提高。这个时期,最为典型就是Excel、word等办公软件,这些工具仅仅是将手工绘制报表的方式改为电子处理方式,没有定义专门的报表结构来动态加载报表数据,这类软件中的数据都是已经定义好的,不能动态变化。如图所示:
三、基础报表工具
随着信息化程度的不断提高,对于数据动态化的迫切需要,因此出现了许多内置于ERP或数据库软件的报表,报表以固定的格式嵌入ERP系统或数据库软件中,它们可以拥有动态变化的数据,但是这类软件一般只会提供最简单的表格形式来显示数据。它们没有动态报表、格式多样化等特性。
四、现代报表工具
信息的发展总是在辅助用户工作,提高用户的工作效率。数据动态化之后,单一表格样式的报表并不能满足用户需求,因此产生了真正意义上的报表,即具有数据动态化以及格式多样化特性的报表。为此,有专门的报表结构来动态的加载数据,同时实现报表格式的多样化,进行有效的数据展示。
五、自助式报表
随着业务系统的发展,在不借助任何软件研发人员协助的情况下,最终用户需要根据自身的要求,整合各种不同的数据来创建具有交互式功能的报表,进行即时分析与预测分析,从而降低决策的风险性,帮助企业发现潜在商机。基于此类需求, ActiveReports报表工具就此诞生。
报表的结构及主要元素
以ActiveReports桌面报表设计器中的一张报表为例,报表通常包含页面渲染部分和数据两部分:
- 页面渲染(HTML)部分:可以插入图表、Table、文本框、图像等元素
- 数据部分:包含数据源(DataSource)和数据集(DataSet)
如何通过代码创建并加载一张报表?
为ActiveReports报表工具为例,可以通过两种模式设计报表:
一、UseFileStore模式(静态加载模式):
- 遍历UseFileStore设置的文件夹路径,找到文件夹里存在的报表文件
- 报表文件即是前端Js设置报表reportID
注意:这种模式只能加载之前设计好的报表文件
二、UseCustomStore模式(动态创建模式):
- settings.UseCustomStore(GetReport)
这种模式会先执行GetReport回调方法,通常GetReport里都是动态创建报表模板元素的代码,当GetReport执行完后(创建好报表模板),返回Report,继续给settings.LocateDataSource使用。
动态创建报表的目的
- 可作为通用性的报表模板。开发者只需动态创建一张报表,之后传入不同的数据集数据即可实现模板复用。
- 报表布局更加灵活。用户可以在自己的配置界面设置参数,并按指定参数生成报表模板的UI模块,如行列、间距等。
- 数据源、数据集多样化。开发人员可以将数据源、数据集单独配置维护,而不再需要将数据源在报表设计器里写死。
- 报表数据能随条件随时调用。开发人员可以更便捷、更迅速地查询和阅读数据,并可使用更为丰富的逻辑动能,如参数过滤、参数联动、钻取、参数面板动态显示、动态参数列、动态条件等。
列表报表,作为常见的报表类型,以列表的方式展示字段值,无需分组合并。列表报表的样式如下所示:
列表报表已被广泛应用于仓储管理、交通运输、医院医疗等领域,随着这些领域的规模日趋扩大、结构日趋复杂,固定的报表列设计已经难以满足用户的实际需求,而由用户动态生成报表列、自定义报表列样式,已成为报表设计过程中一种更为普遍的需求。
动态创建报表模板的应用场景
以HIS医疗系统中的“医生工作量统计(详细)报表”为例,该报表模板包含了14个业务模块,且全部对应一种报表类型:列表。为了简化报表创建流程,提高项目开发效率,就需要通过代码创建动态列报表类型。
通过代码创建动态列报表的好处,除了加速开发、减少后期维护成本外,还可自适应列宽,即根据你所创建的内容自动填充页面布局。
ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。
本文转载自葡萄城