0

![]() |
![]() |
Gran amigo y Guru de COBOL |
fastpho,
Não será necessário utilizar:
Espero que resolva.COBOL Código:
* define na Working 01 WSRESULT PIC S9(009) COMP-5. CALL FUNC WITH STDCALL USING BY REFERENCE CODIGO-CmImpresor RETURNING WSRESULT.
Un saludo,
Rui Pinto
![]() |
![]() |
Administrador |
@fastpho, mirando el prototipo C de la función, vemos:
CPP Código:
int getPrinterStatus( void )
int - es el Integer, equivalente a PIC S9(9) COMP-5 y es lo que la función devuelve.
void - quiere decir NADA, o sea que no hay parámetros a pasar para esta función.
Ahora, viendo cómo lo haces tú:
COBOL Código:
CALL FUNC WITH STDCALL USING BY REFERENCE CODIGO-CmImpresor.
Le estás pasando un puntero (la dirección del campo CODIGO-CmImpresor) y por el contrario no recibes el valor Integer que devuelve dicha función.
La forma correcta de llamarla sería:
COBOL Código:
CALL FUNC WITH STDCALL RETURNING CODIGO-CmImpresor.
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Senior |
Gracias Kuk y Rui voy a probar y despues cuento como me fue
---------- Post añadido : 13:29 ---------- Post anterior : 13:24 ----------
Funciona de las dos maneras Gracias Kuk y RuiCOBOL Código:
CALL FUNC WITH STDCALL USING BY REFERENCE CODIGO-CmImpresor returning CODIGO-CmImpresor. CALL FUNC WITH STDCALL RETURNING CODIGO-CmImpresor.
![]() |
![]() |
Acabo de llegar... |
@Kuk, Hola.. Necesito hacer funcionar la impresora EPSON TM 900 nueva generación y no encuentro la forma de usar la OCX o la DLL.. Vi en el foro que la están usando.. me pueden ayudar x favor?
Gracias...
![]() |
![]() |
Super Moderador |
@Laura, Kuk, no está usándo ese controlador, supongo que por que aquí en España, fiscalmente no es obligatorio, el que te tendría que ayudar es @fastpho, que parece ser que ha conseguido ponerlo en marcha. Lo único que ha hecho Kuk y otros, y no es poco, es ayudar con un problema.
Un saludo.-
![]() |
![]() |
Administrador |
@Laura, como ha dicho @Josber, yo no las uso. Pero dinos qué problema tienes, técnicamente te podremos ayudar.
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Senior |
@Laura, Hola Laura , tendrias que bajar desde la pagina web de epson argentina , yo logre hacerla andar yo estoy utilizando EpsonFiscalDriver.DLL para facturar y sacar informes
bajatelos y te ayudo
Suerte
![]() |
![]() |
Acabo de llegar... |
Hola.. buenísimo.. yo tengo la DLL (EpsonFiscalInterface.DLL) y la OCX (comEsponFiscalDriver.OCX) q me enviaron de Espon, incluso fui a un curso pero no supieron decirme como usarlas en el Fujitsu. La OCX intento incluirla como un Custom Control pero pero me sale una leyenda This is not a custom control file.. Podés pasarme los códigos para incluir la DLL? NO encuentro la forma.. Muchísimas gracias..
---------- Post añadido : 16:07 ---------- Post anterior : 15:59 ----------
Gracias.. Te cuento rápido mi problema. Espon provee una DLL para la impresora fiscal para lenguaje de alto nivel y también una OCX para lenguaje de bajo nivel.. No se como utilizar la DLL en el Fujitsu y así utilizarla. Tampoco puedo incluir la OCX como custom control porq me dice This is not a custom control file y tampoco conozco otra forma de utilizarla. Fui a un curso en Espon y no hay nadie q desarrolle en Fijitsu, somos pocos y entonces no tienen las respuestas para ayudarnos.
![]() |
![]() |
Senior |
@Laura, Si lees bien el problema en paginas anteriores en el foro la ocx no funciona con pwc y como te dije tenes que usar la libreria EpsonFiscalDriver.DLL que funciona muy bien.
Tenes que copiar tal libreria donde compile tu programa y en el archivo cobol85.cbr incluir las llamadas de las funciones que necesitas te paso unas lineas de programa y lo que debe incluir
el archivo cobol85.cbr
Lineas de Cobol85.cbrCODE Código:
[TPV.ENTRY] AddDataField=EpsonFiscalDriver.DLL ClosePort=EpsonFiscalDriver.DLL GetAPIVersion=EpsonFiscalDriver.DLL GetExtraField=EpsonFiscalDriver.DLL GetReceivedFrame=EpsonFiscalDriver.DLL GetSentFrame=EpsonFiscalDriver.DLL OpenPort=EpsonFiscalDriver.DLL Purge=EpsonFiscalDriver.DLL SendCommand=EpsonFiscalDriver.DLL getBaudRate=EpsonFiscalDriver.DLL getComPort=EpsonFiscalDriver.DLL getExtraFieldCount=EpsonFiscalDriver.DLL getFiscalStatus=EpsonFiscalDriver.DLL getLastError=EpsonFiscalDriver.DLL getPrinterStatus=EpsonFiscalDriver.DLL getProtocolType=EpsonFiscalDriver.DLL getReturnCode=EpsonFiscalDriver.DLL getState=EpsonFiscalDriver.DLL setBaudRate=EpsonFiscalDriver.DLL setComPort=EpsonFiscalDriver.DLL setProtocolType=EpsonFiscalDriver.DLL setComPort=EpsonFiscalDriver.DLL setLog=EpsonFiscalDriver.DLL
Lineas de Programa:COBOL Código:
MOVE "GetAPIVersion" TO FUNC-EPSON-LIB. CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION. *** set log ** move spaces to FUNC-EPSON-LIB. ** MOVE "SetLog" TO FUNC-EPSON-LIB. ** MOVE "./" TO InBuffer. ** MOVE 0 TO BufferLen. ** CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE InBuffer ** * BY VALUE BufferLen ** COM SET move spaces TO FUNC-EPSON-LIB. MOVE "setComPort" TO FUNC-EPSON-LIB. MOVE 1 TO sPort *> activamos COM1 CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sPort. ** BAUDIOS SET MOVE spaces TO FUNC-EPSON-LIB. MOVE "setBaudRate" TO FUNC-EPSON-LIB. move 9600 TO sBaudio *> set baudios CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sBaudio. ** MOVE spaces TO FUNC-EPSON-LIB. ** MOVE "getBaudRate" TO FUNC-EPSON-LIB. ** CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE sBaudio. ** DISPLAY sBaudio ** PROTOCOL SET move spaces TO FUNC-EPSON-LIB. MOVE "setProtocolType" TO FUNC-EPSON-LIB. MOVE 1 TO SProtocol. CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE SProtocol. *> OPEN PORT. move spaces TO FUNC-EPSON-LIB. MOVE "OpenPort" TO FUNC-EPSON-LIB. CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION. move spaces TO FUNC-EPSON-LIB. MOVE "getLastError" TO FUNC-EPSON-LIB. CALL FUNC-EPSON-LIB WITH STDCALL RETURNING iError. IF iError = 0 then MOVE "ok" to "Text" OF CmCOMUNICACION. IF iError = 1 then MOVE "Puerto ocupado" to "Text" OF CmCOMUNICACION. IF iError = 2 then MOVE "Puerto invalido" to "Text" OF CmCOMUNICACION. IF iError = 10 then MOVE "Error de escritura verifique el impresor" to "Text" OF CmCOMUNICACION. ** display iError * * * MOVE "ClosePort" TO FUNC-EPSON-LIB. * CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION. *
![]() |
![]() |
Acabo de llegar... |
Estuve probando con un ejemplo q pusieron justamente con lo de "setComPort" y copié la DLL en mi release pero cuando lo ejecuto me da error, como q no reconoce el setComPort, lo moví a la variable también.. pero con éste ejemplo q vos me pusiste voy a seguir probando mañana. Muchas gracias.. ojalá también pueda ayudar en algo..
Actualmente hay 3 usuarios viendo este tema. (0 miembros y 3 visitantes)
Marcadores