Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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