PDA

Ver la Versión Completa : [Duda] No logro imprimir


jjop
20 de julio de 2019, 14:12
Hola,
Creo que deje lo del Cobol hace 100 años, lo tengo más que olvidado. No os aburro más. Recientemente he encontrado un compilador de Cobol (Open CobolIDE) y me he puesto a jugar y ver si iba recordando algo. El cobol está instalado en un PC con WINDOWS 10 Y un sistema operativo de 64 bits. La impresora es una HP ENVY 5030 (la causante de mis males).
Los programas que voy haciendo para refrescar son por partes. Este que he hecho es solo para imprimir y no complicarlo con otros posibles errores.
Cuando compilo, y ejecuto el programa, funciona perfectamente y no da ningún error, tanto en compilación como en ejecución.

Dejo aqui el programa a ver si alguien me puede echar una mano.

************************************************** ****************
* Author: Juan Jose
* Date: 9 de febrero 2019
* Purpose: Practicar
* Tectonics: cobc
************************************************** ****************
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PRINTER-FILE ASSIGN TO PRINTER, "HPCAD2A9"
file status is error-impresora.
DATA DIVISION.
FILE SECTION.
FD PRINTER-FILE.
01 PRINTED-RECORD PIC X(80).

WORKING-STORAGE SECTION.
01 indice PIC 99.
01 wk-count PIC 99.
01 wk-fecha pic x(8).
01 wkr-fecha REDEFINES wk-fecha.
05 wk-ano pic 9(4).
05 wk-mes pic 9(2).
05 wk-dia pic 9(2).
01 error-impresora PIC 99 VALUE 33.
01 cabecera.
02 FILLER PIC X(20) VALUE SPACE.
02 FILLER PIC x(16) VALUE "Prueba Impresion".
02 FILLER PIC X(20) VALUE SPACES.
02 FECHAIM PIC X(8).
02 FILLER PIC X(14) VALUE SPACES.
02 CONTIM PIC Z9.

PROCEDURE DIVISION.
MAIN-PROCEDURE.
MOVE FUNCTION CURRENT-DATE to wk-fecha.
OPEN OUTPUT PRINTER-FILE.
DISPLAY "Introduce numero de veces".
ACCEPT wk-count.
PERFORM 001-prueba UNTIL indice EQUAL wk-count.
PERFORM 002-impresion.
DISPLAY error-impresora.
CLOSE PRINTER-FILE.
STOP RUN.

001-prueba.
ADD 1 to indice
DISPLAY "vez que pasa por el bucle:" indice
DISPLAY wk-dia
DISPLAY wk-mes
DISPLAY wk-ano
DISPLAY "Hola Juan Jose".

002-impresion.
DISPLAY "Hola estoy en 002-impresion".
MOVE wk-fecha TO FECHAIM.
MOVE wk-count TO CONTIM.
MOVE cabecera TO PRINTED-RECORD.
WRITE PRINTED-RECORD BEFORE ADVANCING 1.


END PROGRAM YOUR-PROGRAM-NAME.

JCantero
20 de julio de 2019, 20:51
En el nombre de la impresora tienes que poner el nombre de dispositivo.

Conforme lo tienes te estara generando el listado en un fichero "HPCAD2A9"

Para poder imprimir debes de cambiar el nombre de la impresora.

Con ese cobol no he trabajado yo pero puedes probar a poner PRINTER

Si no te funciona prueba a realizar lo siguiente:

Comparte la impresora por ejemplo con el nombre hp5030

Mira el identificador de tu ordenador y si es por ejemplo ORDENADOR-CASA pon el nombre de disposivo de impresion \\ORDENADOR-CASA\HP5030

Si no te funciona cambia el el nombre de disposivo a LPT1

Para ello debes de activar el disposivo desde la linea de comandos poniendo:

NET USE LPT1 \\ORDENADOR-CASA\HP5030

Ve realizando pruebas y si no funciona volvemos a hablar

jjop
22 de julio de 2019, 19:24
Voy a estar un par de semanas sin ordenador...Tengo una pequeña obra en casa y tengo que convivir con ella. Ya te contaré. Muchas gracias por adelantado

---------- Post añadido : 17:24 ---------- Post anterior : 08:46 ----------

JCantero,
Hola, he aprovechado que todavia tengo ordenardor y he hecho lo que me habias indicado. Tenias razón, tal como lo tenía me había generado un fichero con ese nombre y que contenia la información que quería que saliera por la impresora.
Con el ultimo intento que me indicaste NET USE.......... me dijo que el comando se habia completado correctamente. Pero al ejecutar el programa de COBOL no imprimia y en el error de la impresora daba un código "48".