Вычисление столбца ASPxGridview в DevExpress - PullRequest
0 голосов
/ 09 мая 2011

У меня есть ASPxGridview (обычно 21 столбец, но я просто хочу обработать 4 столбца).

enter image description here

Каждый столбец имеет десятичное значение. MV_EDDIE столбец пуст.

То, что я хочу, вычисляя программно, столбцы MV_EDDIE это RISK_EUR - (IPOTEK + MV_BERND) только в GroupSummary и TotalSummary.

Например; Если

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-запрос, но я не хочу этого. Мой запрос уже сложен. Я не хочу это менять. Из-за этого я хочу решить это программно ..

РЕДАКТИРОВАТЬ : Я хочу рассчитать только GroupSummary и TotalSummary. Не другой ряд.

1 Ответ

1 голос
/ 09 мая 2011

Если кто-нибудь посчитает ответ, я его найду.

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;
      }

  }
...