Silvina, probá
lo siguiente:
En tu .prg
principal agregá los siguientes variables:
IF_nPuerto:=2
//Puerto COM para uso de la impresora
IF_nVelocidad:=9600
//Velocidad para el COM
IF_cMarca:="HASAR"
IF_cModelo:="615"
lPFInicial:=(.F.)
Si las agregás en una función tenés que hacerlas públicas.
En todos los prg y funciones que
invocan al IF agregá lo siguiente al comienzo:
IF IF_cMarca<>"Ninguno"
IF !PF_Inicial()
RETURN
END
END
Agregá la siguiente función
a tu sistema:
*********************** FUNCIONES DEL CONTROLADOR
**************************
FUNCTION PF_Inicial
//Inicializa el controlador fiscal.
IF IF_cMarca<>"Ninguno"
IF lPFInicial
RETURN(.T.)
END
lPFInicial:=(.T.)
cPantalla=SAVESCREEN()
lRetorno:=(.T.)
TONO()
PF_MensInicial()
PF_BreakOnError(.T.)
IF !PF_Init( IF_cMarca,IF_cModelo, { IF_nPuerto,,, IF_nVelocidad } )
TONO()
ALERT("Verifique el estado del controlador.")
lRetorno:=(.F.)
END
//Setea velocidad
IF IF_cMarca="HASAR"
.AND. IF_cModelo="320"
IF !PF_SendCmd(160,TRIM(STR(IF_nVelocidad,6)))
TONO()
ALERT("Velocidad no aceptada.")
PF_SendCmd(160,"9600")
IF_nVelocidad:=9600
END
END
RESTSCREEN(,,,,cPantalla)
END
RETURN lRetorno
////////////////////////////////////
Lo que hay que tener en cuenta es que con las rutinas de
Claudio solo debe inicializarse el controlador UNA SOLA VEZ.
Precisamente lo que te envío es para que se inicialize una sola vez durante la ejecución del programa.
Probá y avisá si anda.
Cualquier duda consultá.
Gerardo J. Biagiotti
Analista de Sistemas
Marcos Juárez
Córdoba - Argentina
mail: biagiotti@...
MSN: gerardo_biagiotti@...
-----Mensaje original-----
De: Mazzaro Silvina
[mailto:silvina@...]
Enviado el: Viernes, 15 de Agosto
de 2003 03:12 p.m.
Para: ifclipper@...
Asunto: Re: [ifclipper] Urgente!!!
De esta función sale falso y luego no imprime.
Lo que está en rojo es lo que no entiendo, quizá debe
poner algún comando especial para Hasar (envié un ACK como dice ahí pero no
pasó nada). No sé si el tema pasa por acá.
La función PF_Sincronizar la llama desde
FUNCTION PF_Init( cMarca, cModelo, aPort ). Para este modelo la invoco así:
PF_Init('HASAR','615',{<Nro de puerto>,,, } )
Gracias.
Silvina
FUNCTION PF_Sincronizar()
* Funci¢n : Controla el estado de la impresora y lo
restablece
* de forma de dejarla preparada para generar un nuevo
comprobante
* Se usa en caso de querer cancelar un comprobante
abierto
* Entrada : Nada
* Respuesta :
* True, Si se ejecut¢ correctamente
* False, Si hubo problemas
*
LOCAL iRet
LOCAL Continuar
LOCAL TipoDocu
LOCAL CerroDocu
LOCAL StatusFiscal
LOCAL lBreakOnError := PF_BreakOnError( FALSE )
LOCAL lCancelar
STATIC Sincroniza := .F.
// La variable est tica sincroniza se usa para
saber si esta funci¢n fue
// llamada por la ejecuci¢n de un comando o llamado
por ella misma, de modo
// que si esta en TRUE sale de la funci¢n sin
ejecutarla
IF !Sincroniza
Sincroniza = .T.
//
// ESTADO DE DOCUMENTO
//
IF _Marca == "HASAR"
// Sincronizar las respuestas del
controlador!!!
// Para ello enviar un ACK y verificar que
el mismo
// responda con el NRO de PAQUETE
CORRESPONDIENTE
// SincroHasar()
COM_SEND( 1, PF_ACK )
ENDIF
Continuar := StatDoc()
StatusFiscal := PF_DatoRecibido[2]
IF _Marca == "EPSON"
ELSEIF _Marca == "HASAR"
lCancelar := FALSE
IF isBit( PF_DatoRecibido[2], 13 )
IF isBit( PF_DatoRecibido[4], 7 )
//
// Se realiz¢ al menos 1 PAGO
//
Continuar := PF_SendCMD( 68, { "CANCELA",
"1000.00", "C", "0" } )
ELSE
// Se cancela directamente
//
lCancelar := TRUE
ENDIF
ELSEIF isBit( PF_DatoRecibido[2], 14 )
//
// Cancelaci¢n de comprobante
// No fiscal, No Fiscal Homologado
//
lCancelar := TRUE
ENDIF
IF lCancelar
Continuar := PF_SendCMD( 152 )
ENDIF
CerroDocu := TRUE
ENDIF
PF_Msg( PADC( "Esta
sincronizando...", 80 ), FALSE, "W+/R" )
IF Continuar .and. IsBit( StatusFiscal, 12 )
// Se requiere cierre de D¡a
iRet := Alert( "ATENCION,
Deber Ejecutar un cierre Z" )
Continuar := FALSE
ENDIF
//
// Variable sincroniza indica
// con FALSE que termino la funci¢n
//
Sincroniza = .F.
ENDIF
PF_BreakOnError( lBreakOnError )
RETURN ( Continuar )
----- Original Message -----
From: Gerardo Biagiotti
To: ifclipper@...
Sent: Friday, August 15, 2003 5:11 PM
Subject: RE: [ifclipper] Urgente!!!
Si podés enviar el código para que lo veamos, a lo mejor podemos ayudarte más.
-----Mensaje original-----
De: Mazzaro Silvina [mailto:silvina@...]
Enviado el: Viernes, 15 de Agosto de 2003 01:47 p.m.
Para: ifclipper@...
Asunto: [ifclipper] Urgente!!!
Claudio:
Sigo con la 615. Al parecer da error cuando sincroniza, en tu rutina hay un comentario para HASAR no tengo la rutina SincroHasar() que supuestamente habría que invocar.
No sé si es la velocidad o qué pero no sé más que probar.
El programa de prueba clip502.prg me imprime correctamente lo que me indica que todo está en condiciones y el problema es mío
Cuento con tu ayuda.
Silvina Mázzaro
PS Estudio Informático
silvina@...
Tu uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de Yahoo!.
Tu uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de Yahoo!.
Tu
uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.