我有一个非常简单的问题,但我似乎无法解决它。
我有一份主/详细报告。它实际上是两份报告。一个用于主记录,另一个用于子报告以获取详细信息。这实际上是在Dynamics AX中(这就是为什么这个设置和我所描述的一些限制可能看起来有点奇怪)。但我遇到的问题是SSRS问题。
由于Dynamics AX内容的设置方式,我的报告基于2个表格。表1是来自table1'的选择*表2是从表2'中选择*。由于它在AX中的设置方式,没有where子句。它只是报告这些表的全部内容。
所以这是我对第一张表的设置。产品列表,然后下面的行有子报告。
第二个表格如下:
表2详细列出了具有该产品的订单。我们要做的是看看我们有多少订单,而不是库存。
表2列出了所有产品的所有数据。子报表所基于的查询是select * from table2。没有where子句(这是基于它在AX中的设置方式。我不能在where子句中进行过滤,在这种情况下)。
因此,要处理过滤,我在ProductCode上创建组,然后添加此过滤器:
到目前为止,我报告中的所有内容都能正常运行。它以我想要的方式显示所有内容。我的详细信息列出了与每种产品相关的所有订单。
现在的诀窍是我想要为该产品订购的所有案例的细节中的小计。但我所做的一切似乎都没有用。
如果我只是右键单击OrderQty
字段以获取详细信息,然后单击"添加总计",它会在每个子报告中显示所有订单中所有产品的总和。因此,例如,产品的详细信息列表可能会显示2个订单,数量为100和20,并且应显示小计120,但相反显示小计40,000,这将是所有详细信息的总和报告中的产品。并且它将在每个产品的每个细节列表中显示相同的40,000小计。
或者,如果我在组内添加一行,在CaseCount
之后添加一个Sum(),在每个单独的详细信息行之后,它会给我一个与详细行数相匹配的小计。因此,例如,我可能有产品130有2个订单,120和20.每行将有一个小计。第一个是100,第二个是20,而不是两行之后的单个小计,为120。
这似乎应该是非常简单的,但我很难过。
如果可能的话,我会要求您尝试提供一个不需要重新设计整个报告的解决方案。我们在这里度过了一段时间,这会导致一些问题。
毫无疑问,我错过了一些关键信息,所以请告诉我您可能需要了解的其他信息,以帮助我解决此问题。
更新
Chance Finley下面建议Sum(字段,组名),我试过了。它实际上是正确的,但它显示不正确。
这是Visual Studio中的样子......
更新2
如果我在组外添加总数,如下所示:
我得到以下结果:
这将我的总和放在我想要的地方,但是它计算了所有的产品。
更新3
这是另一个。这一个给出了正确的结果,但随后抛出了我不想要的其他东西。这是SSRS设计器中的设置:
以下是它的结果: 显示所有小计后,它显示第二个产品(0227),然后显示其后的所有小计的列表(除了缺少0130)。第三个显示除0130和0227之外的所有小计..依此类推......
更新4
按照CuriousKid提供的步骤,我离得更近了......
结果:
问题在于,所有产品结果都在每个产品的详细信息中显示。
答案 0 :(得分:3)
这是你需要做的。请检查您的设计中是否缺少任何配置。(我觉得您的分组配置中存在一些问题,但如果没有问题中提供的行组详细信息则无法验证)
第1步:
添加列:
第2步:
将ParentGroup添加到"(详细信息)",并按ProductCode对其进行分组。
你会得到这个:
第3步:
这将为您提供详细行详细信息行组(在本例中为Quantity)
最终答案: 使用所有" ProductCode"
使用Filtered" ProductCode"
在ProductCode组上添加过滤器:
答案 1 :(得分:0)
进入您想要小计的单元格中的表达式构建器。这将根据一个小组给你一笔款项。
Array.isArray(this.state.contacts)
如果您没有将组范围放在公式中,有时SSRS会认为您想要所有内容的小计。
修改强>
听起来您正在寻找每个订单的小计。我建议创建另一个子组" SalesOrderNumber"
<强> EDIT2:强>
如果您希望小计显示在最后一个订单之后,请转到包含小计的行的可见性/隐藏表达式,并使用沿线的内容...
=Sum(Fields!OrderQty.Value, "InsertTheNameOfYourGroup")
答案 2 :(得分:0)