报表知识库
我要提问

报表内强制分页

在润乾报表软件中,可以同过主格的设置来做卡片式的报表。但是有时候客户希望能达到下图这种效果:

 324

                                                                           图1

这种报表看上去比较简单,但是实现的逻辑却比较复杂。

下面我们就看一下这种报表内强制分页的效果是如何实现的:

第一步:

新建一张空白报表。

第二步:

配置数据集

SELECT 雇员.雇员ID,雇员.姓氏,雇员.名字,雇员.出生日期,雇员.地址,雇员.家庭电话 FROM 雇员

浏览数据:

 334

共有11条数据。

第三步:

设计报表

 341

单元格中的内容如下:

A1:   =ds1.count(),计算出数据集的条数。

B1:   =int(A1)/5+1,跟A4结合起来用,下面再讲解。

A4: =to(1,B1),这里控制字段名换行显示。

B4:  =(A4-1)*5

D3:   =to(1,5),这里扩展出5列,显示5条记录,如图1.

D4:   =ds1.select1(雇员ID,#1==D3+B4))

D5:   =ds1.select1(姓氏,雇员ID==D3+B4)

D6:   =ds1.select1(名字,#1==D3+B4)

D7:   =D5+D6

D8:   =ds1.select1(地址,#1==D3+B4)

D9:   =ds1.select1(家庭电话,#1==D3+B4)

可能大家对A1,B1,A4当中的内容不太理解,我讲一下我的理解:

(以这张报表为例)

在A1中计算出数据集中的条数为11条,那么B1中的值为(11/5)+1,即3,那么A4中就变成了:=to(1,3),B4会根据A4来扩展,其值分别是0,5,10.

那么,为什么要在B4中写:=(A4-1)*5呢?因为要给雇员ID加上一个过滤条件,即#1==D3+B4

如果B4中的值为0,且D3扩展出来的值分别是1,2,3,4,5(D3的扩展的值是不变的),

那么在D4格中过滤出来的员工ID分别是1,2,3,4,5。

如果B4中的值为5,且D3扩展出来的值分别是1,2,3,4,5(D3的扩展的值是不变的),

那么在D4格中过滤出来的员工ID分别是6,7,8,9,10,以此类推,如下图:

 352

然后将C5,C6,C7,C8,C9的左主格都设置成B4,将A,B两列和第三行的可视属性去掉,再预览报表,如下图:

 362