Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
Retroceder   COBOL Foro > Programación e Informática > Hardware > Periféricos
Periféricos Dudas y opiniones sobre diferentes periféricos.
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Petición] ListView con impresión multipágina FabioYeyo Controles y Componentes (DLL/OCX) 1 13 de mayo de 2017 10:32
[Información] Códigos de errores de RM/Cobol jmeza RM/COBOL 1 6 de mayo de 2017 16:56
Impresión 3D - hasta dónde va a llegar Kuk Espacio "Offtop" 3 18 de abril de 2017 17:57
[Información] Impresión a doble cara JRBonafonte PowerFORM 12 20 de julio de 2016 13:41
[Información] Códigos de Error de PowerForm Josber PowerFORM 0 29 de junio de 2016 09:46
Respuesta
 
Herramientas

  #1
Antiguo 1 de mayo de 2017, 09:33
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)enero 2015
España
UbicaciónMadrid
Edad35 años
Última Actividad25.02.2020 19:38
PROCEDURE DIVISION
PostsPosts: 1.451
Ha dicho GraciasEnviado: 335
Ha recibido agradecimientosRecibido: 563
Mejores respuestasSoluiones: 88
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Impresora Impresión códigos de escape por CMD

Las impresoras nunca han sido mi punto fuerte. Hace unos días uno de mis clientes se cambió a Windows 7 x64 y le dejó de funcionar mi DLL compilada en NetExpress 3.1 que imprimía los tickets.

La imresión se hacía de manera clásica:

Código COBOL:
  1.  SELECT PRINT-FILE
  2.  ASSIGN TO PRINTER WS-PUERTO

No logré hacerlo funcionar, siempre me daba FS=9. Luego encontré este artículo de MF, según el cual el Run-Time de NetExpress inferior a la versión 5.1 daba este problema: Runtime error 9/013 when attempting to print to LPTn: where the physical printer port is mapped via a NET USE statement on Windows 7 - Enterprise Server Knowledge Base - Enterprise Server - Micro Focus Community

También en ese artículo dicen de utilizar las rutinas para imprimir vía Windows, pero yo nunca las he usado: Demo - The PC_PRINTER library routines - Net Express/Server Express Knowledge Base - Net Express / Server Express - Micro Focus Community


Así que para solucionar rápidamente el tema, lo que hice fue escribir en un fichero TXT y luego lanzar el comando siguiente en PowerCOBOL:

Código COBOL:
  1.          MOVE SPACES TO TICK-PRINT
  2.          
  3.          STRING "CMD /c Type Print.txt>" LNK-PORT
  4.              DELIMITED BY SIZE INTO TICK-PRINT
  5.          
  6.          INVOKE POW-SELF "Execute" USING TICK-PRINT POW-SWHIDE

Y funciona. El problema es que han dejado de funcionar los códigos de escape (apertura de cajón, y comandos de diferentes tamaños de letras).

¿A qué se debe esto, es por el tema de pasar por un TXT en vez de llamar directamente la impresora o se debe configurar la impresora de alguna forma particular?

Gracias de antemano por vuestras respuestas.


Dasije, Rapinto, Nitzer,


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk está en línea   Responder Con Cita
  #2
Antiguo 1 de mayo de 2017, 14:12
IDENTIFICATION DIVISION
Nitzer
Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Nitzer
DATA DIVISION
Forero desde (Registrado)noviembre 2015
España
UbicaciónAlmeria
Edad54 años
Última Actividad22.02.2020 13:58
PROCEDURE DIVISION
PostsPosts: 86
Ha dicho GraciasEnviado: 35
Ha recibido agradecimientosRecibido: 52
Mejores respuestasSoluiones: 4
Medallas recibidas: 1Medallas: Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por aportar conocimientos excepcionales 
ReputaciónReputación: 10
Nitzer is on a distinguished road Nitzer is on a distinguished road Nitzer is on a distinguished road Nitzer is on a distinguished road Nitzer is on a distinguished road Nitzer is on a distinguished road
Predeterminado

Yo utilizaba el dosprinter, hasta donde recuerdo, con el podias hacer de todo.
Nitzer no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk ( 1 de mayo de 2017)
  #3
