用另一个值替换 SSRS 中的输出

Replacing an output in SSRS with another value

我有一个包含 2 列的 table,TutorInitials 和 TargetGrade。如果用户没有评分,我们需要将其替换为给不同用户的评分。例如:

TutorInitials    TargetGrade
1                A
2                B
3       
4                C

TutorInitial 3 没有成绩,因此在显示 'TargetGrade' 时报告中出现的任何地方我们都需要用 TutorInitial 2 的 'TargetGrade' 结果替换空框('B' ), 所以显示如下:

TutorInitials    TargetGrade
1                A
2                B
3                B
4                C

抱歉,如果我解释得不是很好,我是 SSRS 的新手。

我试过使用 IIF 和 WHERE 表达式,但无法正常工作。

谢谢 罗布

编辑:发生的事情是我们在一所学校的科目中途更换了老师。新教师需要从前任教师那里获得学生的目标成绩。因此,而不是仅仅从上面的单元格中获取成绩,它需要来自特定的导师(科目第一老师),所以我可能需要用 1,2 或 4 的成绩替换成绩。

您可以使用内置的 SSRS Previous 功能。如果您的数据按照您需要的方式排序,这将起作用。

=Previous(Fields!TargetGrade.Value)

但是,导师4在以下情况下会发生什么(使用previous会导致目标成绩为空):

TutorInitials    TargetGrade
1                A
2                B
3       
4                
5                C 

您可以通过以下两种方式之一解决此问题。

  1. 研究使用查找。

  2. 我更愿意存储变量并在需要时调用它。

在您的报告代码中添加一个变量(注意代码可能无法编译,因为它超出了我的头脑)。

Dim lastGrade As String

public Function ProcessAndReturnGrade(ByVal targetGrade AS String) As String
Begin
    If (targetGrade<>DbNull.Value) Then
       lastGrade = targetGrade
    End If
    return lastGrade       
End Function 

然后在你的 TargetGrade 表达式中

=Code.ProcessAndReturnGrade(Fields!TargetGrade.Value)

我们已经仔细研究了这个问题,正如 Harry 昨天所说,看起来这实际上需要对数据集的 SQL 进行一些广泛的工作。我们发现向用户重新打开旧报告并手动添加目标成绩会简单得多。

感谢大家的关注。