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

web报表开发技术专题一:序号问题近期因为专注于用 c 实现 web 报表 积累了一些经验和心得 也写过一篇介绍文章 也有网友提出没有说清楚 现觉得想用单篇文章来说明 web 报表开发难免会大而空 落不到实处 因而便想到每篇文章只关注 web 报表开发中一方面 由多篇文章而形成一个 web 报表开发的系列文章 这些 web 报表开发的系列文章无先后次序 主从之分 每篇文章只是以一种视角来看待 web 报表开发而已 大家可以只选自己感兴趣的部分来看 这样也

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

 

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

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

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

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

                row() 返回当前行号

                col() 返回当前列号

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

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225053.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:14
下一篇 2026年3月17日 上午10:14


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号