提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表。今天我们来一起了解一下什么是报表,报表的结构、构成元素,以及为什么需要报表。

什么是报表

简单的说:报表就是通过表格、图表等形式来动态显示数据,并为使用者提供浏览、打印、导出和分析的功能,可以用公式表示为:

报表 = 多样的布局 + 动态的数据 + 丰富的输出

报表通常包含以下组成部分:

  1. 报表首页:在报表的开始处,用来显示报表的标题、图形或说明性文字,每份报表只有一个报表首页。
  2. 页眉:用来显示报表中的字段名或对记录的分组名称,报表的每一页只有一个页面页眉。
  3. 主体:打印表或查询中的记录数据,是报表显示数据的主要区域。
  4. 页脚:打印在每页的底部,用来显示本页的汇总说明,报表只有一个页面页脚。
  5. 报表尾页:用来显示整份报表的汇总说明,在所有记录都被处理后,只打印在报表的结束处。

报表的发展历史

报表的使用和相关技术发展大致分为五个阶段。

一、纸质类报表

在没有计算机以前,人们利用纸和笔来记录数据。数据以记账人能理解的表现形式来记录,这种形式难于修改且不规范,易出错,且易丢失不易保存。如图所示:

二、电子化报表

计算机出现之后,人们利用计算机处理数据和界面设计的功能来生成、展示报表,相比较手工方式而言,工作效率大大提高。这个时期,最为典型就是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使用

我们将在本期葡萄城公开课中,通过代码演示及在线分享,讲解如何动态创建一张报表模板。公开课预约地址:http://live.vhall.com/510595995

动态创建报表的目的

  1. 可作为通用性的报表模板。开发者只需动态创建一张报表,之后传入不同的数据集数据即可实现模板复用。
  2. 报表布局更加灵活。用户可以在自己的配置界面设置参数,并按指定参数生成报表模板的UI模块,如行列、间距等。
  3. 数据源、数据集多样化。开发人员可以将数据源、数据集单独配置维护,而不再需要将数据源在报表设计器里写死。
  4. 4.   报表数据能随条件随时调用。开发人员可以更便捷、更迅速地查询和阅读数据,并可使用更为丰富的逻辑动能,如参数过滤、参数联动、钻取、参数面板动态显示、动态参数列、动态条件等。

案例分享:如何在.NET MVC 模式下,动态创建一张报表模板

本期公开课特别邀请:西安龙峰信息技术有限公司,HIS医疗系统项目开发经理 —— 付鹏程先生 ,为大家在线分享 ActiveReports 报表控件在医疗行业的应用实践,以及如何在.NET MVC 模式下动态创建一张列表报表。

直播地址:http://live.vhall.com/510595995

直播时间:2019-08-07(星期三)下午 14:00

内容大纲:

  1. 报表设计中常见的结构及元素
  2. 代码加载报表的2种方式
  3. 利用代码动态创建报表元素:UI布局、数据源、数据集

讲师将以列表报表这一类型,通过代码演示以及Demo示例,为您讲解动态创建报表模板的具体步骤及如何快速地通过代码创建报表元素。

列表报表,作为常见的报表类型,以列表的方式展示字段值,无需分组合并。列表报表的样式如下所示:

列表报表已被广泛应用于仓储管理、交通运输、医院医疗等领域,随着这些领域的规模日趋扩大、结构日趋复杂,固定的报表列设计已经难以满足用户的实际需求,而由用户动态生成报表列、自定义报表列样式,已成为报表设计过程中一种更为普遍的需求。

动态创建报表模板的应用场景

以HIS医疗系统中的“医生工作量统计(详细)报表”为例,该报表模板包含了14个业务模块,且全部对应一种报表类型:列表。为了简化报表创建流程,提高项目开发效率,就需要通过代码创建动态列报表类型。

通过代码创建动态列报表的好处,除了加速开发、减少后期维护成本外,还可自适应列宽,即根据你所创建的内容自动填充页面布局。

动态创建报表的示例下载

扩展阅读

关于 ActiveReports .NET报表控件

ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和报表开发的需求,作为专业的报表工具为全球超过 300,000 名开发者提供全面的报表解决方案。

ActiveReports 提供了多种用于报表设计的工具,如 VSDesigner,Visual Studio 加载项、独立的桌面端设计器和在线报表设计器。这些报表设计工具均可嵌入到您的应用系统中,为您的最终用户提供报表设计功能。

