+----------+------------+------+------+--------------+---------+---------+
| | SUBJ | MIN | MAX | RESULT | STATUS | PERCENT |
| +------------+------+------+--------------+---------+---------+
| | Subj1 | 35 | 100 | 13 | FAIL | 13.00% |
|EXAM NAME | Subj2 | 35 | 100 | 63 | PASS | 63.00% |
| | Subj3 | 35 | 100 | 35 | PASS | 35.00% |
| +------------+------+------+--------------+---------+---------+
| | Total | 105 | 300 | 111 | PASS | 37.00% |
+----------+------------+------+------+--------------+---------+---------+
这是我的报告查看器报告格式.SubTotal行计算 以上所有列的总和。每件事都很好。但在状态 列显示Pass。如果有单身,我希望它显示失败 在状态列中失败。如果结果<我正在生成状态那么 它失败了,否则就过去了。现在如何更改SubTotal行 以下取决于条件。有没有办法表明 直接来自数据库的小计行。任何建议。
答案 0 :(得分:0)
最简单的方法是使用自定义代码(右键单击报表的非显示区域,选择“属性”并单击“代码”选项卡) - 计算详细信息中的通过/未通过分数,将其显示在组中页脚并在组头中重置:
Dim PassFail As String
// Reset Pass or Fail status in group header
Public Function ResetAndDisplayStatusTitle() AS String
PassFail = "PASS" // Initialise status to pass
ResetAndDisplayStatusTitle = "Status"
End Function
// Calculate pass/fail on each detail row and remember any fails
Public Function CalculatePassFail() As String
Dim ThisResult As String
// Calculate whether this result is pass or fail
If Fields!Result.Value < Fields!Min.Value Then
ThisResult = "FAIL"
Else
ThisResult ="PASS"
End If
// Remember any failure as overall failure
If ThisResult = "FAIL" Then PassFail = "FAIL"
CalculatePassFail = ThisResult
End Function
然后,您将自定义代码绑定到表格中的单元格,如下所示:
在您的群组标题中的状态列的值中输入:
=Code.ResetAndDisplayStatusTitle()
在您输入的详细信息行中的状态列的值中:
=Code.CalculatePassFail()
在您输入的组页脚中的状态列的值中:
=Code.PassFail
关于直接从数据库中获取数据库中的小计行,有几种方法取决于您所追求的结果。
然而,这些技巧仅适用于特殊情况,一般情况下,可以调整正常的开箱即用小计,以提供您所追求的结果。如果您想知道具体的内容,最好在单独的问题中解释问题,以便可以单独处理问题。