Matrix 文本框实际上是一样的;只需将First更改为Last: =Code.SumLookup( LookupSet( Last(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString , Fields!dt.Value.ToString & Fields!grp.Value.ToString , Fields!val.Value , "DataSet1" ) )
获得差异 最后,要获得这些表达式的差异,只需在差异文本框中从另一个表达式中减去一个表达式,或者甚至引用Matrix 文本框实际上是一样的;只需将First更改为Last: =Code.SumLookup( LookupSet( Last(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString , Fields!dt.Value.ToString & Fields!grp.Value.ToString , Fields!val.Value , "DataSet1" ) ),matrix,reporting-services,ssrs-2012,Matrix,Reporting Services,Ssrs 2012,获得差异 最后,要获得这些表达式的差异,只需在差异文本框中从另一个表达式中减去一个表达式,或者甚至引用报告项值: =ReportItems!Last.Value - ReportItems!First.Value 其中,Last和First是文本框的名称 结论 显然,您需要针对具体情况进行更新,但您可以看到这是可以做到的 在你的报告中这样做值得吗?您可以看到,其中涉及许多步骤,通常在生成数据集时更容易处理这些步骤。但是,如果这不是一个选项,希望这种LookupSet方法是有用的。您是否尝试过先
报告项
值:
=ReportItems!Last.Value - ReportItems!First.Value
其中,Last
和First
是文本框的名称
结论
显然,您需要针对具体情况进行更新,但您可以看到这是可以做到的
在你的报告中这样做值得吗?您可以看到,其中涉及许多步骤,通常在生成数据集时更容易处理这些步骤。但是,如果这不是一个选项,希望这种
LookupSet
方法是有用的。您是否尝试过先使用(Fields!yourfield.value,“yourgroup”)
和最后使用(Fields!yourfield.value,“yourgroup”)
@CoderofCode确实尝试过!但是如何使用多个组呢?因为真正重要的是拥有所有3组!dcs1/dcs2/test1。报告项目!在这种情况下不起作用cause@CoderofCode在本例中,您得到了一个作用域参数,该参数对于agrgate函数无效。如果您能帮助我们重现您的场景,那就太好了。添加一些基本的DDL和DML来设置包含问题案例的示例表。此外,一些关于你的小报的数据集和分组的信息也会有所帮助。迈克-我希望它可以通过SSRS处理。只有两列是不相关的,因为您总是关注第一列和最后一列。我希望某种漂亮的内窥镜功能能起作用。正如您所指出的,数据集过于简单。我通常把每件事都尽量简单化,然后扩展。我确信有一种特定的方法可以通过sql来处理它,但是真实的数据集和环境要复杂得多。我还记得2005年将聚合/作用域类型函数添加到SSRS时的那种希望。从那时起,我多次试图扩大他们的能力范围——不幸的是,他们的能力非常有限。
=Code.SumLookup(
LookupSet(
First(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString
, Fields!dt.Value.ToString & Fields!grp.Value.ToString
, Fields!val.Value
, "DataSet1"
)
)
Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
suma = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
Next
Return suma
End Function
LookupSet(
First(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString
, Fields!dt.Value.ToString & Fields!grp.Value.ToString
, Fields!val.Value
, "DataSet1"
)
LookupSet(source_expression, destination_expression, result_expression, dataset)
First(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString
Fields!dt.Value.ToString & Fields!grp.Value.ToString
=Code.SumLookup(
LookupSet(
Last(Fields!dt.Value, "grp").ToString & Fields!grp.Value.ToString
, Fields!dt.Value.ToString & Fields!grp.Value.ToString
, Fields!val.Value
, "DataSet1"
)
)
=ReportItems!Last.Value - ReportItems!First.Value