【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表的更多相关文章

  1. 基于mysql的报表工具有哪些?值得推荐的mysql报表工具

    什么是SQL?SQL是结构化查询语言. 什么是数据库?数据库是用来存储数据的. 什么是mysql?Mysql是目前较为流行的数据库. 基于mysql的报表工具有哪些? 其实现在所有的报表工具,基本都支 ...

  2. web报表工具FineReport常用函数的用法总结(报表函数)

    说明:本次总结中,凡是以tableName或viewName作为参数因子的.函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序. CLASS CLASS(object):返回o ...

  3. Spring MVC模式下,获取WebApplicationContext的工具类 方法

    在已有的注解类型下,获取WebApplicationContext的工具类 通过  WebApplicationContextUtils.getRequiredWebApplicationContex ...

  4. 通过SSRS创建动态分组报表的方法!

    SSRS是微软专门的报表开发工具,对于一般高级用户(非专业开发人员)可以通过SQL Server Report Builder创建,可以把制作好的发布在单独部署的SQL Server Reportin ...

  5. 性能测试十七:liunx下jmeter结果报表、html报表

    控制台日志,只能看出整体的数据,若只是测单接口,这个最好用,但若有多个接口时,无法分别展示,所以需要换另外一种报表 四种方式来获取Jmeter的结果报表 一.在GUI模式下跑Jmeter的脚本,用tp ...

  6. ART模式下基于Xposed Hook开发脱壳工具

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78092365 Dalvik模式下的Android加固技术已经很成熟了,Dalvik ...

  7. BIRT-商务智能报表工具开发案例指南

    BIRT 报表 脚本 开发 数据库 http://www.iteye.com/topic/1128694 打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案 ...

  8. 报表工具ActiveReports开发实例——物联网智能供水云平台

    一.公司简介 山西汾西电子科技股份有限公司(以下简称:汾西电子)是经中国船舶重工集团批准,在原汾西重工电子科技公司基础上重组的专业从事智能电能表.水表.热量表及电动汽车充电设备研发生产的高科技公司. ...

  9. 易普优APS高级计划排程系统系列提纲:行业知识,业务建模,排程算法,计划可视化,平台框架,案例分享

    专注于高级计划排程系统研发与实施10来年了,国内外各种APS软件基本都研究过,这里列个提纲主要从6个方面跟大家一起讨论分享,欢迎大家鼓掌或拍砖 易普优APS高级计划排程系统系列001:行业知识,APS ...

随机推荐

  1. USACO19JAN Redistricting

    题目链接:戳我 一个优先队列优化DP 一定要注意第二关键字的排序啊!!我真的是菜,被坑了好久qwq 设\(f[i]\)表示前i个的最小答案,从前面选择的时候第一关键字是f[j]的大小,第二关键字是要确 ...

  2. linux下防止rm-rf /删除,让人崩溃

    1.下载safe-rm软件: safe-rm下载地址: https://launchpad.net/safe-rm命令 wget -c https://launchpadlibrarian.net/1 ...

  3. Java集合框架之LinkedHashSet

    简述 LinkedHashSet底层使用 LinkedHashMap 来保存所有元素,它继承自 HashSet,其所有的方法操作上又与 HashSet 相同,因此 LinkedHashSet 的实现上 ...

  4. hadoop yarn日志分离

    根据hdfs的auditlog以及fsimage分析,yarn的日志文件占用了10%-20%的rpc请求以及文件量,这对namenode的性能有比较大的影响,特别是当集群规模越来越大,会影响生产业务. ...

  5. [CSP-S模拟测试]:那一天我们许下约定(DP+组合数学)

    题目传送门(内部题2) 输入格式 每个测试点有多组测试数据.对于每组数据,有一行共三个整数$N$,$D$,$M$含义如题.输入结束标识为$“0 0 0”$ (不含引号). 输出格式 对于每组数据,输出 ...

  6. Android学习_Fragment

    Fragment 使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理.从而可以更加方便的在运行过程中动态地更新Activity的用户界面.另外Fragment并不能单独 ...

  7. Javascript引擎的单线程机制和setTimeout执行原理阐述

    工作中使用setTimeout解决了一个问题,于是对setTimeout的相关资料整理了下,以及对js引擎执行的原理一并整理了下,希望能给码农们一些帮助.若发现有错的地方大家及时指出,共同学习进步. ...

  8. TCP层accept系统调用的实现分析

    inet_csk_accept函数实现了tcp协议accept操作,其主要完成的功能是,从已经完成三次握手的队列中取控制块,如果没有已经完成的连接,则需要根据阻塞标记来来区分对待,若非阻塞则直接返回, ...

  9. python3笔记目录大纲汇总

    篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...

  10. Note 1 for <Pratical Programming : An Introduction to Computer Science Using Python 3>

    Book Imformation : <Pratical Programming : An Introduction to Computer Science Using Python 3> ...