Reporting services 我试图对基于SSRS中某些表达式的列求和

Reporting services 我试图对基于SSRS中某些表达式的列求和,reporting-services,expression,invoice,Reporting Services,Expression,Invoice,我创建了一个报告(针对销售订单和采购订单),其中包含来自许多不同表的许多字段。每个字段都有一个表达式,以便在销售/采购订单前获得正确的值,例如: iif(isNothing(Fields!VendorInvoiceAmount.Value),Fields!CustomerInvoiceAmount.Value,Fields!VendorInvoiceAmount.Value) 问题在于,如果一个供应商/客户有两张不同的发票,并且对其征收不同类型的税 我有下表(只有3-4个字段让您理解) Sour

我创建了一个报告(针对销售订单和采购订单),其中包含来自许多不同表的许多字段。每个字段都有一个表达式,以便在销售/采购订单前获得正确的值,例如:

iif(isNothing(Fields!VendorInvoiceAmount.Value),Fields!CustomerInvoiceAmount.Value,Fields!VendorInvoiceAmount.Value)

问题在于,如果一个供应商/客户有两张不同的发票,并且对其征收不同类型的税

我有下表(只有3-4个字段让您理解)

SourceInvoiceNo-InvoiceAmount-SalesTaxAmount-总计

INV-000001------1000------200------1200

INV-000002------2000------100------2300

INV-000002------2000------200------2300

AP-0001-------3000-------100-------3100

总计-------------------------------------8600

与INV-000002一样,对同一发票金额征收2种不同类型的税费。 总数应为2000+100+200=2300。但在这里,总计造成了问题。 我试图解决这个问题,但把这个表达式放在了一起

Iif(Fields!SourceInvoiceNo.value=Previous(Fields!SourceInvoiceNo.value),0,Iif(isNothing(Fields!VendorInvoiceAmount.value),(Fields!CustomerInvoiceAmount.value+Fields!SourceRegulateAmount),(Fields!VendorInvoiceAmount.value+Fields!SourceRegulateAmount))

注:来源调节金额为销售税金额。 这给出了以下输出(我想要的),但总计仍然是一样的

SourceInvoiceNo-InvoiceAmount-SalesTaxAmount-总计

INV-000001------1000------200------1200

INV-000002------2000------100------2300

INV-000002----------2000----------200----------0

AP-0001-------3000-------100-------3100

总计-------------------------------------8600

总数应该是6600。 总的来说,我有这个表达式


iif(isNothing(Fields!VendorInvoiceAmount.Value),(Fields!CustomerInvoiceAmount.Value+Fields!SourceRegulateAmount),(Fields!VendorInvoiceAmount.Value+Fields!SourceRegulateAmount)

能否将发票级别分组的行号添加到数据集中?然后,在totals表达式中,当行号=1时,只计算发票金额+税款,否则只计算税款。非常感谢=),但我已经通过除以发票金额(不含税)解决了这个问题根据申请的税款数量,并在每个税款前的“总计”中显示。使用此方法后,当我找到总计时,它总是正确的。