none
Agregar una fila en el datagrid que muestre el total de una columna. RRS feed

  • Pregunta

  • Hola, tengo un DatagridView que muestra varias columnas con valores numericos el cual me gustaria sumarlos todos para obtener un total pero que ese total se muestre como ultima fila de dicho datagrid, uso este codigo para sumar las columnas que me interesan

    dim Prueba as integer

    For each fila in Datagrid.Row

    prueba += fila.cells("ColumnaAsumar").value

    Next

    pero como dije el valor de la variable prueba(Total). Debe estar en la ultima fila de dicho datagrid no importa si se le siguen agregando filas.


    Renzo Rivera

    • Cambiado Enrique M. Montejo miércoles, 5 de abril de 2017 7:02 Pregunta relacionada con controles de Windows Forms.
    domingo, 2 de abril de 2017 16:25

Respuestas

  • Hola, 

    Cuál es tu fuente de datos con el que llenas el grid? ahí es en donde deberías agregar una columna mas al final y sumar lo que te desees, así siempre la verás al último

    Por ejemplo:

     public class ent
            {
                public string nombre { get; set; }
                public int num1 { get; set; }
                public int num2 { get; set; }
                public int suma { get; set; }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                List<ent> enty = new List<ent>();
                ent ent1 = new ent();
                ent1.nombre = "brayan";
                ent1.num1 = 4;
                ent1.num2 = 5;
                ent1.suma = ent1.num1 + ent1.num2;
                enty.Add(ent1);
                dataGridView1.DataSource = enty;
            }

    Prueba hacerlo en tus datos a cargar

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 16:49
  • Hola Renzo,

    intenta hacerlo en tu propio repositorio de datos antes de llevarlo a la grilla

    Por ejemplo:

     public class ent
            {
                public string nombre { get; set; }
                public int num1 { get; set; }
                public int num2 { get; set; }
                public int suma { get; set; }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                List<ent> enty = new List<ent>();
                ent ent1 = new ent();
                ent1.nombre = "brayan";
                ent1.num1 = 4;
                ent1.num2 = 5;
                ent1.suma = ent1.num1 + ent1.num2;
                enty.Add(ent1);
                dataGridView1.DataSource = enty;
            }

    Prueba hacerlo antes de.

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 16:51
  • La suma está en horizontal, el 9 esta a la derecha, es la suma del 4 y el 5

    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 17:32
  • La suma está en horizontal, el 9 esta a la derecha, es la suma del 4 y el 5

    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    Brayan, el OP refiere a tener los totales en la última fila, no columna.

    Has varias formas de conseguirlo, una de ellas es precisamente impactando contra el origen de datos. Los ejemplos están en c# pero son fáciles de entender la idea y escribir lo mismo para Visual Basic o usar un traductor de lenguajes.

    Automatically insert last row as Total in DatagridView C#

    is it possible to make the last row of DataGridView as Sum the column ?

    Display sum the values of the cells of last column in datagridview

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:02
    domingo, 2 de abril de 2017 17:37
  • si quieres sumar toda la columna como pie de del datagridview, entonces deberías hacerlo de la siguiente manera:

    Acabo de percatarme que usas visual basic:

    Dim Total As Double
    Dim Col As Integer = Me.DataGridView1.CurrentCell.ColumnIndex
    For Each row As DataGridViewRow In Me.DataGridView1.Rows
        Total += Val(row.Cells(Col).Value)
    Next
    Me.TextBox1.Text = Total.ToString

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:02
    domingo, 2 de abril de 2017 17:39

Todas las respuestas

  • Hola, 

    Cuál es tu fuente de datos con el que llenas el grid? ahí es en donde deberías agregar una columna mas al final y sumar lo que te desees, así siempre la verás al último

    Por ejemplo:

     public class ent
            {
                public string nombre { get; set; }
                public int num1 { get; set; }
                public int num2 { get; set; }
                public int suma { get; set; }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                List<ent> enty = new List<ent>();
                ent ent1 = new ent();
                ent1.nombre = "brayan";
                ent1.num1 = 4;
                ent1.num2 = 5;
                ent1.suma = ent1.num1 + ent1.num2;
                enty.Add(ent1);
                dataGridView1.DataSource = enty;
            }

    Prueba hacerlo en tus datos a cargar

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 16:49
  • Hola Renzo,

    intenta hacerlo en tu propio repositorio de datos antes de llevarlo a la grilla

    Por ejemplo:

     public class ent
            {
                public string nombre { get; set; }
                public int num1 { get; set; }
                public int num2 { get; set; }
                public int suma { get; set; }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                List<ent> enty = new List<ent>();
                ent ent1 = new ent();
                ent1.nombre = "brayan";
                ent1.num1 = 4;
                ent1.num2 = 5;
                ent1.suma = ent1.num1 + ent1.num2;
                enty.Add(ent1);
                dataGridView1.DataSource = enty;
            }

    Prueba hacerlo antes de.

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 16:51
  • Hola, lo que pasa es que quiero que me muestre la suma en forma horizontal y no vertical

    Renzo Rivera

    domingo, 2 de abril de 2017 16:54
  • La suma está en horizontal, el 9 esta a la derecha, es la suma del 4 y el 5

    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:01
    domingo, 2 de abril de 2017 17:32
  • La suma está en horizontal, el 9 esta a la derecha, es la suma del 4 y el 5

    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    Brayan, el OP refiere a tener los totales en la última fila, no columna.

    Has varias formas de conseguirlo, una de ellas es precisamente impactando contra el origen de datos. Los ejemplos están en c# pero son fáciles de entender la idea y escribir lo mismo para Visual Basic o usar un traductor de lenguajes.

    Automatically insert last row as Total in DatagridView C#

    is it possible to make the last row of DataGridView as Sum the column ?

    Display sum the values of the cells of last column in datagridview

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:02
    domingo, 2 de abril de 2017 17:37
  • si quieres sumar toda la columna como pie de del datagridview, entonces deberías hacerlo de la siguiente manera:

    Acabo de percatarme que usas visual basic:

    Dim Total As Double
    Dim Col As Integer = Me.DataGridView1.CurrentCell.ColumnIndex
    For Each row As DataGridViewRow In Me.DataGridView1.Rows
        Total += Val(row.Cells(Col).Value)
    Next
    Me.TextBox1.Text = Total.ToString

    Saludos.


    Si logré resolver tu consulta, no olvides votar como útil y/o marcar como respuesta.

    • Marcado como respuesta Renzo19 lunes, 8 de mayo de 2017 2:02
    domingo, 2 de abril de 2017 17:39