Page 1 of 1

IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Thu Dec 08, 2016 11:32 pm
by joseluisysturiz
Saludos, necesito instalar la impresora fiscal BIXOLON SRP-350 en un sistema de facturacion, no se si con cualquier modelo serviria, estoy bajando el emulador desde la pagina http://www.impresoras-fiscales.com.ar/emulador.htm, alguien tiene las librerias (dll, ocx), manual de comando con los samples o algun codigo que me de alguna idea de como usar esa imresora.? Habia instalado uns Bematech y funciona al pelo, pero con esta no tengo ni idea, de antemano gracias por las sugerencias, ejemplos y ayudas que puedan darme, saludos, gracias... :shock:

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Fri Dec 09, 2016 4:26 am
by mag071
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

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Fri Dec 09, 2016 4:51 am
by joseluisysturiz
mag071 wrote: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

Parroquia de guarenas..? tenia tiempo sin saber de usted, ya me suscribi en la pagina, pero no me ha llegado algun correo de TheFactory para acceder y no me deja bajar los utilitarios, por casualidad tendras algun sample prg y la lib/ocx a usar.? este es mi correo, joseluisysturiz@yahoo.com,agradecido por si o por no, saludos,gracias... :shock:

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Sat Dec 10, 2016 2:12 am
by mag071
Saludos Vecino :-)

No, solo la use para implementar un software de apuesta de loterías legal aquí en Venezuela hace 8 años. usaba imagínate el FWH 8.06 :-)

La DLL en ese tiempo se llamaba TFHKADIR.DLL
y se usaba para casi todas las operaciones la funcion sendcmd()
cambiando solo los parámetros.

En ese tiempo uno iba a esos sitios como thefactory o bematech y ellos te prestaban hasta una impresora con un modulo solo para desarrollador, pero dudo que ahora con la situación país hagan lo mismo. los costos tanto de las impresoras fiscales como de las memorias fiscales son de terror en estos momentos.

Saludos por aquí estamos a la orden.

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Sat Dec 10, 2016 7:49 am
by luisduque
Jose Luis Saludos

Te dejo un link con los dll y ejemplos

https://www.dropbox.com/sh/r3dz251ykn1y ... JYKSa?dl=0

Cell: 0414 7036220
correo: accasoft@hotmail.com

Cualquier duda a la orden

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Sat Dec 10, 2016 5:08 pm
by joseluisysturiz
luisduque wrote:Jose Luis Saludos

Te dejo un link con los dll y ejemplos

https://www.dropbox.com/sh/r3dz251ykn1y ... JYKSa?dl=0

Cell: 0414 7036220
correo: accasoft@hotmail.com

Cualquier duda a la orden
Saludos colega, parroquia, si no es mucho pedir, tendrias un pequeño sample .prg por lo menos para tener idea de como iniciar.? no he manejado impresoras fiscales...estoy descangando lo que me enviastes, saludos, gracias... :shock:

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Mon Dec 26, 2016 9:10 am
by luisduque
Jose Luis

Disculpa que no te había respondido, pero si necesitas un ejemplo en la tarde coloco. Es que estaba viajando.

Re: IMPRESORA BIXOLON SRP-350 VENEZUELA

Posted: Mon Dec 26, 2016 1:35 pm
by joseluisysturiz
luisduque wrote:Jose Luis

Disculpa que no te había respondido, pero si necesitas un ejemplo en la tarde coloco. Es que estaba viajando.
Saludos colega, esta bien, si quieres lo mandas a mi privado o lo dejas aca en el foro para compartirlo, gracias... :shock: