技术开发 频道

ASP.NET下基于水晶报表编程的分组报表

  (7)接下来,我们要在报表中添加发票的具体记录项。报表中的details节正好用于显示相应于表格SalesOrderDetail中的每一条记录。从字段管理器下展开表格节点Product。把字段ProductNumber拖动到Details节中。注意,当你把一个字段添加到Details节中的时候,水晶报表自动在报表页眉处(Page Header Section)添加一个列标题字段。列标题是一个简单的文本对象,你可以编辑为一个更友好的名称。例如,我们可以把列标题更改为“产品编号”。

  (8)把Product.Name字段拖动到Details节中,把列标题更改为“产品名称”,并把此字段的宽度修改为4800。

  (9)把SalesOrderDetail.OrderQty字段拖动到Details节中,改变列标题为“订单数量”。

  (10)把SalesOrderDetail.UnitPrice字段拖动到Details节中,改变列标题为“Unit Price”。

  (11)把SalesOderDetail.UnitPriceDiscount字段拖动到Details节中,并把此字段的宽度修改为600,并且把列标题改变为“折扣”。

  (12)把SalesOrderDetail.LineTotal字段拖动到Details节中,并且把列标题改变为“行总计”。

  (13)下一步是使用一个矩形包围列标题和details节部分,为的是在报表中突出显示。右击报表并选择“Insert”—“Box”。拖动矩形框使之包围列标题和组脚注部分(Group Footer)。

图3  使用矩形框包围列标题和组脚注部分

  (14)现在预览报表,您应该看到出现了记录行数据,而且每一组数据为矩形所包围。

  最后一步是建立在组页脚节处计算总数。LineTotal域的总和应当等于为发票的分组合计数(即小计)。在表格SalesOrderHeader的记录中有一个名为subtotal的字段,但由于某些原因它并不等于明细记录的总和。为了解决这个问题,我们将创建自己的分类汇总报表。然后,我们将进一步添加运费和税这两部分数据来计算发票总额。

  (15)右键单击details节中的字段LineTotal,从弹出菜单中选择“Select”—“Insert”—“Summary…”。

  (16)要汇总的字段默认情况下应当为SalesOrderDetail.LineTotal,而且应当进行求和计算(Sum)。在汇总位置下拉列表框中选择“Group #1: SalesOrderHeader.SalesOrderNumber – A”。单击按钮“OK”退出。

图4  插入汇总字段

0
相关文章