Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Datagrid

Estas en el tema de Datagrid en el foro de Visual Basic clásico en Foros del Web. ************* Tengo dos tabla con los nombres factura y detalle. ¿En la tabla detalle estoy trabajando con el datagrid y ado . ¿El problema es ...
  #1 (permalink)  
Antiguo 24/11/2008, 16:31
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 1
Datagrid

*************
Tengo dos tabla con los nombres factura y detalle.
¿En la tabla detalle estoy trabajando con el datagrid y ado .
¿El problema es que cuando ejecuto los datos se cargan automaticamente y es obio xq esta enlazado con el ado.

Lo que quisiera es que no se vean los datos anteriores para asi poder ingresar nuevos datos.
e probado con el datasource=nothing
y me da el problema que no se ven los encabezados y no puedo hacer un addnew.

Si alguien puede ayudarme se los agradeceria mucho...........
  #2 (permalink)  
Antiguo 24/11/2008, 23:41
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Datagrid

Para crear una factura, es decir usar las tablas maestro-detalle utilizo un recordset temporal y lo igualo al datagrid, es decir acumulo las filas ó items del rsTemporal que se grabaran en la tabla Detalle en el datagrid, luego estas filas recien las grabo en la tabla detalle

Te dejo parte del codigo que utilizo para que tengas una idea de como hacerlo, si alguien tiene un codigo mas corto bacan por que hace tiempo busque y busque y solo encontre el ejemplo del rsTemporal para trabajar con facturas(maestro-detalle).

Código:
Dim rsTemporal As New Recordset

Sub ActivaTemporal()
    'Creando recordset temporal****************
    rsTemporal.CursorType = adOpenStatic
    rsTemporal.Fields.Append "NumProforma", adVarChar, 6, adFldIsNullable
    rsTemporal.Fields.Append "CodProd", adVarChar, 4, adFldIsNullable
    rsTemporal.Fields.Append "NomProd", adVarChar, 250, adFldIsNullable
    rsTemporal.Fields.Append "PrecioVenta", adDouble, 10.2, adFldIsNullable
    rsTemporal.Fields.Append "cantidad", adInteger, adFldIsNullable
    rsTemporal.Fields.Append "Subtotal", adDouble, 10.2, adFldIsNullable
    rsTemporal.Open
    '*****************************************************
    Set Datagrid1.DataSource = rsTemporal
End Sub

Private Sub Form_Load()
  Call ActivaTemporal
End Sub

Private Sub AgregarItem()
'AGREGAR ITEM
     If Val(Txtcantidad) = 0 Then MsgBox "Debe ingresar una cantidad mayor a cero", vbCritical, "Sistema de Facturacion": Exit Sub
     With rsTemporal 'Actualizamos la columna del CodProd para evitar duplicidad de codigo     
     If Not .BOF Then 'Si no esta al inicio
        .MoveFirst 'nos movemos al primer registro
        .Find "CodProd='" + Trim(dtcProducto.BoundText) + "'" 'Buscamos el CodProd
        If .EOF = False Then 'Si llega al final y encuetra algo
           Datagrid1.Columns(2) = Val(Txtcantidad) 'Actualizamos esos campos en
           Datagrid1.Columns(3) = Val(TxtSubTotal) 'el datagrid
           rsTemporal.Update 'Actualizamos el recordset
           Datagrid1.Refresh 'Actualizamos el datagrid
        Else
           Graba_Temporal
        End If
     Else
        Graba_Temporal
    End If
    End With
    CmdOpciones(1).Enabled = True 'habilita boton Eliminar
    cmdGrabar.Enabled = True
    ' *************************************
    Call Calculos
    Datagrid1.Refresh
    'Formato al campo TOTAL de la boleta
    TxtTotal = Format(TxtTotal, "####.00")
End Sub

Sub Graba_Temporal()
    rsTemporal.AddNew
    rsTemporal.Fields(0) = Trim(txtBoleta)
    rsTemporal.Fields(1) = Trim(dtcProducto.BoundText) 'CodProd
    rsTemporal.Fields(2) = Trim(dtcProducto.Text)
    rsTemporal.Fields(3) = Trim(TxtPrecio)
    rsTemporal.Fields(4) = Trim(Txtcantidad)
    rsTemporal.Fields(5) = Trim(TxtSubTotal)
    rsTemporal.Update
End Sub

Private Sub cmdGrabar_Click()
'*****************************************************
'GRABAR DETALLE DE LA PROFORMA
Dim rsDetalleProforma As New Recordset
rsDetalleProforma.Open "SELECT * FROM DetalleProforma", dbConex, adOpenStatic, adLockOptimistic
rsTemporal.MoveFirst
'*****************************************************
Do While Not rsTemporal.EOF
   rsDetalleProforma.AddNew
   rsDetalleProforma.Fields("NumProforma") = txtBoleta
   rsDetalleProforma.Fields("CodProd") = rsTemporal.Fields("CodProd")
   rsDetalleProforma.Fields("PrecioVenta") = rsTemporal.Fields("PrecioVenta")
   rsDetalleProforma.Fields("Cantidad") = rsTemporal.Fields("Cantidad")
   rsDetalleProforma.Fields("SubTotal") = rsTemporal.Fields("subtotal")
   rsDetalleProforma.Update
   rsTemporal.MoveNext
Loop
End Sub
  #3 (permalink)  
Antiguo 26/11/2008, 15:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Datagrid

Gracias men salio tal como lo esperaba...................
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 07:08.