用另一个值替换 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
您可以通过以下两种方式之一解决此问题。
研究使用查找。
我更愿意存储变量并在需要时调用它。
在您的报告代码中添加一个变量(注意代码可能无法编译,因为它超出了我的头脑)。
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 进行一些广泛的工作。我们发现向用户重新打开旧报告并手动添加目标成绩会简单得多。
感谢大家的关注。
我有一个包含 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
您可以通过以下两种方式之一解决此问题。
研究使用查找。
我更愿意存储变量并在需要时调用它。
在您的报告代码中添加一个变量(注意代码可能无法编译,因为它超出了我的头脑)。
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 进行一些广泛的工作。我们发现向用户重新打开旧报告并手动添加目标成绩会简单得多。
感谢大家的关注。