我有一个查询,返回销售代表编号,类别,销售。
结果是这样的:
有4个类别,称为G1,G2,G3,G4
。
如您所见,销售代表11
每个类别售出10个(黄色行)。但是代表12
仅按类别G3
和价格出售G4
。
想法是在报告中显示所有类别,并用0填充所有未出售该特定类别的商品。
它必须按销售代表进行分组,因此,如果按销售代表对Tablix进行分组,则将具有以下内容:
但是您想要这样的事情:
我可以使用任何表达式添加这些表达式吗?
到目前为止,我要做的是创建一个组,该组当然是我的销售代表,并组合该列的单元格并为每个类别创建一个行组,如下所示:
但是,如果执行该报告,它将重复所有类别G1,G2 ...对于该特定销售代表而言,每次存在该类别。
另一个问题是,如果不与或Iif("G1" = Fields!Category.Value,Fields!Sales.Value,"0")
进行比较G1
,则无法比较报表中的硬编码类别(如果无法在您的数据源中找到它),则如何评估该硬编码类别。Null
IsNothing
我认为您可以在查询级别使用T-SQL顺利实现这一目标。我不知道您为什么不使用最简单的方法来应用这种逻辑,因为在T-SQL中您几乎可以使用每种逻辑。
但是,我喜欢这种挑战,因此我提出了这种可能的解决方案。
这是我的样本数据集:
在SSRS数据集中(不是在T-SQL中),我添加了一个称为 Another
另一个字段设置为以下表达式:
=Fields!SalesRep.Value & "-" & Fields!Category.Value
我添加了带有以下数据排列的tablix
如前所述,类别字段是硬编码的,右边的列Sales
设置为此表达式:
=iif(IsNothing(lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7")),0,
lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7"))
注意:
ReportItems!Textbox62.Value
对应于G1
已硬编码的文本框。您必须为每个类别的tablix替换相应的文本框引用。
它将预览以下Tablix。
让我知道这是否有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句