主从报表

Top  Previous  Next

在此之前的报表都是只有一个数据Band(“第一级数据” 或 ”主数据”)来控制数据输出。如果只打印一个数据表的数据是足够的,但对于多表关联,则需要用到其他更复杂的报表形式。康虎云报表支持在一页显示六级数据。此外,还可以通过“子报表”的方式实现不限级数的报表。“子报表”将在另外章节学习。多数报表只需要一级、两级或三级数据,更多级数的报表很少。

 

现在我们开始设计一个两级数据的报表。这个报表将输出显示数据文件中两个表:“Customer”和“Orders”。第一个表是客户,第二个表是由这些客户下的订单。两表的字段如下:

 

Customer:

 

CustNo        Company

1221                Kauai Dive Shoppe

1231                Unisco

1351                Sight Diver

….

 

Orders:

 

OrderNo        CustNo        SaleDate

1003                1351                12.04.1988

1023                1221                01.07.1988

1052                1351                06.01.1989

1055                1351                04.02.1989

1060                1231                28.02.1989

1123                1221                24.08.1993

….

 

“Customer”表和“Orders”通过字段“CustNo”关联,这个字段在两个表中都有。我们设计的报表将输出如下结果:

 

1221                Kauai Dive Shoppe

1023                01.07.1988

1123                24.08.1993

 

1231                Unisco

1060                28.02.1989

 

1351                Sight Diver

1003                12.04.1988

1052                06.01.1989

1055                04.02.1989

 

现在开始设计,在模板(报表)设计器中,插入一个“主数据”Band和一个“明细数据”Band,然后进行适当美化:

 

clip0168

 

注意“主数据”Band必须放在“明细数据”Band上面。如果顺序不对,就拖动调整一下。如果“主数据”Band在“明细数据”Band下方,则会报错。

 

如果现在预览报表,你会看到对于每一个客户都会列出所有订单记录。

 

clip0168_1

 

这是因为主从表这间没有建立正确的关联关系。我们通过下面的步骤建立主从表之间的关联:

1、在“明细数据Band上”双击,弹出“选取数据库”对话框,“Dataset”里选择“orders”(原来已选,不需要改动),然后在“Filter”下面并点击右边按钮:

 

_img119_1

 

2、在弹出的“运算式编辑器”对话框下部的“运算式”中,输入:<orders."CustNo">=<customer."CustNo">,表示orders表中“CustNo”与customer表中“CustNo”两个字段进行关联:

_img119

 

现在,我们对主从表建立了关联关系,预览效果如下:

 

_img119_2

 

同样的,对于更多级关联的报表也这样处理。