Sql SSRS-重复项上的抑制和列总数
我有一份报告,其中我需要在重复(完成)时抑制文本列,但也需要总计两列数字(借方和贷方净额),保留其他两列(ccy和ccy金额)按原样逐项列出 在处理以下数据时:Sql SSRS-重复项上的抑制和列总数,sql,reporting-services,Sql,Reporting Services,我有一份报告,其中我需要在重复(完成)时抑制文本列,但也需要总计两列数字(借方和贷方净额),保留其他两列(ccy和ccy金额)按原样逐项列出 在处理以下数据时: DESCRIPTION DEBIT CREDIT CCY CCY AMOUNT 332300 Creditors 0.00 0.50 EUR -0.50 339003 Sundry Creditors
DESCRIPTION DEBIT CREDIT CCY CCY AMOUNT
332300 Creditors 0.00 0.50 EUR -0.50
339003 Sundry Creditors 0.00 4,423.39 EUR -4,423.39
339003 Sundry Creditors 4,241.50 0.00 GBP 3,587.50
340101 Ordinary Shares 0.00 1.41 GBP -1.00
395000 Revenue Reserves 0.00 196,850.46 EUR -196,850.46
395000 Revenue Reserves 0.00 967,816.68 GBP -797,995.90
复制时,我设法超出了描述,但只想显示适当的借方或贷方净额,只留下ccy和金额分项,如下所示:
DESCRIPTION DEBIT CREDIT CCY CCY AMOUNT
332300 Creditors 0.50 EUR -0.50
339003 Sundry Creditors 181.89 EUR -4,423.39
GBP 3,587.50
340101 Ordinary Shares 1.41 GBP -1.00
395000 Revenue Reserves 1,164,667.14 EUR - 196,850.46
GBP -797,995.90
如果您能帮助解决或协助解决此问题,我们将不胜感激。根据
说明
字段(组无标题行)设置一个包含组的表格:
由于您使用的是SSRS 2008R2,因此在创建组时,默认情况下将创建最左边的列,因此无需额外操作
我们为每一行显示CCY
和CCYAMOUNT
,因此它们只是作为普通字段添加
借方
和贷方
的表达式要复杂一些
信用证
:
=IIf(RowNumber("DESCRIPTION") = 1
and Sum(Fields!DEBIT.Value, "DESCRIPTION") - Sum(Fields!CREDIT.Value, "DESCRIPTION") > 0
, Sum(Fields!DEBIT.Value, "DESCRIPTION") - Sum(Fields!CREDIT.Value, "DESCRIPTION")
, Nothing)
=IIf(RowNumber("DESCRIPTION") = 1
and Sum(Fields!CREDIT.Value, "DESCRIPTION") - Sum(Fields!DEBIT.Value, "DESCRIPTION") > 0
, Sum(Fields!CREDIT.Value, "DESCRIPTION") - Sum(Fields!DEBIT.Value, "DESCRIPTION")
, Nothing)
基本上只需切换借方的列逻辑即可:
=IIf(RowNumber("DESCRIPTION") = 1
and Sum(Fields!DEBIT.Value, "DESCRIPTION") - Sum(Fields!CREDIT.Value, "DESCRIPTION") > 0
, Sum(Fields!DEBIT.Value, "DESCRIPTION") - Sum(Fields!CREDIT.Value, "DESCRIPTION")
, Nothing)
=IIf(RowNumber("DESCRIPTION") = 1
and Sum(Fields!CREDIT.Value, "DESCRIPTION") - Sum(Fields!DEBIT.Value, "DESCRIPTION") > 0
, Sum(Fields!CREDIT.Value, "DESCRIPTION") - Sum(Fields!DEBIT.Value, "DESCRIPTION")
, Nothing)
最终结果看起来像您的需求:
在上面的表达式中有两件事需要注意-我们仅当结果是组范围中的第一行(RowNumber(“DESCRIPTION”)=1
)时显示结果,并且仅当特定列,即借方
或贷方
大于同一集团范围内的对应方。您可以尝试以下解决方案。
在dataset查询中添加一个派生列,如下所示。我假设您的数据集是根据帐户描述排序的,如果不需要排序的话
总额(贷方+借方)超过(按账户描述划分)净额
在SSRS tablix中,借方列使用以下表达式
=Iif(先前的(字段!AccountDescription.Value)=字段!AccountDescription.Value,”,Iif(字段!净值>0,Abs(字段!净值),“”)
在SSRS tablix中,对信用栏使用以下表达式
=Iif(上一个(字段!AccountDescription.Value)=字段!AccountDescription.Value“”,Iif(Fields!Net.Values在您的示例中,杂项债权人在最终输出中是否正确?是否也应该有一些GBP组件?此外,这是什么版本的SSRS?是的,杂项债权人是正确的,在图1中,欧元价值为4423.39 CR,英镑等值欧元为4241.50 DR,使用SQL Server 2008时,欧元净值为181.89 CRI'm伊恩,我在另一个论坛上也收到了以下内容,效果不错,但感谢你的帮助……这也会按照我的要求起作用。