为什么说中国式报表特殊.doc

上传人:b****1 文档编号:233111 上传时间:2022-10-07 格式:DOC 页数:7 大小:24.50KB
下载 相关 举报
为什么说中国式报表特殊.doc_第1页
第1页 / 共7页
为什么说中国式报表特殊.doc_第2页
第2页 / 共7页
为什么说中国式报表特殊.doc_第3页
第3页 / 共7页
为什么说中国式报表特殊.doc_第4页
第4页 / 共7页
为什么说中国式报表特殊.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

为什么说中国式报表特殊.doc

《为什么说中国式报表特殊.doc》由会员分享,可在线阅读,更多相关《为什么说中国式报表特殊.doc(7页珍藏版)》请在冰豆网上搜索。

为什么说中国式报表特殊.doc

1、国外报表

国外的很多报表工具,象水晶报表(CrystalReprot)、StyleReport、JasperReport、IRport、FastReport、QuickReport(Dephi内嵌报表控件)等等,这些产品有一个共同点:

××Report。

Report在字典里的解释大致是报告的意思。

从产品的名称看,国外的报表工具似乎更象在解决报告的问题。

国外的报表样式非常规整,没有格线,表头非常简单,没有斜线表头、没有分层分组。

一张报表提供的信息有限,如果要看所有信息,就只能几张表对照着看了。

另外,国外的报表似乎没有填的需求(也许是业务规范或者应用水平高的缘故?

)建议大家找几个报表工具提供的样例来对比看看。

基于这种报表需求,几乎所有的国外报表工具(除F1外)都采用如下方式:

(1)数学模型都是基于近三十年前的SQL/OLAP理论设计的,虽不断地有所改良,但根本处理方案并没有本质的变化。

(2)报表工具的主编辑界面呈条带状,以模拟SQL中的Select和Group运算;在行方向(横向)上的能力很强,可以添加小计、合计等各种运算。

(3)拖拽式制表,不懂业务的人做起来也非常方便。

(4)采用独立服务器,有独立的权限控制机制,无法享受应用服务器的集群等能力。

2、特点

其实一句话就能概括中国式报表的特点:

格式复杂、信息量大。

中国报表很少有不带格线的:

因为中国的表头比较乱,三五层的大格套小格很常见(还有著名的斜线),没有格线容易看走眼。

中国式报表的信息量大,各种各样的数据,明细的、汇总的,往往都集中在一张纸上。

有人说中国式报表的复杂是因为应用水平低、业务不规范造成的。

这种说法有一定道理,但不全对。

举个例子:

基金行业是新兴的行业,是最有条件借鉴国外的经验的,但是这两年报表也是越做越复杂。

银行业的信息化水平也比较高,应用也很成熟,他们的表一点也不简单。

可能报表习惯与文化有关,在受中国文化的影响的国家和地区,如日本、韩国、台湾等,他们的报表都很复杂。

看看咱们的方块字,汉字由很多不同的部分(偏旁部首)组成的,而英文单词则是26个英文字母进行简单组合。

回到正题上来:

格式复杂――意味着格式是报表工具要解决的一个问题;信息量大――意味着复杂的统计运算。

一个适合中国式报表的工具应该能够同时解决这两个问题,才能算是一个好的工具。

3、报表格式

下面是一个很常见的表-资产负债表。

资产负债表。

在手工制表的时候,我们都是拿尺子来画表格。

