浅析Excel服务器之报表功能

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

浅析Excel服务器之报表功能报表是指定数据以指定运算方法得出结果后,以指定样式在指定纸张上的特殊表现形式。作为一种经归纳、整理和统计的内容信息,报表系统一直都是企业和事业单位财务、人力资源管理、销售管理、技术指标管理以及内部控制的重要工具。报表对于企业的重要性是不言而喻的,会计报表是会计核算的最终成果,是对公司经营过程中所发生的各项经济业务的总结性文案,是企业经营者了解经营情况、实施经营管理和进行经营决策必不可少的经济信息之一;销售报表是公司了解销售状况,制定区域政策、绩效等等的依据;生产报表是公司了解生产进度和确认计划执行程度的凭证。利用报表系统完成大量的数据处理是我国政府机关、企事业单位必须面对的一项基本工作,从这个意义上说,报表系统可以说是企业的重要事务之一。由于报表对于企事业单位的重要意义,市场需求自然是很大的,所以在信息化的初期就有了报表工具,特别是C/S应用方式逐渐成熟后,出现了大量的报表工具。早期报表工具软件的基本特征是单数据源、条带式分组统计模型,通过控件拖拽方式绘制报表,在不编码的情况下能完成简单的行式报表和单片交叉报表,数据集中在数据库中,可以共享。这类报表工具以SQL/OLAP为理论基础,也简称为SQL型报表,可以基于数据库自动化制作报表。上面讲过此类报表工具有个基本的特征,就是主编辑界面呈条状,一般依次分成几个条状的区域:标题区、细节区、统计区,如果有分组,还会为每级分组增加分组标题和分组统计两个区,总之,整个编辑界面是一个个横条区域构成。所以说用这些报表工具来制表的时候,格线其实是十几个甚至几十个小框框拼出来了,这种机械劳动很费事,特别中国的报表习惯是格线很多,因为内容很多,不用格线很容易乱。用这些传统的报表所碰到的第一个问题就是没办法解决报表的表样问题,所做出来的报表展现能力比较弱,模样满足不了用户的需求。这类报表工具在绘制方面来说其实是一个一般性的图元编辑器模型,半点也没有体现出表格的规律性,什么都能画,可什么画起来都不怎么方便。如果只是表样的问题,多少还是可以用的,但是这类工具在遇见多源分片的问题时就又不行了,这些工具一般是单源的,如果数据源过多,效率上就要打不少的折扣了,特别是碰见异构数据库或是什么别的文件系统一起做数据源的时候,基本上这些工具就不灵光了。多源是一方面,另外一方面是分片,因为是按照单源的思想设计的,也就没考虑分片了,但是中国的报表不仅多源的时候会分片,即使是一张表也有可能分片,比如人事表中并列着按民族划分再按学历划分。事实的情况还远不止分作两片,常常是竖着五六片,横着也是五六片,整个报表乘起来就有二十五六片。而且片与片之间又不是完全独立,横向的分片在纵向规则上又是一致的,而这些报表工具往往又要求有统一的数据处理规则,这个时候程序员往往就是要不自己编程序弄,要不用子报表的形式,如果用子报表,那表样就更加不能保证了,而且更麻烦的是分好了的片也不是那么让人省心的,国外的报表在处理分组的时候是把所有的数都列出来,或者把所有的分组一个不落一个不重的列出来,这种叫做完全划分,对应的就是不完全划分,也就是分组中并不是把所有出现的情况都列出来或者重复列出。比如我们按民族划分人员时,不大可能把五十六个民族全来一遍,一般也就是列几个大的民族再加个其它。比较典型的不完全划分现象就是固定行列,无论数据库中有多少记录多少分组,咱就只关心这几种情况,表格永远只有这几行和几列。会变多的行列得能做出来,固定就不一定能做出来,国外的这些东西天生就是和数据库绑定的,固定行列的用SQL准备数据相当复杂。而且就算是会变动的,这些工具也还有个行列不对称的问题,由于和数据库贴得太紧,大家只见过记录数会变的数据表,也就是行增加,但应该没怎么见过字段数经常会变的数据表,也就是数据表的列会经常性的增加或者减少,于是这些报表工具也就专心处理行方面的变化了,基本上不怎么考虑处理列数会变的表,后来总算有了一些打补丁的交叉表模板,能对付点事了,但总是用起来不那么得心应手。但是中国的报表修改是很正常的,不管是行还是列,用户并没觉得行和列有那么大的差别,所以只要碰到变列的交叉表,除非特别规整的,否则都是非常麻烦的。另外就是跨行组运算了,早期的这些报表一般处理的都是同行同组的数据汇总计算,但中国报表中经常会遇见与上月同期比等等之类的跨行组运算,基本上这些早期的报表工具也是处理的非常艰难,遇到这种规则性的难题还是可以用比较规范的程序来解决的,但是有时报表中会突然要求一个格子中的数据来自乱七八糟的几个格子,一般称为动态的格间运算,这给程序员的编码和后来的维护造成了很多麻烦。早期的很多报表工具都是给程序员用的,然后集成到给用户开发的应用程序中,但是程序员用的都这么费事,可想而知应用系统中的集成报表用户用的怎么样了,那还不是怨声载道!后来,因为人们日常的工作中大量的使用电子表格软件,同时由于很多的报表工具用的非常不顺手,大量的企业用户干脆就用Excel来处理日常的报表业务,而且用的越来越广泛,越来越深入,以至于后来很多企业开发应用系统的时候,直接交给软件工程师一批Excel文件,要求报表就做成这样,甚至要直接读进去,传统的拖拽式的报表工具根本就办不到。所以到后来就出现了所谓的CELL型报表,就是类似于Excel的报表,这类报表主要是解决报表的格式和展现问题。这类报表工具刚开始也是给程序员用的,因为是模仿Excel,没有真正意义的数据统计模型,与数据库的数据接口基本上没有或非常简单,报表中的统计数据都需要由程序代码计算后填入表格中,基本上不编程序就无法自动化地根据数据库中的数据产生动态报表。虽然如此,但由于中国报表的样式过于复杂,采用SQL型报表常常无法完成,这类CELL型报表产品在国内用的倒是比较广泛,但是电子表格的非格式数据和数据库的弱关联性使这种类型的报表工具也受到了很大的限制。再到后来,最终用户总会要求把报表导出到Excel,不仅仅数据要导出,格式也要导出,所有的报表都希望和Excel平滑导入导出!所以后来的报表工具都在格式上向Excel靠拢,技术上也都在发展,并且现在的报表工具也开始直接面对最终用户,但是对于这种类Excel型的报表工具,能够通过数据模型解决掉电子表格和数据库之间弱关联的很少。由于报表工具的不甚好用,现在的企业人员其实很多都是用Excel来处理这些报表业务的,如果是从单个的Excel文件中统计汇总,那比较简单,用Excel的函数和统计计算功能就基本可以搞定行列组的简单运算,如果是多张Excel表或是多个Excel文件,就比较麻烦,有的用VBA编程提取数据,但是一旦文件格式变了,所编写的VBA程序也得变,另外就是弄一个Excel模板,然后把一些基础表里的数据再手工录入到Excel模板里统计,这样操作手工的劳动量比较大,不过成本低,操作相对简单,什么样的格式都能弄出来,所以用的比较普遍。很多有众多分公司的企业一般由总部制定好Excel表格的格式,通过网络发送到各个分公司,然后分公司把基础Excel数据表传到总部,总部再根据自己制作的Excel表单手工录入各个分公司上传的基础表中的数据,任务比较繁杂单调,对于流程也没有做到足够的规范,人为的因素比较大。谈完了报表工具的发展,现在谈谈在Excel中怎么搞定所有的报表,怎么用Excel服务器的报表功能来处理一些很常见的问题。先说说Excel服务器,这款软件并不是一个单纯做报表的软件,但是其报表功能相当的好用,Excel服务器是一个功能性的软件,是一个平台软件,最终用户能用它构建信息管理系统,包括ERP、CRM等等,这里不谈这个,就谈他的报表功能。企业人员都希望报表要做成Excel格式,所以出现了类Excel界面的报表工具,如其这样还不如直接用Excel作为报表系统的前端了,这样来做,因为用户很熟悉Excel的界面,本来就想做成这样的,现在完全就是,当然是没有问题了。但是上面也提了,Excel和类Excel的报表工具和数据库的关联很弱或是基本没有,那统计就麻烦了,无法从数据库中提数,怎么统计啊,这就是Excel服务器比较独特的地方,它通过独特的数据模型开发了用关系型数据库存储电子表格单元格内容的方法,至于具体怎么弄的,不得而知,那是人家的知识产权专利,既然Excel的内容能够存到数据库里,那就所有问题都解决了,理论上解决了在Excel里面完成所有报表的设想,下面就具体看看怎么弄的。先说一下Excel服务器的操作界面,其实上面已经说了,就是Excel,你平时怎么用Excel现在就怎么用Excel服务器,简单的很,基本上不会有什么问题的,菜鸟也能很快的上手。具体说它的功能之前先做一些简单的介绍,Excel服务器分为服务器端和客户端,很显然这款软件要么在局域网上用要么在互联网上用,网络上有一台服务器安装此软件的服务器端,网络上的其他机器也就是客户端,装上此软件的客户端,在使用的时候,企业员工只要在自己装有软件客户端的机器上打开软件,通过网络登录到软件服务器端就可以用了,界面就是Excel,Excel里的所有操作都没有变化,只是多了Excel服务器的一些功能。那这个服务器端到底是干什么事情的?其实这就是关键之所在了,软件客户端所填入的数据通过独特的数据模型放在了服务器的数据库里,至于怎么弄进去的就不清楚了,反正就是你的Excel表被存进了数据库,这样一来,Excel表的数据就到了数据库里,统计的基础也就有了。当然了,如果只是把Excel表的数据放进数据库里那肯定没有用,现在Excel服务器能够让你的每一张表能够引用别人填入保存到服务器上的Excel表单数据,现在应该明白了吧!就等于说你做了一个Excel报表单,以前你要手工录入一些基础Excel表里的数据才能弄出报表,你现在可以直接在数据库里引用别人的数据了,操作自动化了,Excel网络化了,Excel数据可以共享了,不单是文件共享了。Excel服务器里面有一个叫做模板的东西,其实就是用Excel做出来的表单,相信都不会陌生吧,就是一些业务表,Excel表单的数据就是通过这个东西弄进数据库里的,设计人员设计好模板后,你只要在客户端打开这个模板,就和在Excel里打开文件差不多了,然后往模板里填入数据就行了,在用户看来就是往Excel里面填数据,和操作Excel没什么区别,这个模板是有一定的填写规范的,这里不多说了,填好保存后,数据就到数据库里去了,记住这个模板的制做是有点讲究的,要根据自己的业务做,要不然会为以后的操作带来麻烦,模板建多少个也是看你的业务需要的。只要是在这个系统里填报的数据就都到了服务器上的数据库里,就等于把所有相关的Excel表单按照某种形式存到了数据库里。然后就像上面说的,每一个Excel表单可以引用其它任意的Excel表单里的数据,这是通过Excel服务器的表间公式来实现的,具体的后台技术手段不太清楚,反正我们用户是不用考虑的,用这样的方式,统计报表自然不是问题了。不论是几张表,还是异构数据库,多源问题都可以解决,而且也可以任意分片,你制表单做模板的时候,怎么画基本上都没什么问题,要增加行列斜线都可以,支持随时修改。现在举个具体的例子,某电力公司用Excel服务器来构建自己的报表系统,公司在互联网上应用此系统,布置一台服务器,各分厂装上软件客户端,到月末各分厂在系统中填报月度数据,通过系统将数据存储到服务器上,统计报表时只要在数据库中提取相应的数据就行了,只要设定好Excel服务器的表间公式功能,就能够在其它的Excel表格中提取数据进行汇总,比如在‘火电月度报表’模板中,各分厂只要填入‘本月累计发电量’,总部的设计者只要通过表间公式就能够将各分厂的这一数据提取出来进行汇总,就无需再重新录入基础Excel表单中的数据,而且一旦格式要求改变,只需要更改一下模板就可以了。各种复杂样式的报表在这一系统中都可以实现。此软件的其它功能笔者不甚熟悉,不过凭此一项,跑马圈地已是不在话下了。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功