Antiguo 2 de mayo de 2017, 00:08
IDENTIFICATION DIVISION
Rapinto
Gran amigo del Foro y Guru de COBOL
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
Forero desde (Registrado)febrero 2015
Portugal
UbicaciónPorto
Última Actividad29.01.2018 20:23
PROCEDURE DIVISION
PostsPosts: 246
Ha dicho GraciasEnviado: 19
Ha recibido agradecimientosRecibido: 215
Mejores respuestasSoluiones: 47
Medallas recibidas: 2Medallas: Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ReputaciónReputación: 14
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Kuk,

Tive esse problema e, se me recordo bem, tinha a ver com o ficheiro txt.
Não me recordo bem mas penso que tínhamos que utilizar o "LINE SEQUENTIAL" em vez
do SEQUENTIAL.
Um deles não aceita códigos escape.

Saludos,
Rui
Rapinto no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk ( 2 de mayo de 2017)
  #4
Antiguo 8 de mayo de 2017, 21:08
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
Reino Unido
UbicaciónJerez De La Frontera (cádiz)
Última Actividad16.02.2020 22:13
PROCEDURE DIVISION
PostsPosts: 166
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 75
Mejores respuestasSoluiones: 5
ReputaciónReputación: 11
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Yo en NetCOBOL tengo realizado una rutina para impresión RAW, es el modo de que no filtra los códigos de escape en la impresión.

Es un ejecutable que pasas parametro del archivo de texto y el nombre de la impresora en Windows.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 8 de mayo de 2017, 23:25
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)enero 2015
España
UbicaciónMadrid
Edad35 años
Última Actividad25.02.2020 19:38
PROCEDURE DIVISION
PostsPosts: 1.451
Ha dicho GraciasEnviado: 335
Ha recibido agradecimientosRecibido: 563
Mejores respuestasSoluiones: 88
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Dasije, estoy intentando armar lo mismo pero en una DLL. Pero tengo problemas que aún no he resulto. Dependiendo del entorno de dónde lo hago (estoy mirando en C++, en NetExpress y directamente en PowerCOBOL) tengo diferentes problemas.

La DLL hecha en C++ me da GetLastError 87 que quiere decir "Parámetro incorrecto". Aunque lo hago según el ejemplo de MSDN, pasando en OpenPrinterA el último parámetro como NULL.

En Power OpenPrinterA pasa bien pero no sé por qué razón en WrtiePrinter me da GetLastError 6 (Handle incorrecto)...

¿Puedes compartir el código de tu programa?

Rapinto, lo escribo desde el principio como LINE-SECUENCIAL que es la opción por omisión.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk está en línea   Responder Con Cita
  #6
