报表系统的设计与探讨--第15篇git
用日志记录“开源软件”的诞生github
【点亮星标】----祈盼着一个鼓励数据库
博主开源地址:异步
报表对于业务系统是十分重要且与全部功能息息相关的,在信息系统的平常应用中简直能够说是无处不在。报表每每是经过汇总、统计的方式,经过不一样的逻辑以及不一样的展示形式,最终输出咱们在信息系统中输入的数据。设计
传统的方式,咱们实现一个报表,每每须要代码层面去实现。有一个报表逻辑咱们就要根据当前逻辑,编写一套代码来输出显示一个报表。但这种方式无疑是须要消耗高昂的开发成本以实现目的,因此报表系统应运而生。报表系统,简单说就是能够经过配置或最少的开发方式来让用户本身实现本身想要的报表,以更便捷的方式下降了报表的实现成本。日志
要看报销系统解决了哪些问题,先要看原始的实现方式存在哪些问题,咱们一条一条来分析。blog
(1) 快速开发报表,除了报表的核心逻辑外,开发多个报表每每须要不少重复的工做量。因此下降开发成本是报表系统最直接的好处。资源
(2)离线功能,传统方式在报表生成时,每每是同步的,咱们必须等待系统执行完成后,再查看报表或作其余操做。若是在报表的数据量较大的状况下,中间的等待时间每每是没法接受的。而报表系统就能够实现离线的生成报表,异步的查看报表。
(3)历史报表,传统方式咱们并不会存储报表的历史记录,好比你在月初生成了一个报表,若是你不在本身的硬盘里保存它,咱们就很难在月底时找到月初生成的报表数据。而报表系统的历史查询功能就更突显了它的优点。
(4)定时报表、批量报表等更加灵活的报表生成方式,报表系统通常会提供更多更灵活的报表生成方式,而不只仅局限于点击生成、点击查看,这是原始实现方式不具有的。
(5)统一的查看路径和查看方式,若是没有报表系统,咱们要同时查看多个报表,每每必须屡次点击打开不一样的模块,找到不一样报表,查看的路径和方式复杂多样。而统一的方式更利于咱们的平常管理和操做。
(6)统一的权限控制,报表系统便于咱们设置统一的权限逻辑,并进行统一的权限配置,实现报表和数据的严格管控。
你们都知道ERP系统管理的是企业内部的业务和财务,管理的是企业内一切的资源。这里面涉及的报表不可胜数,须要汇总、加工、统计、计算、分析等各类步骤。这让自己就复杂的ERP系统,更为杂乱无章,十分须要一个一体化的解决方案来解决报表操做和处理的各类问题。
既然报表系统对于ERP如此重要,下面咱们来研究一下如何设计一个报表系统。如今常见的两种报表系统的设计方式以下:
(1)全配置实现方式(极少代码):用友采用的是此方式。基本实现流程是,经过已经映射好的表结构关系和字段关联,将经常使用的字段放置于页面,经过可排版的编辑器,让用户本身制做出一个报表模板,并把设置好的字段放置于模板中,最终生成用户想要的报表。但这个过程当中不是彻底没有编码的工做,有时可能须要一些SQL或逻辑判断来辅助完成。
此种方式多数只能生成一些不是特别复杂的报表,若是存在复杂的加工、分析逻辑,是很难经过配置方式简单实现的。而对于简单的报表,这种方式的实现门槛就极低了。
(2)部分代码、部分配置的实现方式:Oracle采用的是此方式。基本实现流程是,经过视图或存储过程生成报表的数据,而后用Excel画出报表的模板,并根据固定的格式填入数据,最终将视图和报表模板配置于报表系统中,从而生成用户想要的报表。这个过程当中须要用户熟悉数据库的基本操做,好比SQL、视图、存储过程等。
此种方式的优点是基本能够用比较少的代码(只涉及报表的核心逻辑)实现全部的复杂报表的需求,而难点也是用户必须具有必定的数据库经常使用功能的编写和处理能力。而即便是简单的报表也采起了相同的实现流程,因此也须要上述的技术要求。
总结一下,无论你采用哪一种方式实现报表系统,最终的目的必定是方便用户生成报表,因此必定要分析你业务系统使用的场景,以及你产品受众的关注点,去决定如何去设计报表系统。固然除了核心的流程外,必定要兼具离线处理、历史记录、批量报表、定时报表、权限管控等各类功能。
若是您对咱们正在作的开源软件感兴趣,欢迎各类形式的合做,做为贡献者或直接加入咱们!让咱们一块儿打造一套开源的企业级信息化解决方案。