(也许中国式报表复杂是因为中国人先发明了尺子?

现在的报表工具提供两种画表的方式:

拖拽式和Excel式。

拖拽式的工具是拿很多小的文本框拼成一个大的矩形。

这就存在边框之间的重合、对齐问题。

如果碰上大格套小格,或者用户心血来潮要加减几个框,对齐的工作量是很大的。

而且,屏幕上看着对齐的表打印到纸上又不齐了。

因为打印机的分辨率比屏幕要高。

(想像一下用拖拽式的工具画资产负债表的情况……。

拖拽式模型其实是一个一般性的图元编辑器模型,没有体现出表格的规律性,什么都能画,可什么画起来都不大方便。

(powerpoint也能画东西,为什么没人拿它画表?

还好,我们还有Excel(这里要夸一夸微软了)。

EXCEL采用网格线把格子围出来的画法,配合以合并格和边框,好比给大家配上尺子和笔,通过单元格的合并和拆分,再复杂的表Excel也能画出来。

EXCEL的画法充分体现了表格的规律性,特别方便,连用户都会用。

(用Excel画资产负债表看看?

中国式报表采用Excel式的制表方式是非常非常合适的。

如果单纯是画表的问题,那么拖拽式和Excel式的差别无非是效率高低的问题,但是一旦跟数据挂上钩,问题就复杂得多了。

4、报表的格式与数据

报表格式只是报表工具要解决的一部分问题。

我们用报表工具的目的,是要能从数据库中读出数据,从而自动产生报表,数据才是报表要解决的核心问题,但是不能单纯地把二者分开(这也是选择报表工具时需要格外重视的)。

报表格式用Excel可以解决得很好,但是Excel没有数据汇总方案,除非编程序往格子里填数据,基本上没法从数据库中读出数据自动产生报表。

而拖拽式的格式虽然解决得一般,但数据统计能力方面要比Excel强得很多,两害相权取其轻,堆框虽费劲,慢慢堆就行了,但统计汇总不行的话那就没办法了。

所以,很多报表工具都采用拖拽式画表,再辅以大量写代码的编程(就是数据处理,后面会详细说明)。

另外,因为Excel的易用,使得用户能够自己做表,几乎所有用户的报表都有Excel文件。

用户希望能将Excel的文件读入报表工具,这样就可以省去画表的工作了;同时,生成的报表,要能导出成Excel文件。

但是因为拖拽式和EXCEL的画法完全不同,一定要生成EXCEL文件的话,大都会丧失格式,个别工具花了点功夫的可以做得很象(数巨报表导出EXCEL为了保证样式不失真,将大量的报表对象转成了合并格,某些报表对象转成图片,导出后的数据无法进行二次处理),还得再进行二次对齐、加工。

至于读入EXCEL文件,还是算了吧。

5.1多数据源

数据统计方面的问题要比报表样式的问题多得多,也严重得多,要分几个方面来研讨。

中国报表统计方面第一个重要特征是多数据源。

所谓多数据源是指同一张报表的数据会来自多个不同的数据表或视图,甚至来自多个不同的异构数据库!

1)人员信息表

正常情况下会在数据库中设计两张数据表来保存这个表格中的数据。

2)成本销售表

一般为了业务系统处理方便,购进和销出信息在数据库中也会是两个数据表,这张报表中不仅有两组来源不同的数据,而且之间还要运算(余额)。

带七、八个数据源,关联n张表的中国式报表非常多。

对于第一张表,上下部分格式完全不同,如果用拖拽式工具,只能采用子报表的方法,也就是把下半部分造成一个子表贴进去,这就使得原本就极难对齐的格线变得更难对齐,如果再增加三五个子表,考虑到每个子表都会根据数据库中数据扩展,整张报表还不知道会变成多大;其次主子表之间除了简单的参数传递外,互相之间无法沟通,想在子表中进行运算,还得重新再算。

所以,传统的子报表能不用尽量不用。

第二张表,样式不复杂,两个数据表叉乘,写个复杂点的SQL就行。

如果一个报表中有七八个、上十个数据源呢?

数据库做n张表的叉乘,有点高等数学基础的同志应该都能算出来要花的时间。

而且复杂的SQL查错、维护都很麻烦,跟写代码好像也没什么差别。

当然你可以写代码,包括写存储过程准备中间表,但是如果这么做,还要报表工具干什么?

5.2分片

中国报表的第二个重要特征是分片,与多源相关,但又不完全一样。

多源一般都会是分片的,但分片却不一定是多源的。

还是上面这两个例子(见5.1多数据源),两个报表都很明显地分成了两片,每片都有自己独立的规则,很难统一成一种规则处理。

而我们手中的报表工具,如果不考虑采用子报表的话,都要求报表有统一的规则,整个报表只有一片可以重复的区域(细节区和相邻的分组区),因为是单源的,想当然地以为只要一片重复区就够了,理论上就不可能做到分片规则了。

但中国报表中分片现象太常见了,同一批数据也可能按不同的主题统计汇总,比如人事表中并列着按民族划分再按学历划分。

事实的情况还远不止分作两片,常常是竖着五六片,横着也是五六片,整个报表乘起来就有二十五六片。

而且片与片之间又不是完全独立,横向的分片在纵向规则却又是一致的,反之也是如此。

既便想做成子表,也不大容易,每个分片的表头都要重复编排,对齐就不说了。

如果运气好,虽然分片了,但整个表的样式看起来还是一致的(比如上面的第二个表),那还可以使出最后的杀手锏——写代码!

运气不会时时都好,如果碰到那种上下(或左右)几个分片中分组层数都不一样的表,就算代码能把数给算好,可格子却拼不出那种上下不同的样子,这会儿就会特别想念EXCEL了,至少样式是可以很随意的,写代码也就可以搞定了。

具体到每个分片也不是省油的灯,不象老外弄得那么简单,一下把所有的数都列出来,或者把所有的分组一个不落一个不重的列出来,这种搞法我们叫做“完全划分”。

对应的就还有“不完全划分”,也就是分组中并不是把所有出现的情况都列出来(这种很常见),而且还可能重复列出(这个相对少见些)。

比如我们按民族划分人员时,不大可能把五十六个民族全来一遍,一般也就是列几个大的民族再加个其它。

比较典型的不完全划分现象就是固定行列,无论数据库中有多少记录多少分组,只关心这几种情况,表格永远只有这几行(列)。

老外的东西天生就是和数据库绑定的,固定行的不是搞不出来,可又要写代码或者复杂的SQL去准备数据,象著名的资产负债表,用这些报表工具去做简直就是摧残生命。

而且就算是会变的,这些工具也还有个行列不对称的问题,由于和数据库贴得太紧,大家只见过记录数会变的数据表,都没怎么见过字段数也会变的数据表,所以它们也就专心处理行方向的变化,拒绝去处理列数会变的表。

后来总算有了一些打补丁的交叉表模板,能对付用着,但总是用起来不那么得心应手,除非特别规整的交叉报表,否则这些大牌武器就又虾米了。

5.3跨行组运算

中国报表统计方面的第三个复杂点是格间运算,特别是跨行组的运算。

要统计就要有运算,所有的报表开发工具都提供了计算汇总的功能。

运算只有两种,一种是行内各列之间的运算,另一种是针对某组(或全体)所有数据进行的汇总(可能带条件),两种运算可以组合。

但是,在中国的报表中只有要时间序列的,多半就要涉及到比上期、比去年同期之类的运算,这种运算跨行甚至跨组了。

而这种能力,咱们手上这些报表开发工具就又没有了。

其原因在于:

这类工具都和数据库的概念匹配得很好,而数据库的行是没有次序的,不知道谁是谁的上一行,比上期就没法定义了,比去年同期这种跨组运算更是想不明白了。

为了解决这些问题,有些工具添加了一些引用上行或累积值的特殊函数,但跨组运算依然没法处理,只有再写代码了。

这种比较有规律的需求还不算太难办,编程序准备数据或是写个复杂点的SQL语句都能处理。

但中国表中常常还会有些独立的格子,其运算方法和谁都不相干,或是从表格中东南西北挑几个格子加减乘除一番,或者干脆又要到数据库中再做SELECT运算,与其它格子之间无规律可循。

这可不是在后台写点程序准备好数据就完了的,需要生成完表格后,再编程序计算出这些数填进去,这种搞法一般就得采用报表的脚本或者宿主开发语言来写代码了。

这三个较大的数据统计问题已经把大伙折磨得差不多吧,其它相关的还有一些次要问题,比如参数和宏的引入、交叉表的表头向右对齐问题等等,就不细说了。

5.4填报

所谓填报,顾名思义,就是填了再报。

中国人的报表不是统计汇总完了,就完了的,用户希望报表还要能填能改,改完的结果还可以再存起来(咱从小不就常常填表吗?

)。

中国人天生就认为表都是可以填的,这世上哪有不能填的表,那还叫表格吗?

老外是没想过这问题的,造出来的工具统统没有这个本事,人家觉得报表是报表,就是不可改的,填的表是另一种东西,根本不能叫报表。

EXCEL可以填,而且填着还方便得很(不得不再次佩服一下微软),按照EXCEL抄的国货统统都有填的本事。

不过,话说回来,这些工具还是有上面说的问题,没有数据模型,填完的数不知怎么写进数据库,于是常常只能放进文件中(就象EXCEL文件),需要再编程序处理。

填报功能说起来也挺复杂的:

(1)要允许表格和数据库字段的随意对应,可能整表一条记录,也可能一行一条记录,甚至可能一格一条记录(交叉表填写),这几种情况还可能是组

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1