c# - Crystal 报表 : How can I avoid nested subreports in this case?

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

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

问题是,我需要根据输入数据源的用户数量将主报告重复多次 - 我该如何做到这一点,以便生成一个大报告(包含主报告的多个)报告)?

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

现在,这是咬牙切齿的。我需要针对许多不同的购物行程运行此报告(这也意味着不同的购物者)。

甚至可以说这是一份“购物行程”报告,可以运行一批购物行程。

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

(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
+-----------------------------------------------

最佳答案

将主报表移至报表详细信息中(如有必要,可将其分成小节以进行格式化),并将子报表也放入详细信息中。

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

编辑

我想得越多,您可能甚至不需要子报表。如果您在主报告中将购物者表和购物行程表合并在一起,则可以将购物行程信息放入详细信息中,所有信息均按购物者 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
+-----------------------

关于c# - Crystal 报表 : How can I avoid nested subreports in this case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311102/

相关文章:

c# - 在方法中传递 Linq 实体的属性以设置和获取结果

c# - 3D 中两个矩形之间的交集

C#动态逻辑门

c# - 为什么返回 IOrderedEnumerable<T> 的 OrderBy 比 Sort 快得多?

c# - ID 的 Crystal 报表

windows - Git 管理的文件中出现外来字符

visual-studio-2008 - VS2008智能设备类库项目模板

c++ - OpenCV 中的嘈杂色调

crystal-reports - 详细级别的比率汇总字段 - Crystal Reports

c# - 当 DataSet 表 1 为空时,Crystal Report 不显示数据