Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DevExpress中计算ASPxGridview列_C#_.net_Asp.net_Devexpress_Aspxgridview - Fatal编程技术网

C# 在DevExpress中计算ASPxGridview列

C# 在DevExpress中计算ASPxGridview列,c#,.net,asp.net,devexpress,aspxgridview,C#,.net,Asp.net,Devexpress,Aspxgridview,我有一个ASPxGridview(通常为21列,但我只需要process4列) 每列都有一个十进制值。 MV_EDDIE列为空 我想要的是,通过编程计算,MV\u EDDIE列是RISK\u EUR-(IPOTEK+MV\u BERND)仅在GroupSummary和TotalSummary中 比如,; 如果 那么MV_EDDIE列应该是100-(40+50)=10 我该怎么做 注意:我有这样一个Sql SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.T

我有一个
ASPxGridview
(通常为21列,但我只需要process4列)

每列都有一个十进制值。
MV_EDDIE
列为空

我想要的是,通过编程计算,
MV\u EDDIE
列是
RISK\u EUR-(IPOTEK+MV\u BERND)
仅在
GroupSummary
TotalSummary

比如,; 如果

那么
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
。不是其他行。

< P>如果有人考虑这个答案,我找到了。< /P>
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;
      }

  }

如何加载数据源的数据以及数据源是什么类型的?如果它是一个datatable,那么您可以使用列表达式,让我知道,我可以给您一个示例。@TBohnen.jnr我用SqlDataSource加载。SqlDataSource中有一个列表达式吗?DataTable中有一个列表达式非常适合于此,请快速查看是否可以在sqlDataSourceI上使用它。我只需使用ASPxGridView1.DataSource=SqlDataSource1;和ASPxGridView1.DataBind();。。。你能举个例子吗?据我所知,你不能直接添加或访问sql数据源的数据,如果你不想太多地更改代码,我建议你更改sql,否则请告诉我,我会给你一个如何使用datatableHi Soner的例子,您已经找到了我将用于此任务的解决方案:)嗨,Dev,在这段时间里,我有很多问题要问您。准备好:)
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;
      }

  }