copiar cursor a tabla + otro campo vfp

2,299 views
Skip to first unread message

joel_cast

unread,
Mar 19, 2013, 9:01:42 PM3/19/13
to mundovis...@googlegroups.com
hola a todos !!!

Resulta que tengo un mantenimiento de facturación con 2 tablas una para el encabezado y otra para el detalle, la de detalle se alimentara de un grid cuyos datos pasan a una tabla temporal (cursor).

cuando voy a guardar la factura copio los datos del cursor a la tabla de detalles por medio del siguiente código


****
USE (NOMBRE DE LA TABLA DETALLE)

APPEND FROM DBF(NOMBRE DEL CURSOR)
 
****
el problema es que por cada registro que yo tengo en el grid y por ende en el cursor necesito que se guarde el numero de factura que se encuentra en un textbox y que almaceno también en la tabla de encabezado.


nota: la tabla de detalle pose lógicamente la misma estructura que el cursor y adicional ha esto se encuentra el campo numfac donde necesito que se guarde el numero de la factura en cada uno de los registros.

cabe destacar que el comando que les acabo de mostrar  funciona perfectamente solo que no encuentro como almacenar el numero de factura en cada registro.

Gracias por su atención y espero me puedan ayudar...

:-)






Analyzer

unread,
Mar 19, 2013, 9:16:57 PM3/19/13
to mundovis...@googlegroups.com
Se me ocurre que si el cursor tiene ese campo donde dices que debe ir el campo del numero de factura y solo los registros que has de agregar al detalle, conviertas a tu cursor en de lectura y escritura con.

USE mitabla IN 0
Sele mitabla

thisform.migrid.recordsource=''
Sele * from mitabla where condicion into cursor micursor readwrite

sele micursor
thisform.migrid.recordsource="micursor"
thisform.refresh()

Ya ahí puedes hacer un scan o un replace all para agregar el numero de factura a tu cursor:

Sele micursor
scan
replace micamponumerodefactura with thisform.mitextquetieneelnumerodefactura.value
endscan

y luego hacer tu append from micursor hacia tu tabla de detalle.

A ver si te entendí correctamente..

Saludos!








--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Message has been deleted

joel_cast

unread,
Mar 19, 2013, 10:18:32 PM3/19/13
to mundovis...@googlegroups.com
Gracias por tu respuesta.

Resulta que el cursor no posee el campo para el numero de factura, la tabla que recibe el cursor (tabla detalle) si lo tiene. Pero por lo que respondes creo que tendré que agregar el campo al cursor y agregar el numero  de factura a cada linea de registro en el cursor y luego hacer el append from micursor.

Analyzer

unread,
Mar 19, 2013, 11:22:19 PM3/19/13
to mundovis...@googlegroups.com
Perdón por no leer bien..

Saludos!


El 19 de marzo de 2013 19:01, joel_cast <joelbi...@gmail.com> escribió:

Carlos Miguel FARIAS

unread,
Mar 20, 2013, 7:48:40 AM3/20/13
to mundovis...@googlegroups.com
Si el cursor de detalle, tiene el atributo nro factura.

UPDATE tuCursor SET nroFactura = THISFORM.elNumeroFactura

como no pones condición where, te actualiza todas las filas del cursor

luego

INSERT INTO tablaDetalle (lista de campos tablas);
   SELECT lista de campos FROM tuCursor


La ventaja de este par de comandos, es que si luego pasas de nativas a un SGBD, es la misma filosofia ( a lo sumo, como sería muy largo convertir el select en una lista para pasar SQL Pass thru podes solucionarlo haciendo un SCAN ENDSCAN sobre tu cursor y enviando una sentencia INSERT en cada vuelta
Saludos: Miguel, La Pampa (RA)
Reply all
Reply to author
Forward
0 new messages