3

데이터 소스에 바인딩 된 DevExpress xtragrid를 사용하고 있습니다 ... 모두 괜찮습니다. 계산 결과를 보유 할 1 개의 언 바운드 열 (균형)을 추가하고 있습니다. 직불 및/또는 신용 열이 그리드의 어디에서 변경 될 때 '잔액'열은 반드시 다시 계산해야합니다. 주어진 루프 문이 내 유일한 옵션이되지 않기를 바라는 많은 양의 레코드가있을 수 있습니다. 오히려 표현 편집기를 사용하여 해결책을 찾고 싶었습니다.DevExpress - 합계를 실행하는 xtragrid 열

예 :

dr  cr  balance 
100  0  100 
0  50  50 
0  45  5 

답변

4
  1. 라는 데이터 소스 금액에 새 열을 만듭니다. 이 열에는 을 모두 저장합니다. 양수와 음수 값으로 차변 및 대변을 입력하십시오.
  2. xtragrid에 새 열을 추가하십시오. 이름을 colRunningBalance로 지정하십시오.
  3. 컬럼의 UnboundType을 십진수로 설정하십시오. 그리드 자신에게 데이터를 처리 할 것입니다 알려줍니다.
  4. 그리드에 대한 양식에 다음 이벤트를 추가하십시오. 코드는 VB.NET에 있지만 어떤 언어

    Private Sub gridView_CustomUnboundColumnData(sender As System.Object, e As DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs) Handles 
    gvCash.CustomUnboundColumnData 
          Dim view = DirectCast(sender, GridView) 
    
         If e.Column.FieldName = "colRunningBalance" And e.IsGetData Then 
          Dim total = 0D 
          For i As Integer = -1 To e.ListSourceRowIndex - 1 
           total += CDec(view.GetListSourceRowCellValue(i + 1, "Amount")) 
          Next 
          e.Value = total 
         End If 
        End Sub 
    
로 변환 아주 쉽게해야한다