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

VB 2008 express - Ingreso de datos DataGridView

Estas en el tema de VB 2008 express - Ingreso de datos DataGridView en el foro de Programación General en Foros del Web. Hola que tal , necesito hacer algo raro .. Tengo un Detalle_ventaDataGridView que en el método CellEndEdit hace cambios en las celdas, ejemplo: si la ...
  #1 (permalink)  
Antiguo 05/03/2009, 19:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 3
Antigüedad: 15 años, 2 meses
Puntos: 0
VB 2008 express - Ingreso de datos DataGridView

Hola que tal, necesito hacer algo raro .. Tengo un Detalle_ventaDataGridView que en el método CellEndEdit hace cambios en las celdas, ejemplo: si la cantidad está ingresada y se termina de editar el precio unitario calcula el importe y pasa el foco a un botón "Agregar Detalle". Como no son muchas las operaciones que ofrece la empresa (máximo 10), y la persona que precisa el sistema quiere que sea rápido, opté por armar una tabla "Operacion" que contiene id_operacion, nombre, precio_pred. Por lo tanto si en la columna "detalle_operacion" se ingresa un 1 en el método CellEndEdit aplico un filtro en OperacionBindingSource con el IdOperacion(Integer) y el "nombre" de la operación lo muevo a la celda.

Hasta ahora: en la celda "detalle_operación" si apreto 1 y <TAB> aparece "Monotributo 03/09" y así con los demás IdOperación que existan. Si éste no existe la celda se pone celeste y aparece el texto "Debe ingresar un detalle correcto".

El problema: la celda también me debe permitir ingresar un texto cualquiera, ej: "Recargo por mora". Y cuando hago el <TAB> llama al método CellEndEdit e intenta filtrar el OperacionBindingSource con un String y sale un error con fritas.

El código:

'Filtrar DetalleOperación por Id

OperacionBindingSource.Filter = "id_operacion= " & Detalle_ventaDataGridView.CurrentRow.Cells("detall e_operacion").Value.ToString()
'Si la celda no esta vacía
If Not txtSopNomDetalle.Text = "" Then
'Mover los datos a la celda
Detalle_ventaDataGridView.CurrentRow.Cells("detall e_operacion").Value = txtSopNomDetalle.Text
Detalle_ventaDataGridView.CurrentRow.Cells("precio _unit").Value = txtSopPrecioDetalle.Text
'Configurar botones
btnAgregarDetalle.Enabled = True
btnAgregarDetalle.Focus()
If btnLimpiarDetalles.Enabled = False Then
btnLimpiarDetalles.Enabled = True
End If

La solución: Antes del código marcado en rojo tengo que preguntar si el texto de la celda es un número cualquiera (1, 2, 156, 1222455). No podría preguntar si son solo letras ya que se debe permitir ingresar "Recargo por mora 04/09" <-- ejemplo.

Desde ya gracias por la ayuda.

Saludos.

PD: en un form aparte se puede hacer abm de detalles (operaciones) para agilizar los tramites de un mismo mes. Ej. id_operacion = 5, nombre = "Ingresos Brutos 03/09" para imprimir las facturas que deberían llevar ese detalle.
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 22:31.