2012-05-14 11 views
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% | 
+----------+------------+------+------+--------------+---------+---------+ 

這是我的報告查看器報告format.The計行計數 總的上述所有column.Every事情是罰款。但在 列顯示Pass。如果狀態欄中有單個 失敗,我希望它顯示失敗。如果結果<最小然後 它是失敗或否則它通過我生成狀態。現在,如何根據條件更改以下SubTotal行 。有沒有什麼辦法直接從數據庫中顯示 小計行。任何建議。SumTotal公司在的ReportViewer

回答

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中的小計行(以便小計字段出現在數據集中的每一行上)並使用這些字段。
  • 同樣,使用自定義代碼(但是這可能是對subtotalling過於複雜)

然而,這些技巧只對陌生環境和一般正常外的開箱subtotalling可以調整到給出你的結果。如果您想知道某個具體的事情,最好在單獨的問題中解釋問題,以便問題可以單獨處理。

+0

讓我試試看 – Aaraadhana