Visual Basic.NET - DataGridView

   
Vista:

DataGridView

Publicado por Sebastian (1 intervención) el 22/09/2015 04:10:03
Hola a todos, tengo el sig. codigo para sumar los valores de una columna de un DataGridView

1
2
3
4
5
6
7
8
9
10
11
Dim total As Decimal = 0D
Dim suma_articulos As String
For Each dgvr As DataGridViewRow In Me.dataalmacen.Rows
suma_articulos = "" & dgvr.Cells(9).Value
'Eliminamos los puntos
 suma_articulos = Replace(suma_articulos, ".", "")
'Reemplazamos las comas
suma_articulos = Replace(suma_articulos, ",", ".")
total += Val(suma_articulos)
Next
txt_total.Text = total.ToString("#0.00")

Funciona OK, se suman todos los valores de la columna Nº 9

Ahora, a esta linea necesito agregarle o mejorar el codigo para que se sumen unicamente aquellas filas que en la columna concepto contengan el valor "1"

suma_articulos = "" & dgvr.Cells(9).Value En esta linea, q tendria q agregar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

DataGridView

Publicado por Miguel (353 intervenciones) el 22/09/2015 06:54:06
Hola, reemplazala por:

1
2
3
If (dgvr.Cells(numero_columna_concepto).Value = "1") Then
     suma_articulos = "" & dgvr.Cells(9).Value
End If


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DataGridView

Publicado por David (45 intervenciones) el 22/09/2015 10:53:35
Mira esto.
¿Vais a la misma clase?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de giancarlo

DataGridView

Publicado por giancarlo giangbd5@hotmail.com (280 intervenciones) el 23/09/2015 18:56:44
No creo que vaya a la misma clase, creo que es la misma persona, que curioso, en fin.

Tengo curiosidad de saber, porque eliminar los puntos, si los punto son para decimales, la coma es para separador de miles, al menos en mi pais es asi y dezconozco en otros, dale una mirada a confiuracion regional del panel de control para verificar y o modificar esto.

1
2
3
4
5
6
7
8
dim suma as double=0
For Each dgvr As DataGridViewRow In Me.dataalmacen.Rows
If (dgvr.Cells(numero_columna_concepto).Value = "1") Then
suma+=val( dgvr.Cells(9).Value)
end if
Next
 
txt_total.Text = suma.ToString("#0.00")

La ultima linea deberia usar format, creo que algo asi:
txt_total.Text = FOMAT(suma,"###0.00")

busca convert.tonumeric o format.numeric, algo asi, ahi te sale que pongas el numero y la cantidad de decimales que quieres mostrar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DataGridView

Publicado por David (45 intervenciones) el 24/09/2015 00:13:17
En España es al revés, la coma es el separador decimal y el punto el de miles, por lo que las conversiones de cadena a número son un rollo si no se saben hacer bien, ya que por defecto se usa la conversión inglesa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de giancarlo

DataGridView

Publicado por giancarlo giangbd5@hotmail.com (280 intervenciones) el 24/09/2015 00:24:09
Entonces hay que considerar la configuracion regional del sistema operativo. si la columna del datagridview es en texto, entonces se podria usar el convert o format, cuando se va escribiendo uno de esos, sale en la lista la palabras datettime y numeric number en el que le das el formato numerico y pones cuantos decimales tendra el resultado, de acuerdo a la configuracion regional entonces saldra como coma o punto.

Otra cosa a considerar es que en las propiedades de la columna tiene para poner un formato, simple, se pone como numerico y decimales, no recuerdo si el separador de decimales(punto o coma) se pueda poner ahi o segun la configuracion regional
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar