Foros del Web » Programación para mayores de 30 ;) » .NET »

Como sumar fila en un dataGridView

Estas en el tema de Como sumar fila en un dataGridView en el foro de .NET en Foros del Web. Hola a todos, soy nuevo en el foro y me encuentro estudiando VisualBasic.NET...y necesito hacerles una consulta. Estoy tratando de de crear un datagridview enlazada ...
  #1 (permalink)  
Antiguo 20/11/2013, 19:01
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Como sumar fila en un dataGridView

Hola a todos, soy nuevo en el foro y me encuentro estudiando VisualBasic.NET...y necesito hacerles una consulta. Estoy tratando de de crear un datagridview enlazada por código a una base de datos SQL server. En el cual deseo mostrar los productos que busco por intermedio de id del producto y por cod de barra en dos textbox diferentes.
Bueno lo que no he podido lograr es que al seleccionar un producto por cualquiera de los textbox, este se sume en la misma fila del producto y que no se cree otra fila hasta que no sea ingresado otro dato o producto.
como ejemplo:

Codigo | descripcion | neto | impuesto | PrecioVenta | cantidad
0010 | Paracetamol | 600 | 120 | 720 | 1

es decir si vuelvo ingresar el mismo producto se sume en la columna cantidad...

Agradeciendo cualquier ayuda.....
Saludos.
  #2 (permalink)  
Antiguo 21/11/2013, 09:43
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como sumar fila en un dataGridView

"al seleccionar un producto por cualquiera de los textbox"... esto no lo entiendo... Pero pienso, que lo que quieres es de javascript, lo de añadir (sumar) nuevos productos.

Si pones el código HTML sería más claro lo que deseas hacer

Saludos!
  #3 (permalink)  
Antiguo 21/11/2013, 11:28
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Como sumar fila en un dataGridView

Cita:
Iniciado por panterozo Ver Mensaje
"al seleccionar un producto por cualquiera de los textbox"... esto no lo entiendo... Pero pienso, que lo que quieres es de javascript, lo de añadir (sumar) nuevos productos.

Si pones el código HTML sería más claro lo que deseas hacer

Saludos!
Gracias panterozo...,lo de seleccionar el producto se debe a que puede ser que un producto no tenga código de barra entonces tendría la opción de buscarlo por su id...por eso creo que debo generar dos métodos de búsqueda con dos textbox uno para código de barra y el otro por código de producto. lo que tu mencionas de javascript no le usado , solo he tratado de hacerlo por lenguaje Visualbasic.net...

acá dejo el código....cualquier recomendación se los agradecería...

Private Sub txtCodBarra_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCodBarra.KeyPress


'ACA NO HE PODIDO LOGRAR QUE LO SUME, COMO VERAS TENGO EL MISMO CODIGO QUE TENGO MÁS ABAJO, TRATE CON OTRAS FORMAS Y NO HE PODIDO HACERLO,
..ACA SIGUE SUMANDO FILAS EN EL GRID AUNQUE EL DATO
'SEA EL MISMO....Y LO QUE NECESITO ES QUE EN LA COLUMNA CANTIDAD SE VAYAN SUMANDO....


Try
If (e.KeyChar = CChar(ChrW(13))) Then

Dim cmd As New SqlCommand("mostrar_producto", conex)
cmd.CommandType = CommandType.StoredProcedure
conex.Open()
Dim dato As New SqlParameter("@codigo", SqlDbType.VarChar)
dato.Value = txtCodBarra.Text
cmd.Parameters.Add(dato)
Dim da As New SqlDataAdapter
da.SelectCommand = cmd
da.SelectCommand.Connection = conex
Dim ds As New DataSet
da.Fill(ds, "producto")
conex.Close()
For Each linea As DataGridViewRow In DataListaVentas.Rows
If (linea.Cells(0).Value) = Convert.ToInt64(txtCodBarra.Text) Then
linea.Selected = True
End If
Next
Dim row As DataGridViewRow = DataListaVentas.Rows.Cast(Of DataGridViewRow).FirstOrDefault(Function(x) CInt(x.Cells("codigo").Value) = Convert.ToInt64(txtCodBarra.Text))

If row IsNot Nothing Then
row.Cells("cantidad").Value = CInt(row.Cells("cantidad").Value) + 1
Else
DataListaVentas.Rows.Add(ds.Tables(0).Rows(0).Item (0), "" & (ds.Tables(0).Rows(0).Item(1)), "" _
& (ds.Tables(0).Rows(0).Item(2)), "" & (ds.Tables(0).Rows(0).Item(3)), "" _
& (ds.Tables(0).Rows(0).Item(4)), "" & (ds.Tables(0).Rows(0).Item(5)))

lblNeto.Text = "$ " & ds.Tables(0).Rows(0).Item(2)
lblIva.Text = "$ " & ds.Tables(0).Rows(0).Item(3)
lblTotal.Text = "$ " & ds.Tables(0).Rows(0).Item(4)
'txtCodBarra.Focus()
txtCodBarra.Clear()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
txtCodBarra.Text = ""
conex.Close()

End Try

'txtCodBarra.Focus()
End Sub
  #4 (permalink)  
Antiguo 21/11/2013, 12:46
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como sumar fila en un dataGridView

Cita:
Iniciado por caciro Ver Mensaje

If row IsNot Nothing Then
row.Cells("cantidad").Value = CInt(row.Cells("cantidad").Value) + 1
Else
Y has evaluado la variable row en el if?.. qué valor tiene?, ya que puede no estar entrando al if

Qué es lo que hace esta línea?
Cita:
Iniciado por caciro Ver Mensaje
Dim row As DataGridViewRow = DataListaVentas.Rows.Cast(Of DataGridViewRow).FirstOrDefault(Function(x) CInt(x.Cells("codigo").Value) = Convert.ToInt64(txtCodBarra.Text))
  #5 (permalink)  
Antiguo 21/11/2013, 15:52
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Como sumar fila en un dataGridView

Cita:
Iniciado por panterozo Ver Mensaje
Y has evaluado la variable row en el if?.. qué valor tiene?, ya que puede no estar entrando al if

Qué es lo que hace esta línea?
Dim row As DataGridViewRow = DataListaVentas.Rows.Cast(Of DataGridViewRow).FirstOrDefault(Function(x) CInt(x.Cells("codigo").Value) = Convert.ToInt64(txtCodBarra.Text))

esta linea me permite que se sume la fila y no me cree otra si el producto es el mismo.....pero solo funciona en el textbox que ingreso el id del producto, y no en este procedimiento por código de barra......el problema es que me empieza leyendo desde 0 y no de 1....ese es otro problema que tengo.
En la otra linea que me comentas le asigno el valor al producto repetido y se suma en la cantidad de la misma fila del producto...

como puedes ver el código que envié, no se si puedes ver otra manera de hacerlo y que me puedas ayudar......Gracias.

Etiquetas: basic, datagridview, fila, gridview, net, sql, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:01.