webreport

博客园 首页 新随笔 联系 订阅 管理
  38 Posts :: 0 Stories :: 237 Comments :: 37 Trackbacks
       近期因为专注于用c# 实现web报表,积累了一些经验和心得,也写过一篇介绍文章,也有网友提出没有说清楚。现觉得想用单篇文章来说明web报表开发难免会大而空,落不到实处。因而便想到每篇文章只关注web报表开发中一方面,由多篇文章而形成一个web报表开发的系列文章,这些web报表开发的系列文章无先后次序,主从之分。每篇文章只是以一种视角来看待web报表开发而已。大家可以只选自己感兴趣的部分来看,这样也能节约大家的时间。这便是web报表开发技术专题的由来。废话少说,今天便从小小的序号说起吧!

   web报表开发技术专题一:序号问题

      在中国式报表中,常常会见到单元格中有
1,2,3,4 ….成一行或一列排列。这便是序号。显然这些序号值在数据源中是不存在的,需要web报表开发工具根据一定的规则运算出来。报表中的序号问题常常被一些通用的web报表开发工具所忽略,有时常常会因为一个序号无法生成而被迫要写代码,使web报表开发的效率受到大大的限制。

      凡是总须研究,才会明白。下面就来看看中国式报表中的序号大体有哪些样式?

      * 固定序号:即在表格中固定好的序号值,不会随数据内容的多少而变化。这种最简单了,直接在表格上输入序号值就可以了。

      * 动态序号:即序号值是不固定的,是根据数据源中的数据而定的。比如:记录数为8条,则序号为从1 8

      * 汉字序号:因为我们是中国人,序号常常用一,二,三,四等等来表示,这就需要必须能将数字序号转换成汉字序号。有时还会在序号的基础上加上括号(如:(1))或顿号(如:一、)等等。

      * 序号横向排列:序号有时会纵向排列,也常常会要求能横向排列。

      * 多列序号:分组报表是最常用的报表之一,由此就有根据每个分组字段都会有一个顺序号的问题。

      * 跨行的序号:分组报表往往会在其中有小计行,而如果这些小计行中不能要序号,就要求序号要跳过这些小计行。

      * 序号的延伸---序列值:有时报表中会有甲乙丙丁等序列值,这也可以看成是序号的一种吧。

    文字未免有些空洞,下面以几张图的形式来说明一下:

 

 

       在这个报表中,共有三列序号:总序号,地区序号,产品序号,总序号是直接从1开始的序号值,地区序号是对于每个地区来说从1开始的序号值,产品序号是对于每个地区的每个产品来说是从1开始的序号值。这是一个典型的多列序号的报表。

 

 

      在这个报表中,红色字的序号是跨小计行的,即小计行中是没有序号的。这是典型的跨行的序号的报表。同时在此报表的第二行兰色字的序号是横向排列的。即有多少个地区就有多少个序号值。这是典型的动态序号和序号横向排列的报表。

 

 

    在这个报表中,有汉字序号:一,二等,也有(1)的序号形式。也有序号的嵌套及多个层次的问题。

       上述是我想到的web报表中的序号的形式,还希望大家补充。上面给出了在中国式报表中的序号的可能的形式,相当于web报表开发的序号方面的需求。下面给出在e表中是如何设计并实现这些序号需求的。

       e表中解决上述复杂的序号问题还是靠提炼这些需求,总结出需要设置的报表公式,然后由用户根据自己的需要组合这些公式来实现的。当然,这些公式并不仅仅是为了解决序号的问题而特别设置的。

       e表中解决序号中可能会用到的公式有:

                row() 返回当前行号

                col() 返回当前列号

                &B1 返回分组中的第几组,或者说返回B1单元格扩展出来的第几格。

                ds.count() 返回分组中的每组的总数,或者说返回一个扩展单元格扩展出来的单元格的个数

                tochinese() 1,2,3 …转换成 一,二,三….

                Map() 显示值对照转换表函数,用于比如将1转换成甲,将2转换成乙等等。

    至于到底如何才能利用这些函数来解决序号问题。想深入地研究的朋友可以到方成公司的网站上在线试用或下载到本地试用上述报表的示例,通过示例可直接看到运行效果以及该如何利用这些函数来得到自己想要的序号。
   相关链接:
web报表开发技术专题二:报表工具的核心---数据集的变换
web报表开发技术专题三:不规则分组和跨行组运算
web报表工具的制表效率分析 

   注:本系列文章系本人原创,首发于博客园,转载请注明出处。

posted on 2007-07-03 10:12 web报表 阅读(5268) 评论(24)  编辑 收藏 网摘

Feedback

#1楼[楼主] 2007-07-03 10:13 web报表      
自我感觉这篇文章写得不错,还是准备迎接板砖吧!呵呵
  回复  引用  查看    

#2楼 2007-07-03 10:30 HH[未注册用户]
不错,继续期待!!
  回复  引用    

#3楼 2007-07-03 10:31 haitian      
写报表的文章很有限啊,继续期待!!
  回复  引用  查看    

#4楼 2007-07-03 10:58 sunrise[未注册用户]
晕,什么文章啊
  回复  引用    

#5楼 2007-07-03 11:46 GOFI XIAO      
不错,有没有demo?
  回复  引用  查看    

#6楼 2007-07-03 11:51 Wuya      
博主列出了几种序号的样式,但是怎么样编程或者设计实现呢?
希望能够:提出问题->分析问题->解决问题,谢谢。

  回复  引用  查看    

#7楼 2007-07-03 12:03 Jeff Yang      
这个问题是需要专题研究,我也经常碰到。中国式报表问题多呀。
  回复  引用  查看    

#8楼[楼主] 2007-07-03 12:07 web报表      
@GOFI XIAO
有demo, 到: http://www.fcsoft.com.cn" target="_new">http://www.fcsoft.com.cn

  回复  引用  查看    

#9楼[楼主] 2007-07-03 12:10 web报表      
@Wuya
我也是想达到: 提出问题->分析问题->解决问题 , 所以写了需要在web报表开发工具设置哪些函数来达到. 因为整个e表的代码纵多,所以无法列出代码来说明.

  回复  引用  查看    

#10楼[楼主] 2007-07-03 12:13 web报表      
@Jeff Yang
常常听人说中国式报表复杂,但到底是如何复杂,复杂到什么样子.希望本系列文章能作一个诠释,也希望大家补充丰富.

  回复  引用  查看    

技术性的blog需要的是原理、分析和解决思路及方案。博主介绍产品对提高技术水平和交流思想是没有什么帮助的。
  回复  引用    

#12楼[楼主] 2007-07-03 13:19 web报表      
@Frank[callfrank@gmail.com]
这也是没有办法的事,正如介绍操作系统自然会提到windows一样,很难纯介绍技术,不提及任何产品.当然提及产品的目的也是为了能将每个web报表开发技术专题讲清楚,讲透彻.

  回复  引用  查看    

@web报表
其实这完全可以理解。但纵观全文,除了介绍你的产品具有什么功能外,没有任何具体的思路。或许这有产品版权方面的考量,但我觉得基本思路是可以和大家分享的。只有提出更多的问题才能得到更多的反馈或建议,相信这对你们做出更好的产品也是有很大帮助的。

  回复  引用    

#14楼 2007-07-03 14:05 ╃小〥斌╄      
确实内容太少, 看不出什么重点。
  回复  引用  查看    

#15楼 2007-07-03 16:12 OK_008      
还不错,值得一看

  回复  引用  查看    

#16楼 2008-06-17 16:18 赵俊      
LZ在报表上面的造诣很强啊!
  回复  引用  查看    

#17楼 2008-07-09 16:53 datasky      
楼主是专业研究报表的。
  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 803915




相关文章:

相关链接: