En Visual Foxpro, se registran datos pero no se imprimen. ¿Habrá algún código erróneo?

Resulta que un procedimiento toma datos de una tabla las vuelca en variables, luego en otra tabla y luego las imprime. Pasa que en las horas pico se produce lo siguiente: se registran los datos (se los ve en grilla) pero no los imprime. Cuando no hay tanto movimiento la cosa anda bien. Qeu puede estar sucediendo? Le coloque begin trans y sigue igual
este es el codigo:
if not used('okey')
use .\dbfs\okey in 0 shared
endif
sele okey
if okey.estoy then
if not used('pagos')
use .\dbfs\pagos in 0 shared
CURSORSETPROP('buffering', 3, 'pagos')
endif
sele pagos
if not used('colaimpre')
use .\dbfs\colaimpre in 0 shared
endif
sele colaimpre
count to vCuenta
if vCuenta != 0 then
*begin trans
go top
vEmple = colaimpre.empleado
vFecha1 = DATE() &&ctod(colaimpre.fecha)
vHora1 = allt(str(hour(datetime()))) + ":" + allt(str(minute(datetime()))) + ":" + allt(str(sec(datetime())))
*vHora1 = colaimpre.hora
vfichas = colaimpre.token
vserie_Maq = colaimpre.maquina
vPremia = colaimpre.valor
vCola = colaimpre.fincola
if not used('ficheros')
use .\dbfs\ficheros in 0 shared
endif
sele ficheros
set order to tag cod_fiche
seek(alltrim(vEmple))
vNombre = ficheros.apellido
use
if not used('maquinas')
use .\dbfs\maquinas in 0 shared
endif
sele maquinas
locate for serie_maqu = vserie_Maq
if found() then
vmodelo = maquinas.descripcio
endif
sele colaimpre
dele
go top
*ultimo nro de ticket disponible
sele dispone
go top
registro = dispone.nro
replace nro with registro + 1
tableupdate()
vticket = registro
sele pagos
append blank
replace cod_pago with registro
replace cod_turno with genero
replace serie_maqu with vserie_Maq
replace serie_cupo with registro
replace fecha with vFecha1
replace hora with vHora1
replace fichas_pag with vfichas
replace premio with vPremia
replace pagador with vNombre
replace cod_paga with val(vEmple)
begin trans
lSuccess = TABLEUPDATE(.T.,.F.)
IF lSuccess = .F.
ROLLBACK
messagebox ("no se pudo completar la transaccion, reintente", 0, "Mensaje")
else
*****
if not used('impreso')
use .\dbfs\impreso in 0 shared
endif
sele impreso
append blank
replace serie_cupo with registro
replace impreso with .t.
cPrinter = set("printer",2)
set printer to name(cPrinter)
STORE PRINTSTATUS( ) TO glReady
IF NOT glReady
messagebox ("Asegúrese de que la impresora está conectada y encendida", 0, "Mensaje")
ELSE
REPORT FORM .\reportes\ticket.frx ;
NOCONSOLE NOWAIT TO PRINTER
REPORT FORM .\reportes\ticket1.frx ;
NOCONSOLE NOWAIT TO PRINTER
endif
sele pagos
endif
end trans
endif
if vrecuento then
sele recuento
endif
endif
esto esta en un timer, hecho en VFP 6

1 Respuesta

Respuesta
1
SET DEFAULT TO C:\PROYECTO
*// TODAS ALAS CARPETAS QUE ESTAN EL PROYECTO
SET PATH TO PROGS, FORMS, LIBS, MENUS, DATA
*if not used('okey')
use okey in 0 shared
*endif
sele okey
if okey.estoy then
*if not used('pagos')
use pagos in 0 shared
CURSORSETPROP('buffering', 3, 'pagos')
*endif
sele pagos
*if not used('colaimpre')
use colaimpre in 0 shared
*endif
sele colaimpre
count ALL to vCuenta
GO TOP
if vCuenta != 0 then
*begin trans
*go top
vEmple = colaimpre.empleado
vFecha1 = DATE() &&ctod(colaimpre.fecha)
vHora1 = allt(str(hour(datetime()))) + ":" + allt(str(minute(datetime()))) + ":" + allt(str(sec(datetime())))
*vHora1 = colaimpre.hora
vfichas = colaimpre.token
vserie_Maq = colaimpre.maquina && VERIFICA CON LOCATE
vPremia = colaimpre.valor
vCola = colaimpre.fincola
*if not used('ficheros')
use ficheros in 0 shared
*endif
sele ficheros
set order to tag cod_fiche &&
seek(alltrim(vEmple))
IF FOUND()
vNombre = ficheros.apellido
ELSE
WAIT WINDOW "NO ENCONTRO...?" &&
ENDIF
use
*if not used('maquinas')
use maquinas in 0 shared
*endif
sele maquinas
locate for serie_maqu = vserie_Maq &&SUPONGO QUE HAY VARIAS MAQUINAS PARA USAR ESTE COMNADO
if found() &&then
vmodelo = maquinas.descripcio
endif
sele colaimpre
dele && QUE BORRAS LA LINEA QUE EN CONTRO
go top
*ultimo nro de ticket disponible
sele dispone
go top
registro = dispone.nro
replace nro with registro + 1
tableupdate()
vticket = registro
sele pagos
append blank
******SI USAS LA TECNOLIGIA DE VFP ESTO ESTA DE MAS
*!* replace cod_pago with registro
*!* replace cod_turno with genero
*!* replace serie_maqu with vserie_Maq
*!* replace serie_cupo with registro
*!* replace fecha with vFecha1
*!* replace hora with vHora1
*!* replace fichas_pag with vfichas
*!* replace premio with vPremia
*!* replace pagador with vNombre
*!* replace cod_paga with val(vEmple)
&& USARIARS TABLAUPDATE(.T.)
=TABLEUPDATE(.T.)
*!* *******ESTO YA NO IRIA
*!* begin trans && YA NO IRIA
*!* lSuccess = TABLEUPDATE(.T.,.F.)
*!* IF lSuccess = .F.
*!* ROLLBACK
*!* messagebox ("no se pudo completar la transaccion, reintente", 0, "Mensaje")
*!* else
*!* *****
*if not used('impreso')
use impreso in 0 shared
*endif
sele impreso
append blank
replace serie_cupo with registro
replace impreso with .t.
cPrinter = set("printer",2)
set printer to name(cPrinter)
STORE PRINTSTATUS( ) TO glReady
IF NOT glReady
messagebox ("Asegúrese de que la impresora está conectada y encendida", 0, "Mensaje")
ELSE
REPORT FORM ticket.frx NOCONSOLE NOWAIT TO PRINTER
REPORT FORM .\reportes\ticket1.frx NOCONSOLE NOWAIT TO PRINTER
endif
sele pagos
endif
*!* end trans
*!* endif
if recuento then && ?????
sele recuento && ????
endif &&?
endif &&?
Si esto esta corriendo en un timer espero que lo sepas cronometrar para que la pc no se buelva muy lenta
cualquier duda me escribes
atte. Fitocava
mi mail
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas