报表的实际业务中,有很多时候需要用到主从报表,例如订单和订单明细,订单是一个表中的一条记录,而订单明细是一个表中的多条记录,使用西式的报表工具通常需要设计一张主表和一张从表,这样做比较麻烦,那么,如何在皕杰报表中实现这一需求呢?我们先看一下报表完成后的效果,如下图:

 

下面我将介绍一下报表设计步骤:

 

第一步:新建一张空表 demo.brt

第二步:利用皕杰内置数据库的数据源新建数两个据集:

    ds1:SELECT DISTINCT 订单.订单ID,订单.客户ID,订单.发货日期,订单.到货日期,订单.货主名称,订单.运货商,订单.运货费,订单.货主城市 FROM 订单    where 订单ID>10388 and 订单ID<10488    

           ds2:SELECT 订单明细.产品ID,订单明细.单价,订单明细.折扣,订单明细.数量,订单明细.订单ID FROM 订单明细

           注:数据集ds1是取订单表中的数据,由于订单表的数据比较多,这里只取其中的一部分(订单ID>10388 and 订单ID<10488);数据集ds2取的是订单明

                细表中的数据。

第三步:设计报表,如下图:

 

 

 

 其中:

      单元格B2:= ds1.select(订单ID),纵向扩展,左主格A0。

      单元格B3:= todate(ds1.发货日期),显示格式“2007-8-15 ”,左主格B2。

      单元格B4:= ds1.客户ID,左主格B2。

      单元格F3:= todate(ds1.到货日期),显示格式“2007-8-15”,左主格B2。

      单元格F4:= ds1.货主名称,左主格B2。

      单元格A7:=ds2.select(产品ID,,订单ID=B2),纵向扩展,左主格B2。

      单元格C7:=ds2.单价,左主格A7。

      单元格D7:=ds2.折扣,左主格A7。

      单元格E7:=ds2.数量,左主格A7。

      单元格F7:=C7*E7,左主格A7。

      将第一行设置为“标题区”,将第二行至第六行设置为“表头区”。

      单元格A2、A3、A4、A5、A6、B5、C5、C6、D3、D4、D5、D6、E3、E4、E5、E6、F5、F6的左主格设为B2

第四步:预览报表,如下图: