🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / gridview custom group calculate custom footer sum

1-) C# RMOS - gridview custom group calculate custom footer sum

 

ramborambo s2

 

kaynak kod : https://drive.google.com/file/d/14I7edI2wmsF-QV2GE2QhbhjmIWDPBHrn/view?usp=sharing

 

using DevExpress.XtraGrid;

using DevExpress.XtraGrid.Views.Grid;

using System;

using System.Collections.Generic;

using System.Data;

using System.Windows.Forms;

 

namespace gridsummary

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            listele();

        }

 

        public void listele()

        {

            gridView1.OptionsView.ShowFooter = true;

            gridView1.OptionsView.ShowAutoFilterRow = true;

 

            DataTable dt = new DataTable();

            dt.Columns.Add("id", typeof(int));

            dt.Columns.Add("ad", typeof(string));

            dt.Columns.Add("ucret1", typeof(double));

            dt.Columns.Add("ucret2", typeof(double));

            dt.Columns.Add("ucret3", typeof(double));

 

            double ucret1 = 7.5, ucret2 = 5.5;

            for (int i = 0; i < 40; i++)

            {

                if (i < 10)

                {

                    ucret1 = ucret1 + i;

                    ucret2 = ucret2 + i;

                    dt.Rows.Add(i, "ramazan", ucret1, ucret2, ucret1 / ucret2); //

                }

                else if (i < 15)

                {

                    ucret1 = ucret1 + i;

                    ucret2 = ucret2 + i;

                    dt.Rows.Add(i, "reşat", ucret1, ucret2, ucret1 / ucret2);

                }

                else

                {

                    ucret1 = ucret1 + i;

                    ucret2 = ucret2 + i;

                    dt.Rows.Add(i, "mehmet", ucret1, ucret2, ucret1 / ucret2);

                }

            }

            gridControl1.DataSource = dt;

 

            gridviewFooterYaz(gridView1, "ucret1");

            gridviewFooterYaz(gridView1, "ucret2");

 

            gridviewGroupFooterYaz(gridView1, "ucret1");

            gridviewGroupFooterYaz(gridView1, "ucret2");

 

            gridviewGroupCustomFooterYaz(gridView1, "ucret3");

        }

 

        public static void gridviewFooterYaz(GridView grid, string fieldName)

        {

            if (grid.Columns.Count > 0)

            {

                grid.OptionsView.ShowFooter = true;

                grid.Columns[fieldName].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;

                grid.Columns[fieldName].SummaryItem.FieldName = fieldName;

                grid.Columns[fieldName].SummaryItem.DisplayFormat = "{0:n0}";

            }

        }

 

        public static void gridviewGroupFooterYaz(GridView grid, string fieldName)

        {

            if (grid.Columns.Count > 0)

            {

                GridGroupSummaryItem item1 = new GridGroupSummaryItem();

                item1.FieldName = fieldName;

                item1.SummaryType = DevExpress.Data.SummaryItemType.Sum;

                item1.DisplayFormat = "Total {0:c2}";

                item1.ShowInGroupColumnFooter = grid.Columns[fieldName];

                grid.GroupSummary.Add(item1);

            }

        }

 

        public static void gridviewGroupCustomFooterYaz(GridView grid, string fieldName)

        {

            if (grid.Columns.Count > 0)

            {

                GridGroupSummaryItem item1 = new GridGroupSummaryItem();

                item1.FieldName = fieldName;

                item1.SummaryType = DevExpress.Data.SummaryItemType.Custom;

                //item1.DisplayFormat = "Total {0:c2}";

                item1.ShowInGroupColumnFooter = grid.Columns[fieldName];

                grid.GroupSummary.Add(item1);

 

                grid.Columns["ucret3"].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Custom;

 

            }

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            listele();

        }

 

        int sayac = 0;

        List<double> groupTotal = new List<double>();

        int diger = 1;

        private void gridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)

        {

            if (diger > e.GroupRowHandle * -1)

            {

                groupTotal = new List<double>();

                sayac = 0;

                diger = 1;

            }

 

            diger = e.GroupRowHandle * -1;

 

            if (!e.IsGroupSummary)

            {

                if ((((DevExpress.XtraGrid.GridSummaryItem)e.Item).FieldName) == "ucret3")

                {

                    e.TotalValue =

                    Convert.ToDouble(gridView1.Columns["ucret1"].SummaryItem.SummaryValue) /

                    Convert.ToDouble(gridView1.Columns["ucret2"].SummaryItem.SummaryValue);

                }

            }

            else

            {

                if ((((DevExpress.XtraGrid.GridSummaryItem)e.Item).FieldName) == "ucret3")

                {

                    double val1 = Convert.ToDouble(gridView1.GetGroupSummaryValue(e.RowHandle, gridView1.GroupSummary[0] as GridGroupSummaryItem));

                    double val2 = Convert.ToDouble(gridView1.GetGroupSummaryValue(e.RowHandle, gridView1.GroupSummary[1] as GridGroupSummaryItem));

                    if (val1 != 0 && val2 != 0)

                    {

                        double sonuc = val1 / val2;

                        groupTotal.Add(sonuc);

                    }

                    if (groupTotal.Count > (e.GroupRowHandle * -1) - 1)

                    {

                        e.TotalValue = groupTotal[(e.GroupRowHandle * -1) - 1];

                    }

                    //sayac++;

                    //Console.WriteLine(e.RowHandle + "**" + e.GroupRowHandle + "**" + val1 + "**" + val2+"**"+sayac);

                }

            }

        }

    }

}

 

 2021 Ocak 18 Pazartesi
 425