Crystal Reports:在这种情况下,如何避免嵌套子报表?

时间:2010-07-22 16:29:44

标签: c# visual-studio-2008 crystal-reports reporting subreport

我有一个主报告,其中包含用户信息 - 以及包含所述用户的多个项目的子报告。

问题是,我需要主报告根据我提供给DataSource的用户数量复制多次 - 我该怎么做,这样就会产生一个大型报告(包含主要报告的倍数)报告)?

编辑:让我再问一个具体的例子(类似于我自己):假设我想要一个杂货店购物者的报告 - 所有购物者的人口统计数据都在主要但是,报告中需要有特定购物之旅的部分(或子报告),其中包含所有购买的商品。

现在,这是理发师。我需要为许多不同的购物旅行运行此报告(这也意味着不同的购物者)。

甚至可能更好地说这是一个“购物之旅”报告,可以用于一批购物之旅。

进一步发展:当我的数据如下所示时,如何让分组正常工作:

(shoppingTripId, shopperId, shopperName, shoppingDate, itemBought)
------------------------------------------------------------------
1, 1, Chris, July-24-2009, Computer
1, 1, Chris, July-25-2009, Laptop
2, 3,  John, June-14-2009, Ipod
2, 3,  John, June-14-2009, Television

如果一切顺利,报告将如下所示:

+-----------------------------------------------
| Chris                     ShoppingTripID: 1
| 123 Main Street               CustomerID: 1
| Anytown, CA 90210
+-----------------------------------------------
| Computer   $999.00
| Laptop    $1099.00
+-----------------------------------------------
+-----------------------------------------------
| John                      ShoppingTripID: 2
| 123 Main Street               CustomerID: 3
| Anytown, CA 90210
+-----------------------------------------------
| Ipod       $999.00
| Television $1099.00
+-----------------------------------------------

目前,我得到了这个:

+-----------------------------------------------
| Chris                     ShoppingTripID: 1
| 123 Main Street               CustomerID: 1
| Anytown, CA 90210
+-----------------------------------------------
| Chris                     ShoppingTripID: 1
| 123 Main Street               CustomerID: 1
| Anytown, CA 90210
+-----------------------------------------------
| John                      ShoppingTripID: 2
| 123 Main Street               CustomerID: 3
| Anytown, CA 90210
+-----------------------------------------------
| John                      ShoppingTripID: 2
| 123 Main Street               CustomerID: 3
| Anytown, CA 90210
+-----------------------------------------------
| Computer   $999.00
| Laptop    $1099.00
+-----------------------------------------------
| Computer   $999.00
| Laptop    $1099.00
+-----------------------------------------------
| Ipod       $999.00
| Television $1099.00
+-----------------------------------------------
| Ipod       $999.00
| Television $1099.00
+-----------------------------------------------

1 个答案:

答案 0 :(得分:2)

将主报告移动到报告的详细信息中(如有必要,将其分解为用于格式化的子部分),并将子报告也放入详细信息中。

这样,您将获得每个用户的主报告(以及子报告)。

修改

我想的越多,你甚至可能不需要子报告。如果您在主报告中一起加入购物者和购物旅行表,您可以将购物旅行信息放在详细信息中,所有信息都按购物者ID分组。

在群组标题中,您将放置当前在主报告中的所有内容。

从此处,您可以将报告的购物行程ID列表作为参数传递,并在记录选择公式中使用此参数。

你最终会得到这样的结果(已编辑 2010/07/25):

+-----------------------
| Report Header 
+-----------------------
| Page Header
+-----------------------
| Group Header (Grouped by **ShoppingTripID**)
|   Display your shopper information here
+-----------------------
| Details
|   Display your shopping trip information 
|   for the shopper here
+-----------------------
| Group Footer
+-----------------------
| Page Footer
+-----------------------
| Report Footer
+-----------------------