Ver Mensaje Individual
  #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