|
主从报表 |
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,然后进行适当美化:
注意“主数据”Band必须放在“明细数据”Band上面。如果顺序不对,就拖动调整一下。如果“主数据”Band在“明细数据”Band下方,则会报错。
如果现在预览报表,你会看到对于每一个客户都会列出所有订单记录。
这是因为主从表这间没有建立正确的关联关系。我们通过下面的步骤建立主从表之间的关联: 1、在“明细数据Band上”双击,弹出“选取数据库”对话框,“Dataset”里选择“orders”(原来已选,不需要改动),然后在“Filter”下面并点击右边按钮:
2、在弹出的“运算式编辑器”对话框下部的“运算式”中,输入:<orders."CustNo">=<customer."CustNo">,表示orders表中“CustNo”与customer表中“CustNo”两个字段进行关联:
现在,我们对主从表建立了关联关系,预览效果如下:
同样的,对于更多级关联的报表也这样处理。
|