Saludos Vecino
Yo lo hago con impresoras fiscales de apuestas aquí en Venezuela
http://thefactoryhka.com/ve/
Esta es la pagina web de las personas autorizadas que dan soporte tecnico.
alli tienes una opcion de utilitario donde bajas manuales y demas.
Static Function AbroDllPrinter()
LOCAL lRet:=.F.
LOCAL cDllName:="TFHKADIR.DLL"
hFiscalDll:=LoadLib32(cDllName)
if Abs( hFiscalDLL ) <= 32
MsgAlert( "Error code: " + LTrim( Str( hFiscalDLL ) ) + " loading " + cDllName )
lRet:=.F.
ELSE
lRet:=.T.
endif
Return lRet
DLL32 FUNCTION CheckFprinter() AS LONG PASCAL FROM "CheckFprinter" LIB hFiscalDll
DLL32 FUNCTION OpenFpctrl( lpPortName AS LPSTR ) AS LONG PASCAL FROM "OpenFpctrl" LIB hFiscalDll
DLL32 FUNCTION SendCmd( @status AS LONG, @error AS LONG, cmd AS LPSTR ) AS LONG PASCAL FROM "SendCmd" LIB hFiscalDll
DLL32 FUNCTION ReadFpStatus( @status AS LONG, @error AS LONG ) AS LONG PASCAL FROM "ReadFpStatus" LIB hFiscalDll
DLL32 FUNCTION CloseFpctrl() AS LONG PASCAL FROM "CloseFpctrl" LIB hFiscalDll
DLL32 FUNCTION UploadStatusCmd( @status AS LONG, @error AS LONG, cmd AS LPSTR, cfile AS LPSTR ) AS LONG PASCAL FROM "UploadStatusCmd" LIB hFiscalDll
DLL32 FUNCTION UploadStatusCmdDin( @status AS LONG, @error AS LONG, cmd AS LPSTR, Cadena AS LPSTR ) AS LONG PASCAL FROM "UploadStatusCmdDin" LIB hFiscalDll
//Ejemplo de como sacar un reporte x
MSGSTOP("IMPRESION DE REPORTE X IMPRESORA FISCAL","PULSE UNA TECLA PARA IMPRIMIR")
cmd="I0X"
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
ENDIF
//Esto es un ejemplo de una factura lo unico es que es para apuesta de loterias y es distintos los comandos cmd.
//pero para que tengas una idea.
IF lTituloLot
lTituloLot:=.F.
lYaPase:=.T.
IF nI > 1
cmd="3"
if SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
endif
ENDIF
cFecha:=SubStr(StrZero(Year(DATE()),4),3,2)+;
StrZero(Month(DATE()),2)+;
StrZero(Day(DATE()),2)
cHoraSorteo:=::NombreLoterias(aDat9[nI,1],4)
cNumeroSorteo:=::NumeroSorteo(aDat9[nI,1])
cmd:="!"+::NombreLoterias(aDat9[nI,1],1)+cFecha+cHoraSorteo+cNumeroSorteo+::NombreLoterias(aDat9[nI,1],3)
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
EndIf
if Len(Alltrim(aDat9[nI,3])) <> nAuxLen
nAuxLen:= Len(Alltrim(aDat9[nI,3]))
lYaPase:=.T.
EndIf
IF lYaPase
lYaPase:=.F.
IF Len(Alltrim(aDat9[nI,3])) = 2 .and. aDat9[nI,8]=1
cmd:="# COLA-->(1:100) "+AllTrim(UPPER(aDat9[nI,2]))
ELSEIF Len(Alltrim(aDat9[nI,3])) = 3 .and. aDat9[nI,8]=1
cmd:="# TRIPLE FIJO(1:1000) "+AllTrim(UPPER(aDat9[nI,2]))
ENDIF
IF Len(Alltrim(aDat9[nI,3])) = 2 .and. aDat9[nI,8]=2
cmd:="# COLA+SIGNO (1:1200) "+AllTrim(UPPER(aDat9[nI,2]))
ELSEIF Len(Alltrim(aDat9[nI,3])) = 3 .and. aDat9[nI,8]=2
cmd:="# TRIP.FIJO+SIGNO(1:12000) "+AllTrim(UPPER(aDat9[nI,2]))
ENDIF
IF Len(Alltrim(aDat9[nI,3])) = 2 .and. aDat9[nI,8]=3
cmd:="# ANIMALITOS (1:32) "+AllTrim(UPPER(aDat9[nI,2]))
ENDIF
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
ENDIF
//1234567890
cPrecio:=Alltrim(str(aDat9[nI,4]))
if At(".", cPrecio) > 0
nPunto := At(".", cPrecio)
else
cPrecio:=cPrecio+".00"
nPunto := At(".", cPrecio)
endif
cCentimos:=SUBSTR(cPrecio,nPunto+1,2)
IF len(cCentimos) = 0
cCentimos:="00"
ENDIF
IF len(cCentimos) = 1
cCentimos:=cCentimos+"0"
ENDIF
cEntero:=SUBSTR(cPrecio,1,nPunto-1)
nCantidad:= Round(aDat9[nI,4], 2)
nEntero := Int(nCantidad)
nCents := nCantidad - nEntero
IF aDat9[nI,8]=1
cmd:=["]+STRZERO(VAL(cEntero),8)+STRZERO(VAL(cCentimos),2)+"J"+Alltrim(Str(nI))+")"+aDat9[nI,3]
ELSEIF aDat9[nI,8]=2
cmd:=["]+STRZERO(VAL(cEntero),8)+STRZERO(VAL(cCentimos),2)+"J"+Alltrim(Str(nI))+")"+padr(aDat9[nI,5],12)+" "+aDat9[nI,3]
ELSEIF aDat9[nI,8]=3 //NOMBREANIMAL
cmd:=["]+STRZERO(VAL(cEntero),8)+STRZERO(VAL(cCentimos),2)+"J"+Alltrim(Str(nI))+")"+padr(::NombreAnimal(aDat9[nI,3]),12)+" "+aDat9[nI,3]
ENDIF
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
NEXT
IF nI > 1
cmd:="3"
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
ENDIF
cmd:="$"
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON LA IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
nI:=0
For nI:=1 to len(::aSeriales)
cSerial01:=Alltrim(::aSeriales[nI,1])
cmd:=[(]+cSerial01
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("CODIGO DE VALIDACION CON PROBLEMA","INFORME A SU COMERCIALIZADOR")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
NEXT
cCop:=StrZero(VAL(::cString),5)+StrZero(Val(oLoterwin:xTaq),2)
cmd:=[)B0]+Alltrim(cCop)
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON LA IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
cmd:="# Fecha de Juego "+DiaSemana(oLoterwin:dFechaUnica)+" "+Dtoc(oLoterwin:dFechaUnica)
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF
cmd:="*"
IF SendCmd(@status, @error, cmd) = 0
MSGSTOP("PROBLEMA CON LA IMPRESORA FISCAL","REVISE IMPRESORA FISCAL")
Logfile("c:\Vendelot\auditor.log",{"Problema IFA "+cmd})
ENDIF