fastpho,
Não será necessário utilizar:
Espero que resolva.COBOL Code:
* 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
fastpho,
Não será necessário utilizar:
Espero que resolva.COBOL Code:
* 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
fastpho, mirando el prototipo C de la función, vemos:
CPP Code:
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 Code:
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 Code:
CALL FUNC WITH STDCALL RETURNING CODIGO-CmImpresor.
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícalehaciendo clic en su Nick
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 Rui
COBOL Code:
CALL FUNC WITH STDCALL USING BY REFERENCE CODIGO-CmImpresor returning CODIGO-CmImpresor. CALL FUNC WITH STDCALL RETURNING CODIGO-CmImpresor.
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...
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.-
Laura, como ha dicho Josber, yo no las uso. Pero dinos qué problema tienes, técnicamente te podremos ayudar.
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícalehaciendo clic en su Nick
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
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.
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.cbr
Lineas de Programa:Code:[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
COBOL Code:
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. *
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..
There are currently 5 users browsing this thread. (0 members and 5 guests)