Antiguo 9 de mayo de 2017, 00:23
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
Reino Unido
UbicaciónJerez De La Frontera (cádiz)
Última Actividad16.02.2020 22:13
PROCEDURE DIVISION
PostsPosts: 166
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 75
Mejores respuestasSoluiones: 5
ReputaciónReputación: 11
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Código COBOL:
  1. @OPTIONS BINARY(BYTE)
  2.  IDENTIFICATION DIVISION.
  3.  PROGRAM-ID     PRINT-RAW.
  4.  AUTHOR.        Doug Brown.
  5.  INSTALLATION.  FUJITSU COBOL (GENERIC).
  6.  SECURITY.      COPYRIGHT (C) 1999 FUJITSU SOFTWARE CORPORATION.
  7. *
  8. * Program is passed a text file and printer name and prints the
  9. *  file to the printer. It is assumed that the text file may contain
  10. *  printer control characters and should be passed to the printer
  11. *  "as is" i.e. it is read as a sequential file and passed to the
  12. *  printer in blocks.
  13. * The program is designed to be invoked from the command line, or
  14. *  from the Windows CreateProcess function, so that it executes
  15. *  asynchronously.
  16. * Command line format is:
  17. *
  18. * FSC-SPOOL-FILE.EXE "Text file name" "Printer name"
  19. *
  20. * The quotes are only required if the text file or printer name
  21. *  includes spaces.
  22. *-----------------------------------------------------------------
  23.  ENVIRONMENT DIVISION.
  24.  CONFIGURATION SECTION.
  25.  SOURCE-COMPUTER. WINDOWS.
  26.  OBJECT-COMPUTER. WINDOWS.
  27.  SPECIAL-NAMES.
  28.      ARGUMENT-NUMBER IS ARGUMENT-NUMBER
  29.      ARGUMENT-VALUE  IS ARGUMENT-VALUE
  30.      SYMBOLIC CONSTANT
  31.  
  32.         *> Program Copyright Information
  33.         PROGRAM-NAME             IS "CBLEXEC"
  34.         PROGRAM-SOURCE-DATE      IS "April 5 1999"
  35.         PROGRAM-SERIAL-NUMBER    IS "DAB/FSC/000001"
  36.         PROGRAM-DESCRIPTION      IS
  37.         "Fujitsu COBOL Spool Print File"
  38.         PROGRAM-COPYRIGHT        IS
  39.         "Copyright (C) 1999 Fujitsu Software Corporation"
  40.         PROGRAM-AUTHOR           IS "Doug Brown"
  41.         PROGRAM-BUILD-TYPE       IS "PRODUCTION"
  42.         PROGRAM-CHARACTER-SET    IS "ASCII"
  43.         PROGRAM-CHARACTER-TYPE   IS "SBCS".
  44. *-----------------------------------------------------------------
  45.  INPUT-OUTPUT SECTION.
  46.  FILE-CONTROL.
  47.      SELECT Print-File ASSIGN TO Print-File-Name
  48.        ORGANIZATION SEQUENTIAL
  49.        FILE STATUS IS Print-File-Status
  50.      .
  51.  DATA DIVISION.
  52.  
  53.  FILE SECTION.
  54.  
  55.  FD Print-File.
  56.  01 Print-Record        PIC X(16384).
  57.  
  58.  WORKING-STORAGE SECTION.
  59.  
  60. * Note: Ensure that Print-Buffer is always the same size
  61. *  as Print-Record
  62.  01 Print-Buffer        PIC X(16384).
  63.  
  64.  01 Print-File-Name PIC X(255) VALUE SPACES.
  65.  
  66.  01 Print-File-Status   PIC X(2).
  67.  
  68.  01 Record-Bytes        PIC 9(9) COMP-5.
  69.  
  70.  01 Bytes-Written       PIC 9(9) COMP-5.
  71.  
  72.  01 Printer-Name          PIC X(255) VALUE SPACES.
  73.  
  74.  01 Printer-Handle  PIC 9(9) COMP-5.
  75.  
  76.  01 Return-Value        PIC S9(9) COMP-5.
  77.  
  78.  01 Doc-Info.
  79.     03 pDocName    USAGE POINTER.
  80.     03 pOutputFile USAGE POINTER VALUE NULL.
  81.     03 pDatatype   USAGE POINTER.
  82.  
  83.  01 Datatype.
  84.    03 PIC X(3) VALUE "RAW".
  85.    03 PIC X    VALUE X"00".
  86.  
  87.  01 Number-of-Arguments   PIC 9(2) COMP-5.
  88.  
  89.  01 End-of-File-Flag    PIC 9 VALUE ZERO.
  90.  88 END-OF-FILE VALUE 1.
  91.  
  92.  01 Offset      PIC 9(5) COMP-5.
  93.  
  94.  01 PRINTER-d.                                            
  95.           05 pDatatyp pic x(4) value low-value.                                            
  96.           05 pDevMod  pic x(4) value low-value.                                            
  97.           05 DesiredAccess pic s9(9) comp-5 value 8.
  98. *------------------------------------------------------------------
  99.  PROCEDURE DIVISION.
  100.  
  101.       ACCEPT Number-of-Arguments FROM ARGUMENT-NUMBER
  102. *     DISPLAY Number-of-Arguments
  103.  
  104.       IF Number-of-Arguments NOT = 2
  105. * <<Check what action is appropriate to notify user of an error>>
  106.          DISPLAY "Argumentos incorrectos"
  107.          EXIT PROGRAM
  108.       END-IF
  109.  
  110.       ACCEPT Print-File-Name FROM ARGUMENT-VALUE
  111.       ACCEPT Printer-Name FROM ARGUMENT-VALUE
  112. * Find end of printer name and place a null byte to terminate
  113. *  the string.
  114.       MOVE FUNCTION LENG (Printer-Name) TO Offset
  115.       PERFORM UNTIL Printer-Name (Offset:1) NOT = SPACE
  116.         SUBTRACT 1 FROM Offset
  117.       END-PERFORM
  118.       ADD 1 TO Offset
  119.       MOVE X"00" TO Printer-Name (Offset:1)
  120.  
  121. * Set up the Doc-Info structure for use with the StartDocPrinter
  122. *  function.
  123.       MOVE FUNCTION ADDR (Print-File-Name) TO pDocName
  124.       MOVE FUNCTION ADDR (Datatype)        TO pDatatype  
  125.  
  126. * Open the printer.
  127. *  <<Insert explanation as to why some functions are called with the
  128. *   "A" appended and others are not.>>
  129.       CALL "OpenPrinterA" WITH STDCALL
  130.           USING BY REFERENCE Printer-Name
  131.                 BY REFERENCE Printer-Handle
  132.                 BY VALUE     0
  133.           RETURNING Return-Value.
  134.  
  135.       IF Return-Value = 0
  136.         DISPLAY "Error en la apertura de la impresora"
  137.         EXIT PROGRAM
  138.       END-IF
  139.    
  140.       CALL "StartDocPrinterA" WITH STDCALL
  141.           USING BY VALUE     Printer-Handle
  142.                 BY VALUE     1
  143.                 BY REFERENCE Doc-Info
  144.           RETURNING Return-Value
  145.       IF Return-Value = 0
  146.         DISPLAY "Problema de iniciar el documento a imprimir"
  147.         EXIT PROGRAM
  148.       END-IF
  149.  
  150.       CALL "StartPagePrinter" WITH STDCALL
  151.           USING BY VALUE Printer-Handle
  152.           RETURNING Return-Value
  153.       IF Return-Value = 0
  154.         DISPLAY "Problema iniciar página de impresión"
  155.         EXIT PROGRAM
  156.       END-IF
  157.  
  158.       OPEN INPUT Print-File
  159.       IF Print-File-Status NOT = "00"
  160.         DISPLAY "No se puede abrir el archivo de impresión"
  161.         EXIT PROGRAM
  162.       END-IF
  163.  
  164. *     Ensure Print-Record area is initialized to nulls
  165.       MOVE LOW-VALUES TO Print-Record
  166.  
  167.       MOVE FUNCTION LENG (Print-Buffer) TO Record-Bytes
  168. *     Read ahead so that last record can be detected
  169.       READ Print-File
  170.         AT END
  171.           DISPLAY "No hay datos para imprimir en el fichero"
  172.           EXIT PROGRAM
  173.       END-READ
  174.       IF Print-File-Status NOT = "00"
  175.          DISPLAY "Error lectura archivo de impresión (1): " Print-File-Status
  176.          EXIT PROGRAM
  177.       END-IF
  178. *     Move record to buffer so that Print-Record is available for
  179. *      the next read
  180.       MOVE Print-Record TO Print-Buffer
  181.  
  182.       PERFORM UNTIL END-OF-FILE
  183. *        Set Print-Record to LOW-VALUES before reading
  184.          MOVE LOW-VALUES TO Print-Record
  185.          READ Print-File
  186.            AT END
  187. *            Last read had the last record, so find last non-null
  188. *             byte in record (only want to pass the data in the file
  189. *             not the padding nulls at the end of the buffer)
  190.              SET END-OF-FILE TO TRUE
  191.              MOVE FUNCTION LENG (Print-Buffer) TO Offset
  192.              PERFORM UNTIL Print-Buffer (Offset:1) NOT = X"00"
  193.                SUBTRACT 1 FROM Offset
  194.              END-PERFORM
  195.              MOVE Offset TO Record-Bytes
  196.          END-READ
  197.          IF Print-File-Status = "00"
  198.                OR
  199.             Print-File-Status = "10" *> At end status
  200.            CALL "WritePrinter" WITH STDCALL
  201.              USING BY VALUE     Printer-Handle
  202.                    BY REFERENCE Print-Buffer
  203.                    BY VALUE     Record-Bytes
  204.                    BY REFERENCE Bytes-Written
  205.              RETURNING Return-Value
  206.            IF Return-Value = 0
  207.              DISPLAY "Error imprimir en la impresora"
  208.              SET END-OF-FILE TO TRUE
  209.            END-IF
  210.          ELSE
  211.            DISPLAY "Error lectura archivo de impresión (2): " Print-File-Status
  212.            SET END-OF-FILE TO TRUE
  213.          END-IF
  214.          IF NOT END-OF-FILE
  215. *          Set up next record to print
  216.            MOVE Print-Record TO Print-Buffer
  217.          END-IF
  218.       END-PERFORM
  219.  
  220.       CLOSE Print-File
  221.  
  222.       CALL "EndPagePrinter" WITH STDCALL
  223.           USING BY VALUE Printer-Handle
  224.           RETURNING Return-Value
  225.                
  226.       CALL "EndDocPrinter" WITH STDCALL
  227.           USING BY VALUE Printer-Handle
  228.           RETURNING Return-Value
  229.                
  230.       CALL "ClosePrinter" WITH STDCALL
  231.           USING BY VALUE Printer-Handle
  232.           RETURNING Return-Value
  233.  
  234.       STOP RUN.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk ( 9 de mayo de 2017)
  #7
