2

我正在构建一个需要按组显示摘要的报告。该报告按餐厅按产品显示数据。它还需要按地区按产品显示数据(一个地区所有餐厅的总数):

Restaurant 1
  Pepperoni Pizzas: 10
  Cheese Pizzas: 12
  Ham Pizzas: 15

Restaurant 2
  Pepperoni Pizzas: 5
  Cheese Pizzas: 12
  Ham Pizzas: 20

District Totals
  Pepperoni Pizzas: 15
  Cheese Pizzas: 24
  Ham Pizzas: 25

我采用的方法是构建一个子报告,该报告将根据主报告传递的参数显示商店、地区等的数据。从设计的角度来看,这很麻烦,并且在运行时很慢。有没有办法在不使用子报表的情况下创建地区总数?

4

3 回答 3

3

这可以通过一个数据集/报告和所需的多种不同食物类型来完成。我创建了一些基本数据:

create table Pizza
(
  district varchar(100)
  , restaurant varchar(100)
  , foodItem varchar(100)
  , quantitySold int
)

insert into Pizza
select 'District 1', 'Restaurant 1', 'Pepperoni Pizzas', 10
union all
select 'District 1', 'Restaurant 1', 'Cheese Pizzas', 12
union all
select 'District 1', 'Restaurant 1', 'Ham Pizzas', 15
union all
select 'District 1', 'Restaurant 2', 'Pepperoni Pizzas', 5
union all
select 'District 1', 'Restaurant 2', 'Cheese Pizzas', 12
union all
select 'District 1', 'Restaurant 2', 'Ham Pizzas', 20

为报告创建一个带有District组(如果需要)和Restaurant组的基本Tablix

在此处输入图像描述

这里的技巧是我合并了最后一行中的所有单元格,并在单元格中插入了另一个表格,这次是基于食物组:

在此处输入图像描述

因为这是在地区范围内,所以它的基础数据将基于特定地区的所有行。最终结果:

在此处输入图像描述

这将在多个地区重复。根据需要调整外观!

于 2013-01-22T14:22:49.280 回答
1

正如我在评论中所说,您正在寻找一个具有静态内容的简单组或组内组。

为避免使用子报表,您只需在前两个示例中按餐厅分组,我认为您已经在这样做了。

如果您District Totals是静态内容,只需添加行并在数据单元格上为您的所有比萨饼添加一个简单的总和,例如:[Sum(PepperoniPizzas)]

如果它被分组,你应该做同样的事情,但在你的分组数据中。从您的问题来看,这是您可能的意思的第二种情况,即您的整个数据按地区分组,然后按餐馆分组,如果是这样,您就是这样做的:

有一个按餐厅的内部组和一个按地区的带页脚的外部组。在此页脚中,您应该执行与上述相同的操作。它看起来像这样:

|--Group by District
|----Group by Restaurant
|------Details or another group
|----End of group by restaurant
|----
|----District Totals
|----Pepperoni Pizzas - [Sum(PepperoniPizzas)]
|----Cheese Pizzas - [Sum(CheesePizzas)]
|----Ham Pizzas - [Sum(HamPizzas)]
|--End of district group

我现在在家,所以我不能给你看报告,但我想上面的例子很好理解。让我知道这是否是您需要的,如果不是详细说明的话。当我明天上班时,我会用报告的样子更新这个答案。

更新

正如我所说,您的报告应如下所示:

  • 团体

在此处输入图像描述

在此处输入图像描述

  • 报告本身

在此处输入图像描述

于 2013-01-21T21:22:59.090 回答
0

如果您希望单独包含数据,我只会添加第二个数据集。

但是,如果您希望报告中的代码在“分组”上显示“总计”,我会添加一个分组列“总计”

EG:我有一个类似于你的小数据集:

declare @Pizza table ( restaurantid int identity, pizzas int)

insert into @Pizza values (10),(15),(5);

select * from @Pizza

我创建了一个表,其中唯一的值是:restaurantid、“详细信息”行中的比萨饼,它们在标题中生成相似的名称。

如果您希望总计,您需要在左下角的“设计”视图中查看“行组”。单击向下箭头>添加总计>之后。您现在添加了另一行,它将汇总到目前为止表中的所有内容。您可以删除餐厅 ID 的单元格值,因为它们无关紧要,而是放入有用的内容,例如“总计”。

于 2013-01-21T18:17:20.483 回答