Hola a todos,
Necesito nuevamente su ayuda.
Tengo un datagrid que tiene como datasource un datable. Esto es para una aplicacion de facturacion. Para crearlo uso lo siguiente:
Private Sub ConfiguraTabla()
'crea las columnas para datagrid y el tipo
Dim dc0 As New DataColumn("Item", System.Type.GetType("System.Byte"))
Dim dc1 As New DataColumn("Codigo", System.Type.GetType("System.Int16"))
Dim dc2 As New DataColumn("Descripcion", System.Type.GetType("System.String"))
Dim dc3 As New DataColumn("Cantidad", System.Type.GetType("System.Int16"))
Dim dc4 As New DataColumn("PrecioUnitario", System.Type.GetType("System.Decimal"))
Dim dc5 As New DataColumn("Total", System.Type.GetType("System.Decimal"))
dc1.Unique = True
dc5.Expression = "Cantidad*PrecioUnitario"
'agrega las columnas al datagrid
With carrito.Columns '
.Add(dc0)
.Add(dc1)
.Add(dc2)
.Add(dc3)
.Add(dc4)
.Add(dc5)
End With
dgdDetalle.DataSource = carrito 'le indica al datagrid q su fuente es el carrito
End Sub
Para agregar los datos al detalle hago lo siguiente en un boton
dr = carrito.NewRow()
dr(0) = carrito.Rows.Count + 1
dr(1) = codprod
dr(2) = cboprod.Text
dr(3) = txtcantidad.Text
dr(4) = txtprecio.Text
dr(5) = txtfinal.Text
carrito.Rows.Add(dr)
totales()
Ahora vienen el problema, tengo un boton de eliminar que me elimina una linea del detalle del datagrid (esto funciona bien) y tengo otro boton de limpiar que deberia limpiar todo el grid para agregar nuevos productos.
Sin embargo no he logrado limpiarlo, he provado con lo siguiente:
carrito.clear
carrito.reset
dgddetalle.DataBindings.Clear
Inclusive con esto
fila = dgdDetalle.CurrentCell.RowIndex
If fila > -1 And carrito.Rows.Count > 0 Then 'verifica que el datagrid contenga alguna fila
carrito.Rows.RemoveAt(fila) '
Dim i As Integer
For i = 0 To carrito.Rows.Count - 1
carrito.Rows(i).BeginEdit()
carrito.Rows(i)(0) = i + 1
carrito.Rows(i).EndEdit()
Next
End If
Y me borran el datagrid, pero si inmediatamente trato de agregar un producto me dice:
"La cadena de entrada no tiene el formato correcto. No se puede almacenar <> en la columna total. El tipo esperado es decimal."
Y no me deja agregar nada hasta que cierre y vuelva a abrir la pantalla.
Alguno sabe que podria hacer para solucionarlo.
Saludos,