Antiguo 9 de mayo de 2017, 00:25
IDENTIFICATION DIVISION
fastpho
Novato Junior
ENVIRONMENT DIVISION
Avatar de fastpho
DATA DIVISION
Forero desde (Registrado)diciembre 2016
Argentina
UbicaciónMendoza
Edad49 años
Última Actividad20.02.2020 22:33
PROCEDURE DIVISION
PostsPosts: 75
Ha dicho GraciasEnviado: 53
Ha recibido agradecimientosRecibido: 27
Mejores respuestasSoluiones: 4
ReputaciónReputación: 6
fastpho is an unknown quantity at this point fastpho is an unknown quantity at this point fastpho is an unknown quantity at this point
Predeterminado

Kuk, yo lo trabajo de la siguiente manera y funciona en cualquier entorno:
Código COBOL:
  1.     SELECT IMPRE
  2.             ASSIGN TO FPRINT
  3.             ORGANIZATION IS  LINE SEQUENTIAL            
  4.             FILE STATUS IS IMP-STAT.
  5.  
  6.  
  7. * ============================================================
  8. * REG-IMPRESOR .
  9. * ============================================================
  10.  FD  IMPRE IS GLOBAL.
  11.  01  REG-IMPRE                   PIC X(40).
  12.  01  REG-IMPRE-1                 PIC X(40).
  13.  
  14.  WORKING-STORAGE SECTION.
  15.  01  DATA00            PIC X(40)   VALUE SPACES.
  16. * Define the work area for getting the current time.
  17.  01  LINEA-4.
  18.      03 FILLER         PIC X(6) VALUE "Fecha:".
  19.      03 L4-DD          PIC 99.
  20.      03 FILLER         PIC X VALUE "-".
  21.      03 L4-MM          PIC 99.
  22.      03 FILLER         PIC X VALUE "-".
  23.      03 L4-SG          PIC 99.
  24.      03 L4-AA          PIC 99.
  25.      03 FILLER         PIC X(8) VALUE SPACES.
  26.      03 FILLER         PIC X(6)  VALUE "Hora :".
  27.      03 L4-H           PIC 99.
  28.      03 FILLER         PIC X    VALUE ":".
  29.      03 L4-M           PIC 99.
  30.  01  LINEA-5.
  31.      03 FILLER         PIC X(2)   VALUE SPACES.
  32.      03 FILLER         PIC X(20)  VALUE "COMPROBANTE INTERNO".
  33.  01  LINEA-5-1.
  34.      03 FILLER         PIC X(2)   VALUE SPACES.
  35.      03 FILLER         PIC X(22)  VALUE "NO VALIDO COMO TICKET".
  36.      
  37.  01  LINEA-6.
  38.      03 FILLER         PIC X(7)  VALUE "Caja :".
  39.      03 L6-NRO-POS     PIC 9(3).
  40.      03 FILLER         PIC X(2)  VALUE SPACES.
  41.      03 FILLER         PIC X(8)  VALUE "T/F:".
  42.      03 L6-NRO-DOC     PIC 999999.
  43.      03 FILLER         PIC X(3)  VALUE SPACES.
  44.      03 FILLER         PIC X(4)  VALUE "V :".
  45.      03 L6-NROVDR      PIC 9(03).
  46.  01  LINEA-10-1.
  47.      03 FILLER         PIC X(40)  VALUE "Codigo   Descripcion      Precio".
  48.  
  49. * CORTA TICKET EN COMANDERA <ESC> "i"
  50.  01 M-3 IS GLOBAL.
  51.     03 M-3-1        PIC X VALUE  X"1B".
  52.     03 M-3-2        PIC X VALUE  X"69".
  53. * esc p m t1 t2 abre cajon m: 0 o 1 t1 t2 segundos
  54.  01 M-4 IS GLOBAL.    
  55.     03 M-4-1        PIC X VALUE  X"1B".
  56.     03 M-4-2        PIC X VALUE  X"70".
  57.     03 FILLER       PIC X(3) VALUE  "011".    
  58.  PROCEDURE       DIVISION.
  59.  DISP-REC SECTION.
  60.      MOVE "LPTTIC" TO FPRINT.
  61.      OPEN OUTPUT IMPRE.     MOVE ZEROS TO W-ROW.
  62.      MOVE FUNCTION CURRENT-DATE TO LINEA-FECHA-AUX.     MOVE L1-D TO L4-DD. MOVE L1-M TO L4-MM. MOVE L1-A TO L4-AA. MOVE L1-S TO L4-SG.
  63.      ACCEPT CURR-TIME FROM TIME.     MOVE CURR-HH TO L4-H.      MOVE CURR-MM TO L4-M.
  64.      
  65.  IMPRIME-CABECERA.
  66.  
  67.      MOVE SPACES TO DATA00.     MOVE DATA00 TO REG-IMPRE.     WRITE REG-IMPRE.
  68.  
  69.      MOVE LINEA-5   TO DATA00.     MOVE DATA00 TO REG-IMPRE.     WRITE REG-IMPRE.
  70.  
  71.      MOVE LINEA-5-1 TO DATA00.     MOVE DATA00 TO REG-IMPRE.     WRITE REG-IMPRE.
  72.      
  73.      MOVE SPACES TO DATA00.     MOVE DATA00 TO REG-IMPRE.     WRITE REG-IMPRE.
  74.  
  75. *CORTAL PAPEL
  76.      MOVE M-3 TO REG-IMPRE.     WRITE REG-IMPRE.    
  77. *ABRE CAJON.
  78.      MOVE M-4 TO REG-IMPRE.     WRITE REG-IMPRE.    
  79.          
  80. *//////////////////////////////////////////////////////////
  81.      CLOSE IMPRE.      
  82.      INVOKE POW-SELF "Execute" USING "IMPRIME.BAT" POW-SWHIDE.
  83.  
  84. El bat lo que es hacer un copy sobre el puerto serie (com1,com2)
  85.  
  86. copy lpttic com1:
  87.  
  88. La impresora declarada en windows debe ser generic solo texto
