Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol GnuCOBOL (OpenCOBOL)
GnuCOBOL (OpenCOBOL) El compilador gratuito y Open Source cada vez más popular.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Imprimir por una impresora que NO sea la Default Fabio PowerCOBOL (ActiveX, v4 - v11) 4 10 de enero de 2022 14:27
[Sintaxis] como insertar una imagen jpg en una impresion mhnico RM/COBOL 1 1 de marzo de 2021 17:32
[Sintaxis] Dll puerto serie drvedia1981 Fujitsu COBOL 5 31 de julio de 2018 07:57
[Duda] Leer puerto RS232 desde PowerCobol v9 Jovimabo PowerCOBOL (ActiveX, v4 - v11) 13 18 de octubre de 2016 16:00
[Sintaxis] Capturar Puerto Serial Juanes RM/COBOL 2 19 de julio de 2016 12:03

Respuesta

  #1
Antiguo 3 de diciembre de 2018, 15:19
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11
Impresora Imprimir en una impresora puerto USB (Linux)
0 Inactivo Inactivo

Hola amigos coboleros, tengo una duda:
Con esta orden
Código COBOL:
  1. FILE-CONTROL.
  2.            SELECT OPTIONAL PHONE-FILE ASSIGN TO "PHONE.DAT"
  3.                ORGANIZATION IS SEQUENTIAL.
creo un archivo fisico en disco llamado "PHONE.DAT"

Con esta otra orden
Código COBOL:
  1. SELECT PRINTER-FILE ASSIGN TO PRINTER
  2.                ORGANIZATION IS LINE SEQUENTIAL.
mando a imprimir a la impresora por defecto (LPT1).

La consulta es: como hago para mandar a imprimir desde una impresora USB, estoy usando OpenCobol con LinuxMint (derivado de Ubuntu).
Gracias.
dariodr is offline   Responder Con Cita
  #2
Antiguo 3 de diciembre de 2018, 18:50
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

De la forma que lo pones debe de salir por la impresora por defecto que tu tengas definida en el linux.

Para probar intenta imprimir algo desde la linea de comandos y verificar que imprime. (comando lp)

Creo que te sobraria poner lo de "line sequential". Al poner "printer" va inherente.

Lo tengo declarada la impresora asi
Código COBOL:
  1.  
  2.            select impresora assign to printer, nombre-impresora.


Y en menu de programa tengo una selección de impresoras en el cual asigno a nombre-impresora el nombre de la impresora que esta configurada en linux.

Mas concretamente lo tengo asi:

Código COBOL:
  1.  
  2.  
  3.           select impresora assign to printer, nombre-impresora
  4.                            file status is error-impresora.

En error impresora me va volcando el error producido. Si '00' no hay error.
JCantero is offline   Responder Con Cita
  #3
Antiguo 4 de diciembre de 2018, 04:28
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11
Predeterminado Imprimir en Linux
0 Inactivo Inactivo

