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



i有一个带有2列,辅导和目标级的表。如果用户没有等级,我们需要将其替换为给其他用户的等级。例如:

TutorInitials    TargetGrade
1                A
2                B
3       
4                C

辅导3没有等级,因此,无论它们在报告" Targetgrade"时弹出的地方弹出的地方,我们都需要用" Targetgrade"结果替换为辅导2(" B"(的" targetgrade"结果:

TutorInitials    TargetGrade
1                A
2                B
3                B
4                C

很抱歉,如果我没有很好地解释它,我对SSR非常陌生。

我曾尝试使用IIF和表达式的位置,但无法正常工作。

谢谢Rob

编辑:发生的事情是,我们在一所学校中一年中一半发生了变化的学校中有学科。新老师需要让一个学生的目标成绩从上一位老师那里升级。因此,它不仅需要从上面的单元格中获取成绩,还需要来自特定的导师(受试者第一教师(,因此我可能需要用成绩替换成等级的1,2或4。

<。

您可以使用内置的ssrs先前函数。如果您按照所需的方式对数据进行排序,则可以正常工作。

=Previous(Fields!TargetGrade.Value)

但是,,在以下情况下,导师4会发生什么(使用以前会导致目标等级为空白(:

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 

然后在您的目标级表达式

=Code.ProcessAndReturnGrade(Fields!TargetGrade.Value)

我们对这个问题有很好的了解,正如哈利昨天所说,这实际上需要在数据集中的SQL中进行一些广泛的工作。我们发现,将旧报告重新打开给用户并手动添加目标等级将变得更加简单。

感谢大家研究。

最新更新