fastpho no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk ( 9 de mayo de 2017)
  #8
Antiguo 9 de mayo de 2017, 08:58
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)enero 2015
España
UbicaciónMadrid
Edad35 años
Última Actividad25.02.2020 19:38
PROCEDURE DIVISION
PostsPosts: 1.451
Ha dicho GraciasEnviado: 335
Ha recibido agradecimientosRecibido: 563
Mejores respuestasSoluiones: 88
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Dasije, ¿puedes pasarme las LIB-s también o usas el fichero COBOL85.CBR con OpenPrinterA=winspool.drv etc?

fastpho, actualmente estoy haciendo algo parecido pero no me funciona con los códigos de escape.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk está en línea   Responder Con Cita
  #9
Antiguo 9 de mayo de 2017, 14:41
IDENTIFICATION DIVISION
fastpho
Novato Junior
ENVIRONMENT DIVISION
Avatar de fastpho
DATA DIVISION
Forero desde (Registrado)diciembre 2016
Argentina
UbicaciónMendoza
Edad49 años
Última Actividad20.02.2020 22:33
PROCEDURE DIVISION
PostsPosts: 75
Ha dicho GraciasEnviado: 53
Ha recibido agradecimientosRecibido: 27
Mejores respuestasSoluiones: 4
ReputaciónReputación: 6
fastpho is an unknown quantity at this point fastpho is an unknown quantity at this point fastpho is an unknown quantity at this point
Windows

Kuk te subo un ejemplo completo esta echo cobol97 a ver si te sirve
Archivos Adjuntos
Tipo de Archivo: rar EscapeSequences.rar (55,8 KB, 9 descargas)
fastpho no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Kuk ( 9 de mayo de 2017)
  #10
Antiguo 10 de mayo de 2017, 16:48
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
Reino Unido
UbicaciónJerez De La Frontera (cádiz)
Última Actividad16.02.2020 22:13
PROCEDURE DIVISION
PostsPosts: 166
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 75
Mejores respuestasSoluiones: 5
ReputaciónReputación: 11
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

En el rar que te ha pasado fastpho incluye la LIB.

Igualmente es la misma rutina que yo uso, solo que yo he separado y traducido lo que realmente me interesaba.

Saludos.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
Respuesta

Tags
assign , cmd , código , escape , fs=9 , impresion , printer


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado



La franja horaria es GMT +1. Ahora son las 19:40.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2020, Jelsoft Enterprises Ltd.