by Pablo » Sat Jun 15, 2013 2:08 pm
Hola adolfo si te sirve te adjunto un ejemplo en clipper , esto es para las ibm tf6.
te comento yo se muy poco de fivewin y trabajo con dbf es muy dificil pasar de dbf a mysql ?
gracias por tu respuesta
Pablo
//Inicializa puerta //
clear
pto:=0
Sn1:= Sn2:= sn3:= Sn4:= Sn5:= Sn6:= Sn7:= sn8:="N"
@ 01,01 Say "Puerto :" Get pto
@ 02,01 Say "Emitir informe X :" Get SN1 Pict "@!"
@ 03,01 Say "Emitir informe Z :" Get SN2 Pict "@!"
@ 04,01 Say "Inicio de Ventas :" Get SN3 Pict "@!"
@ 05,01 Say "Test de Impresora:" Get SN4 Pict "@!"
@ 06,01 Say "Acumuladores:" Get SN5 Pict "@!"
@ 07,01 Say "Repite linea 18:" Get SN6 Pict "@!"
@ 08,01 Say "Pld Forzado:" Get SN7 Pict "@!"
@ 09,01 Say "Cambiar horario:" Get SN8 Pict "@!"
Read
IniPortTF6(pto)
Set console off
Set Alternate to E_TF6.TXT ADDITIvE
Set Alternate On
Set century on
if Sn6="S"
error:=ImpTf6( pto, "18") && reimprimir linea
quit
endif
if Sn7="S"
error:=ImpTf6( pto, "90") && PLD FORZADO
quit
endif
if Sn5="S"
error:=ImpTf6( pto, "482") && acumuladores
@ 5,0 Say error
quit
endif
if Sn8="S"
horanew:=Space(4)
@ 10,01 Say "Ingrese hora (HHMM):" Get horanew pict "@R 99:99"
Read
datonew:=Subs(Dtoc(Date()),4,2)+Subs(Dtoc(Date()),1,2)+Subs(Dtoc(Date()),7,4)+horanew
error:=ImpTf6( pto,"44"+Datonew) && cambio de fecha hora
@ 5,0 Say error
quit
endif
if Sn1="S"
ImpTf6( pto, "01") && Reporte X
Return
endif
if Sn2="S"
ImpTf6( pto, "021") && Reporte Z
endif
if Sn3="S"
ImpTf6( pto, "32") && Inicio DE ventas
Quit
endif
if Sn4="S"
ImpTf6( pto, "38") && Test Impresora
*ImpTf6( pto, "41111") && seteo indicadores para cambio
quit
endif
/ imprime en TF6 //
func ImpTF6( nPurt, cString )
local nRest:=0 //len(cCadena )
local r
local lret:= .t.
local nEspera := 0
local nMaxEsp := 10
local cStrRet :=""
Local cLeePto :=""
cCadena:= chr( cton("87",16))+cString+ chr( cton("88", 16))
*Cadena:= chr("87")+cString+ chr("88")
nRest := len(cCadena)
while nRest > 0 .and. lRet
if com_dsr(nPurt)
cCadena := right(cCadena, nRest)
nRest := com_send(nPurt, cCadena)
cLeePto:=""
cStrRet:=""
while asc(cLeePto) != 13
cLeePto=com_read(nPurt,1)
if asc(cLeePto)== 10 //
cStrRet="OK"
lRet:=.f.
exit
else
if asc(cLeePto)!=0
cStrRet+= cLeePto
endif
if nEspera >= nMaxEsp
cStrRet+=" TIEMPO DE ESPERA TERMINADO "+dtoc(Date())+" "+Time()
lRet:=.f.
exit
else
inkey(.1)
nEspera+=0.1
endif
endif
endd
elseif nEspera >= nMaxEsp
if alert("No hay respuesta de la Impresora ;" +;
"Revise el estado del dispositivo.",{"Si","No"}) == 2
lRet := .f.
cStrRet:="No hubo Respuesta de la Impresora "+dtoc(Date())+" "+Time()
else
nEspera := 0
end
else
inkey(0.1)
nEspera += 0.1
endif
endd
return cStrRet
// Inicializa la puerta serial para impresora TF6
func IniPortTF6(nPurt, nBaud, cParidad, nLarBit, nBitPar, cMsgError)
local lRet := .f.
*nPurt := 1
nBaud := 19200
cParidad := "N"
nLarBit := 8
nBitPar := 1
cMsgError := "COM" + str(nPurt, 1)
if com_open(nPurt, 1000, 1000)
if com_init(nPurt, nBaud, cParidad, nLarBit, nBitPar)
lRet := .t.
com_hard( nPurt, .t., .t. )
else
com_close(nPurt)
alert("Puerta serial " + cMsgError + " no pudo inicializarse")
end
else
alert("Puerta serial " + cMsgError + " no pudo abrirse")
end
return lRet
Function v_error(coderror)
Ret:=.F.
do case
Case Coderror="003"
Alert("Monto Total del Item No Coincide(003)..!")
Case Coderror="005"
Alert("Memoria Flash fiscal Casi Llena(005)..!")
Case Coderror="006"
Alert("Monto Total de la Transaccion en Cero o Negativo(006)..!")
Case Coderror="007"
Alert("Total de la transaccion No coincide al Total Fiscal(007)..!")
Case Coderror="008"
Alert("Se ha enviado Caracteres no Imprimible(008)..!")
Case Coderror="012"
Alert("Linea de Comentarios Excedidas(012)..!")
Case Coderror="013"
Alert("Impresora No Responde revisar conexiones y encendido(013)..!")
Case Coderror="014"
Alert("Error ocurrido al Leer Memoria flash fiscal(014)..!")
Case Coderror="015"
Alert("Error al Escribir en la Memoria Flash Fiscal(015)..!")
Case Coderror="019"
Alert("Secuencia de comandos no Valida(019)..!")
Case Coderror="025"
Alert("descuento mayor al 50% (025)..!")
Case Coderror="040"
Alert("Impresora No termina de Imprimir(040)..!")
inkey(5)
Ret:=.t.
Case Coderror="043"
Alert("Falta Papel o la Tapa de Impresora est Abierta(043)..!")
Ret:=.T.
Case Coderror="045"
Alert("No Hay Energia Suficiente para Procesar el comando(045)..!")
Ret:=.T.
Case Coderror="059"
Alert("comando no puede hacerse en periodo de Ventas(059)..!")
Case Coderror="060"
Alert("comando no puede hacerse en periodo de Cierre(059)..!")
Case Coderror="067".or. Coderror="068"
Alert("Debe Ejecutar el Informe Z (067-068)..!")
Case Coderror="076".or.coderror="077"
Alert("Error Grave (076-077)..!")
Case Coderror="080".or. coderror="082"
Alert("Error de impresion Esta la tapa Abierta o se termino el Papel(080)..!")
inkey(5)
Ret:=.T.
Endcase
Return(Ret)