SSRS总结特定群体的不同价值观

时间:2015-09-21 14:50:40

标签: reporting-services

在SSRS中,有两组和一条细节行,我试图将每组的不同值合计。

第1组= 1学校

第2组= 5名学生

详细信息= 5名学生中每人开设4门课程

字段1 =学生姓名

字段2 =以前参加课程的数量(使用数字2,4,6,8,10)

字段3 =当前时间表的课程名称(ELA,数学,科学,社会研究)

我的数据集有20行代表5名学生中的每一名,每名学生分4个班级。 在报告中,详细信息行中没有总计。 在学生组行中,当我仅提取先前学习的课程的值(而不是总和)时,它在列中正确显示为2,4,6,8,10,具体取决于学生,因为它是按表达式分组的部分。

这是我们解决问题的地方。当在先前采用的课程栏中总计第1组时,总数达到我预期值的4倍。据推测,该报告总共记录了所有20个条目,而不是按照不同的学生价值对它们进行分组。

报告显示应该看起来像学校的一行,学校下面的5个子行显示学生和以前学过的课程的数量,然后最后在每个学生下面的4个子行列出课程名称。

我知道独特的计数功能无济于事,因为需要总计不计算值。我尝试了Sum(Fields!prevCount.Value,“GroupBystudent”但是也没有用。我试过引用ReportItems!Textbox.Value,我得到一个错误,说它需要在页眉或页脚中完成。< / p>

甚至可以这样做吗?如果是的话,你能帮我解决一下表达方式吗? 非常感谢。

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,但不幸的是,它不能用表达式完成。

我用一些VB代码为我总结了独特的检查。它认为它现在适用于你。

这里是SSRS代码部分中的VB(报告属性 - >代码选项卡):

Private Checks As String

Function AddChecks(ByVal items As Object()) AS DECIMAL

Dim CheckCheck as String 
Dim Amount as Decimal

If items Is Nothing Then
Return Nothing
End If

For Each item As Object In items

    CheckCheck = Left(item, InStr(item, "|"))
    Amount = Val(Mid(item, InStr(item, "|") + 1, LEN(item)))

    If InStr(Checks, CheckCheck) = 0 THEN
        Checks = Checks & CheckCheck
        AddChecks = AddChecks + Amount 
    End If
Next

End Function

将此代码粘贴到报告代码部分。

对于你的表达,你会使用

=CODE.AddChecks(LookUpSet(1, 1, Fields!StudentName.Value & "|" & Fields!NumberOfCourses.Value, "Finance"))
相关问题