0
+----------+------------+------+------+--------------+---------+---------+
|          |    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行は上記のすべての列の合計をカウントします。すべて問題ありません。ただし、ステータス列には合格が表示されます。ステータス列に単一の失敗がある場合は、失敗を表示したいと思います。Result <Minの場合はステータスを生成していますが、それ以外の場合は合格です。次に、条件に応じて以下のSubTotal行を変更する方法を説明します。そして、データベースから直接小計行を表示する方法はありますか。なにか提案を。

4

1 に答える 1

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

データベースから直接データベースから小計行を取得することに関しては、結果に応じていくつかの方法があります。

  • 詳細行を SQL の小計行に結合し (小計フィールドがデータセットのすべての行に表示されるように)、それらのフィールドを使用します。
  • 繰り返しますが、カスタム コードを使用します (ただし、これはおそらく小計にとって非常に複雑です)。

ただし、これらのトリックは特殊な状況でのみ使用でき、通常、すぐに使用できる通常の小計を微調整して、目的の結果を得ることができます。具体的に知りたいことがある場合は、問題を個別に対処できるように、別の質問で問題を説明することをお勧めします。

于 2012-05-14T07:36:09.533 に答える