Control de Error en impresora que imprime linea por linea

53 views
Skip to first unread message

Ariel

unread,
Dec 2, 2016, 1:16:06 PM12/2/16
to Comunidad de Visual Foxpro en Español
Buenos días, se me presenta una inquietud.
 Tengo un método que imprime en una impresora fiscal y va linea por linea, si en medio de la impresión la impresora se apaga, se traba el papel o lo que sea que devuelva error, no debería seguir ejecutando las próximas lineas.
Lo que veo engorroso es preguntar después de cada linea si hubo un error, ya que a veces el código es de unas 100 lineas y si hago un IF por cada linea es muy poco practico. 
Existe alguna forma de que por cada linea que ejecute se evalué una variable y genere una acción? 
Por ejemplo en el próximo código, cada linea que se ejecute evalué la variable "err"

err = loTm88.imprimirLineaNoFiscal(REPLICATE('-',40))
err = loTm88.imprimirLineaNoFiscal('ARQUEO DE CAJA')
err = loTm88.imprimirLineaNoFiscal('')
err = loTm88.imprimirLineaNoFiscal('Total Efectivo:      '+STR(comprobanteturno.turefectivo,10,2))
err = loTm88.imprimirLineaNoFiscal('Total T. Crédito:    '+STR(comprobanteturno.turtarjeta ,10,2))
err = loTm88.imprimirLineaNoFiscal('Total T. Débito:     '+STR(comprobanteturno.turtickets ,10,2))
err = loTm88.imprimirLineaNoFiscal('Total Cuenta Cte.:   '+STR(comprobanteturno.turctacte  ,10,2))
err = loTm88.imprimirLineaNoFiscal('Total Otras F. Pago: '+STR(comprobanteturno.turotros   ,10,2))
err = loTm88.imprimirLineaNoFiscal('                     ----------')
err = loTm88.imprimirLineaNoFiscal('TOTAL REAL CAJA:     '+STR(comprobanteturno.turtotalcaja,10,2))
err = loTm88.imprimirLineaNoFiscal('Total Caja Teorica: -'+STR(comprobanteturno.turcajateorica,10,2))
err = loTm88.imprimirLineaNoFiscal('Diferencia de Caja: ='+STR(comprobanteturno.turdiferencia,10,2))
err = loTm88.imprimirLineaNoFiscal(REPLICATE('-',40))
err = loTm88.imprimirLineaNoFiscal('')



***Busco una opción para no hacer esto:****************
err = loTm88.imprimirLineaNoFiscal(REPLICATE('-',40))
IF err
RETURN .F.
ENDIF

err = loTm88.imprimirLineaNoFiscal('ARQUEO DE CAJA')

IF err
RETURN .F.
ENDIF

err = loTm88.imprimirLineaNoFiscal('')

IF err
RETURN .F.
ENDIF

err = loTm88.imprimirLineaNoFiscal('Total Efectivo:      '+STR(comprobanteturno.turefectivo,10,2))

IF err
RETURN .F.
ENDIF

Víctor Hugo Espínola Domínguez

unread,
Dec 2, 2016, 3:13:57 PM12/2/16
to publice...@googlegroups.com
llOK = .F.
DO CASE
    CASE loTm88.imprimirLineaNoFiscal(REPLICATE('-',40))
    CASE loTm88.imprimirLineaNoFiscal('ARQUEO DE CAJA')
    CASE loTm88.imprimirLineaNoFiscal('')
    CASE loTm88.imprimirLineaNoFiscal('Total Efectivo:      '+STR(comprobanteturno.turefectivo,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Total T. Crédito:    '+STR(comprobanteturno.turtarjeta ,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Total T. Débito:     '+STR(comprobanteturno.turtickets ,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Total Cuenta Cte.:   '+STR(comprobanteturno.turctacte  ,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Total Otras F. Pago: '+STR(comprobanteturno.turotros   ,10,2))
    CASE loTm88.imprimirLineaNoFiscal('                     ----------')
    CASE loTm88.imprimirLineaNoFiscal('TOTAL REAL CAJA:     '+STR(comprobanteturno.turtotalcaja,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Total Caja Teorica: -'+STR(comprobanteturno.turcajateorica,10,2))
    CASE loTm88.imprimirLineaNoFiscal('Diferencia de Caja: ='+STR(comprobanteturno.turdiferencia,10,2))
    CASE loTm88.imprimirLineaNoFiscal(REPLICATE('-',40))
    CASE loTm88.imprimirLineaNoFiscal('')
OTHERWISE
    llOK = .T.
ENDCASE


Saludos,
Víctor.
Lambaré - Paraguay.

Fernando D. Bozzo

unread,
Dec 2, 2016, 4:52:25 PM12/2/16
to Comunidad de Visual Foxpro en Español
Excelente Victor! Muy buen uso del DO CASE, además de ser la implementación más rápida :)

Ariel Octavio D'Alfeo

unread,
Dec 6, 2016, 10:23:48 AM12/6/16
to publice...@googlegroups.com
Buenisimo Victor! lo voy a implementar, muchas gracias!
--

Ariel Octavio D'Alfeo
Córdoba, Argentina
Reply all
Reply to author
Forward
0 new messages