none
Como puedo multiplicar una columna de un datagrid con N filas por el valor contenido en una caja de texto? RRS feed

  • Pregunta

  • Necesito realizar el siguiente calculo: (kilos*(valor de la caja de texto)/100) donde kilos es el nombre de la columna a multiplicar por todas sus N cantidad de filas, Gracias de antemano
    viernes, 20 de noviembre de 2015 21:46

Respuestas

  • Hola jesus g b m,

    Pero va de lo mismo, ¿dónde quieres mostrar el resultado del calculo? ¿Una nueva columna en el objeto DGV?

    Private Sub btnObtenerValor_Click(sender As Object, e As EventArgs)
    	For Each row As DataGridViewRow In dataGridView1.Rows		
                    row.Cells("Resultado").Value = (Convert.ToInt32(row.Cells("kilos").Value) * Convert.ToInt32(txtGalones.Text)) / 100
    	Next
    End Sub

    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:44
    lunes, 23 de noviembre de 2015 22:53
  • Hola jesus g b m,

    ¿Reemplazar el valor? Entonces sigue yendo por lo mismo, lo único que cambia es el nombre de la columna donde se asigna el valor:

    Private Sub btnObtenerValor_Click(sender As Object, e As EventArgs)
    	For Each row As DataGridViewRow In dataGridView1.Rows		
                    row.Cells("kilos").Value = (Convert.ToInt32(row.Cells("kilos").Value) * Convert.ToInt32(txtGalones.Text)) / 100
    	Next
    End Sub


    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:42
    lunes, 23 de noviembre de 2015 23:17
  • La primera letra es mayúscula Cells no cells.
    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:44
    lunes, 23 de noviembre de 2015 23:23

Todas las respuestas

  • Esto te puede ayudar 

    dim total as string

    total = 0

    caja = txtcajas.text;

    For i = 0 To dgproductos.RowCount - 1

            total = caja * ( dgproductos.Item(kilos, i).Value)/100)

    ...

    ....

     Next

    Alex_87

    sábado, 21 de noviembre de 2015 3:20
  • Hola jesus g b m,

    Podrías obtener el total de la columna Kilos con LinQ pero para no complicarte demasiado puedes acumular el valor iterando por cada fila, con el valor obtenido puedes realizar el calculo en base a la formula que propones.

    Private Sub btnObtenerValor_Click(sender As Object, e As EventArgs)
    	Dim totalKilos As Integer = 0
    	Dim valorTotal As Double = 0
    
    	For Each row As DataGridViewRow In dataGridView1.Rows
    		totalKilos = totalKilos + Convert.ToInt32(row.Cells("kilos").Value)
    	Next
    
    	valorTotal = (totalKilos * Convert.ToInt32(txtGalones.Text)) / 100
    
    	MessageBox.Show(String.Format("El valor total es {0}", valorTotal))
    End Sub

    • Propuesto como respuesta Asier Villanueva sábado, 21 de noviembre de 2015 8:41
    • Marcado como respuesta Enrique M. MontejoModerator lunes, 23 de noviembre de 2015 7:47
    • Desmarcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 22:28
    • Votado como útil jesus g b m lunes, 23 de noviembre de 2015 22:29
    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 22:34
    • Desmarcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 22:35
    sábado, 21 de noviembre de 2015 3:36
  • Gracias por responder Williams Morales , pero no busco el total de la columna kilos, lo que quiero es aplicar la formula a cada N filas de la columna kilos e imprimir este valor en cada fila por ejemplo: la primera fila de la columna kilos tiene como valor 25 y la caja de texto tiene como valor 100 esto quiere decir que haciendo el calculo (25*100)/100 me daría como resultado el mismo valor 25 pero si el valor de la caja de texto fuese 120 me daria 30 y asi sucesivamente realizar este calculo a cada fila y mostrarlo, no necesito el total en kilos de la columna como lo planteas
    lunes, 23 de noviembre de 2015 22:44
  • Gracias por responder 13Javier , pero no busco el total de la columna kilos, lo que quiero es aplicar la formula a cada N filas de la columna kilos e imprimir este valor en cada fila por ejemplo: la primera fila de la columna kilos tiene como valor 25 y la caja de texto tiene como valor 100 esto quiere decir que haciendo el calculo (25*100)/100 me daría como resultado el mismo valor 25 pero si el valor de la caja de texto fuese 120 me daria 30 y asi sucesivamente realizar este calculo a cada fila y mostrarlo, no necesito el total en kilos de la columna como lo planteas
    lunes, 23 de noviembre de 2015 22:45
  • Hola jesus g b m,

    Pero va de lo mismo, ¿dónde quieres mostrar el resultado del calculo? ¿Una nueva columna en el objeto DGV?

    Private Sub btnObtenerValor_Click(sender As Object, e As EventArgs)
    	For Each row As DataGridViewRow In dataGridView1.Rows		
                    row.Cells("Resultado").Value = (Convert.ToInt32(row.Cells("kilos").Value) * Convert.ToInt32(txtGalones.Text)) / 100
    	Next
    End Sub

    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:44
    lunes, 23 de noviembre de 2015 22:53
  • No quiero mostrar el resultado del calculo de cada fila en una nueva columna sino en la misma columna kilos
    lunes, 23 de noviembre de 2015 23:09
  • Hola jesus g b m,

    ¿Reemplazar el valor? Entonces sigue yendo por lo mismo, lo único que cambia es el nombre de la columna donde se asigna el valor:

    Private Sub btnObtenerValor_Click(sender As Object, e As EventArgs)
    	For Each row As DataGridViewRow In dataGridView1.Rows		
                    row.Cells("kilos").Value = (Convert.ToInt32(row.Cells("kilos").Value) * Convert.ToInt32(txtGalones.Text)) / 100
    	Next
    End Sub


    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:42
    lunes, 23 de noviembre de 2015 23:17
  • Me da este error
    lunes, 23 de noviembre de 2015 23:19
  • La primera letra es mayúscula Cells no cells.
    • Marcado como respuesta jesus g b m lunes, 23 de noviembre de 2015 23:44
    lunes, 23 de noviembre de 2015 23:23
  • me da el mismo error
    lunes, 23 de noviembre de 2015 23:31
  • Ahora si me esta funcionando, el único problema es que cuando cambio los datos de la textbox despues de haber calculado y vuelvo a calcular me da error
    lunes, 23 de noviembre de 2015 23:37
  • lunes, 23 de noviembre de 2015 23:41
  • Es probable que el formato de número que ingresas en el objeto textbox no sea correcto, ¿usas decimales?¿qué separador de decimales usas?
    lunes, 23 de noviembre de 2015 23:45
  • No uso decimales, primero realizo el calculo por 120 y funciona bien, luego por 150 y me da ese error, sera que me falta refrescar algo antes del segundo calculo?
    martes, 24 de noviembre de 2015 0:06