2011-05-09 53 views
0

我有一個ASPxGridview(通常是21列,但我只是想要過程4列)。在DevExpress中計算ASPxGridview列

enter image description here

每列都有一個十進制值。 MV_EDDIE列爲空。

我想要的是,編程計算,MV_EDDIE列是RISK_EUR - (IPOTEK + MV_BERND)只在GroupSummaryTotalSummary

例如; 如果

RISK_EUR = 100 
IPOTEK = 40 
MV_BERND = 50 

然後MV_EDDIE列應爲100 - (40 + 50)= 10

我怎樣才能做到這一點?

注意:我有一個Sql這樣

SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 AS TEKLIF, 
      A.MUS_K_ISIM, A.RISK, 
      (CASE WHEN A.DOVIZ_KOD = 21 THEN 'EUR' WHEN A.DOVIZ_KOD = 2 THEN 'USD' WHEN A.DOVIZ_KOD = 1 THEN 'TL' END) AS DOVIZ, 
      ROUND(KRISK_CV(A.TEKLIF_NO1, A.TEKLIF_NO2,A.DOVIZ_KOD,:TAR),2) AS RISK_EUR, 
      NVL(IPOTEK(A.HESAP_NO, :TAR),0) AS IPOTEK, 
      ROUND(SUM(M_V(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) AS MV_BERND, 
      ROUND(SUM(MV_EX(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) AS MV_EDDIE, 
      (CASE WHEN ROUND(SUM(MV_K(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) < 0 THEN 
      ROUND(SUM(MV_EX(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) ELSE 
      ROUND(SUM(MV_K(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) END) AS MV_KASKO, 
      B.TARIH, GGUNK(A.TEKLIF_NO1,A.TEKLIF_NO2,:TAR) AS GUN 
      FROM S_TEKLIF A, TMP_TAKIP B 
      WHERE A.HESAP_NO = B.HESAP 
      --AND A.HESAP_NO = 316 
      AND A.RISK > 0 
      GROUP BY B.TARIH, A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 , 
      A.MUS_K_ISIM, GGUNK(A.TEKLIF_NO1,A.TEKLIF_NO2,:TAR), 
      A.RISK, A.DOVIZ_KOD,KRISK_CV(A.TEKLIF_NO1, A.TEKLIF_NO2,A.DOVIZ_KOD,:TAR) 
      ORDER BY 3 

注2::我能解決這個問題,改變了我的SQL查詢,但我不希望它。我的查詢已經很複雜。我不想改變它。正因爲如此,我想programmaticly解決它..

編輯:我想計算它只是GroupSummaryTotalSummary。不是其他行。

+0

你是如何加載你的數據源的數據和你的數據源是什麼類型?如果它是一個數據表,那麼你可以使用列表達式,讓我知道,我可以給你一個例子。 – 2011-05-09 05:37:14

+0

@ TBohnen.jnr我加載* SqlDataSource *。 SqlDataSource中是否有列表達式? – 2011-05-09 05:46:26

+0

在DataTable上有一個列表達式,對此非常適合,請快速查看一下,看看您是否可以在sqlDataSource上使用它 – 2011-05-09 06:10:42

回答

1

如果有人考慮我找到答案。

protected void ASPxGridView1_Init(object sender, EventArgs e) 
    { 
     GridViewDataTextColumn colTotal = new GridViewDataTextColumn(); 
     colTotal.Caption = "Total"; 
     colTotal.FieldName = "Total"; 
     colTotal.UnboundType = DevExpress.Data.UnboundColumnType.Decimal; 
     colTotal.VisibleIndex = ASPxGridView1.VisibleColumns.Count; 
     colTotal.PropertiesTextEdit.DisplayFormatString = "n0"; 
     ASPxGridView1.Columns.Add(colTotal); 

    } 

protected void ASPxGridView1_CustomUnboundColumnData(object sender, ASPxGridViewColumnDataEventArgs e) 
    { 
     if (e.Column.FieldName == "Total") 
     { 
      decimal risk = Convert.ToDecimal(e.GetListSourceFieldValue("RISK")); 
      decimal mv = Convert.ToDecimal(e.GetListSourceFieldValue("MV_BERND")); 
      decimal ipotek = Convert.ToDecimal(e.GetListSourceFieldValue("IPOTEK")); 


      e.Value = risk - mv - ipotek; 
     } 

    } 
+0

嗨Soner,你已經找到了解決方案,我會用這個任務:) – 2011-05-09 08:28:13

+0

嗨Dev,在這個時候,我有很多問題給你。準備好:) – 2011-05-09 08:36:25

相關問題