Este es el codigo, donde asigno el nombre de la impresora.

Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. PHNBLD01.
  3.  
  4.        ENVIRONMENT DIVISION.
  5.        INPUT-OUTPUT SECTION.
  6.        FILE-CONTROL.
  7.            SELECT OPTIONAL PHONE-FILE ASSIGN TO "PHONE.DAT"
  8.                ORGANIZATION IS SEQUENTIAL.
  9.  
  10.            SELECT PRINTER-FILE ASSIGN TO PRINTER, DCP-T300.
  11.      *         ORGANIZATION IS LINE SEQUENTIAL.
  12.  
  13.        DATA DIVISION.
  14.        FILE SECTION.
  15.        FD  PHONE-FILE.
  16.      *     LABEL RECORDS ARE STANDARD.
  17.        01 PHONE-RECORD.
  18.            05 PHONE-LAST-NAME      PIC X(20).
  19.            05 PHONE-FIRST-NAME     PIC X(20).
  20.            05 PHONE-NUMBER         PIC X(15).
  21.            05 PHONE-EXT            PIC X(5).
  22.  
  23.        FD  PRINTER-FILE.
  24.        01  PRINTED-RECORD          PIC X(80).
  25.  
  26.        WORKING-STORAGE SECTION.
  27.        01  HOW-MANY           PIC 999.
  28.        01  ENTRY-FIELD        PIC ZZZ.
  29.        01  PRINT-LINES        PIC 99 VALUE ZEROES.
  30.        01  FORMATTED-NUMBER.
  31.            05 FILLER          PIC X(6) VALUE "(404)".
  32.            05 FILLER          VALUE "555-".
  33.            06 PHONE-COUNTER   PIC 9(4) VALUE ZERO.
  34.  
  35.        PROCEDURE DIVISION.
  36.        PROGRAM-BEGIN.
  37.            PERFORM OPENING-PROCEDURE.
  38.            PERFORM GET-HOW-MANY.
  39.            MOVE ZEROES TO PRINT-LINES.
  40.            PERFORM ADD-RECORD VARYING PHONE-COUNTER FROM 1 BY 1 UNTIL
  41.                PHONE-COUNTER > HOW-MANY.
  42.            PERFORM CLOSING-PROCEDURE.
  43.  
  44.        PROGRAM-DONE.
  45.            STOP RUN.
  46.  
  47.        OPENING-PROCEDURE.
  48.            OPEN OUTPUT PHONE-FILE.
  49.            OPEN OUTPUT PRINTER-FILE.
  50.  
  51.        CLOSING-PROCEDURE.
  52.            CLOSE PHONE-FILE.
  53.            MOVE SPACE TO PRINTED-RECORD.
  54.            WRITE PRINTED-RECORD BEFORE ADVANCING PAGE.
  55.            CLOSE PRINTER-FILE.
  56.  
  57.        GET-HOW-MANY.
  58.            DISPLAY "How many test entries (1-999): ".
  59.            ACCEPT ENTRY-FIELD.
  60.            MOVE ENTRY-FIELD TO HOW-MANY.
  61.  
  62.        ADD-RECORD.
  63.            PERFORM FORMAT-THE-RECORD.
  64.            PERFORM ADD-THIS-RECORD.
  65.  
  66.        FORMAT-THE-RECORD.
  67.            MOVE "Joshua-------------X" TO PHONE-FIRST-NAME.
  68.            MOVE "Johnson------------X" TO PHONE-LAST-NAME.
  69.            MOVE "12345" TO PHONE-EXT.
  70.            MOVE FORMATTED-NUMBER TO PHONE-NUMBER.
  71.  
  72.        ADD-THIS-RECORD.
  73.            WRITE PHONE-RECORD.
  74.            PERFORM PRINT-THIS-RECORD.
  75.  
  76.        PRINT-THIS-RECORD.
  77.            IF PRINT-LINES NOT < 55
  78.                PERFORM NEW-PAGE
  79.            END-IF.
  80.            MOVE PHONE-RECORD TO PRINTED-RECORD.
  81.            WRITE PRINTED-RECORD BEFORE ADVANCING 1.
  82.            ADD 1 TO PRINT-LINES.
  83.  
  84.        NEW-PAGE.
  85.            MOVE SPACE TO PRINTED-RECORD.
  86.            WRITE PRINTED-RECORD BEFORE ADVANCING PAGE.
  87.            MOVE ZEROES TO PRINT-LINES.
dariodr is offline   Responder Con Cita
  #4
Antiguo 4 de diciembre de 2018, 17:19
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Asi no puedes.

Debes de ponerlo entre comillas:

Código COBOL:
  1.  SELECT PRINTER-FILE ASSIGN TO PRINTER, "DCP-T300".

o definir la variable dcp-t300 y asignarle un valor en working o en la procedure.

Código COBOL:
  1.       01 dcp-t300 pic x(80) value "DCP-T300".


---------- Post añadido : 17:19 ---------- Post anterior : 12:13 ----------

El codigo que has puesto en el foro corrigiendo lo que te he comentado y funciona bien.

Lo he probado con el OpenCobolIde de windows, aunque tambien debe funcionar con el resto de sistemas operativos.

Aqui te dejo el link de los IDEs por si fuera de tu interes.

https://launchpad.net/cobcide/+download
JCantero is offline   Responder Con Cita
Respuesta


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

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:22.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.