Primesui.cbl

From PostgreSQL_wiki
Jump to: navigation, search

This is the complete source code of the primesui Cobol program.

       identification division.
       program-id. primesui.

       environment division.
       configuration section.
       source-computer. linux-laptop.
       object-computer. linux-laptop.
       special-names.
           console is scherm.

       input-output section.
       file-control.
         select fprinter assign to "primes.prt"
                organization is sequential
                file status is primes-prt-status.

       data division.
       file section.
       fd fprinter
            label records omitted
            linage 56,
            footing 2,
      *     top     2,
            bottom  2.
       01 file-buffer        pic x(132).

       working-storage section.
       01  filler               pic x(32) value "start ws primesui".

       01 primes-table.
        03 primes-cel         occurs 6 indexed primes-idx.
         05 t-ident           pic z(9).
         05 filler            pic x(2).
         05 t-prime           pic z(9).
         05 filler            pic x(2).
       01 table-header.
        03 cel-header         occurs 6.
         05 filler            pic x(9) value 'Sequence'.
         05 filler            pic x(2) value space.
         05 filler            pic x(9) value 'Prime'.
         05 filler            pic x(2) value space.

       01  printer.
        03 print-buffer      pic x(132).
        03 primes-prt-status pic x(2).
        03 page-number       pic 9(4) value 1.
        03 print-new-page    pic 9    value 1.
         88 new-page                  value 1.

       01 primes-heading.
        03 filler            pic x(118) value 'primes overview'.
      * 03 filler            pic x(06)  value 'page: '.
      * 03 page-number       pic z(3)9  value 1.

       01 primes-footing.
        03 filler            pic x(118) value space.
        03 filler            pic x(06)  value 'page: '.
        03 f-page-number     pic z(3)9  value 1.

       01 primes-line.
        03 primes-row     pic x(132).

       01 primes-total.
           03 primes-count   pic 9(8).

       linkage section.

           copy primes-ui.

       procedure division using primes-ui.

      *    move 'primesui'   to program-name.

           evaluate true
             when start-ui
               perform r90-start-primesui
             when write-ui
               perform r92-write-primesui
             when stop-ui
               perform r99-stop-primesui
             when message-ui
               perform r98-message-ui
             when other
               move 1 to ui-method-result
           end-evaluate.

           exit program.

       r90-start-primesui.

           move 'start-primesui' to program-paragraph.
           move 'start-printer' to program-message

           open output fprinter.

           if primes-prt-status  =    '00'             then
             move 0              to   ui-method-result
             set primes-idx to 1
             move 'Open printer Ok' to program-message
             perform r98-message-ui
           else
             move 1 to ui-method-result
             move 'Open printer Nok' to program-message
             display primes-prt-status upon scherm.

       r92-write-primesui.

           move u-sequence         to   t-ident(primes-idx)
           move u-number           to   t-prime(primes-idx)
           set  primes-idx         up by 1.
           if  new-page                 then
               perform r93-new-page.

           if  primes-idx          = 7                then
               move primes-table   to   print-buffer
               write file-buffer   from print-buffer
               set primes-idx      to 1.
           if  linage-counter      =    53            then
               perform r94-eop.

       r93-new-page.

           move primes-heading to   print-buffer
           write file-buffer   from print-buffer
      *    after advancing page
           move table-header   to   print-buffer
           write file-buffer   from print-buffer
           move  zero          to   print-new-page.

       r94-eop.

           move page-number     to f-page-number.
           move ' '             to print-buffer.
           write file-buffer    from print-buffer.
           move primes-footing  to print-buffer.
           write file-buffer    from print-buffer.
           add    1             to page-number.
           move   1             to print-new-page.

       r98-message-ui.

           display process-message upon scherm.

       r99-stop-primesui.

           move 0               to u-sequence.
           move 0               to u-number.
           perform r92-write-primesui until new-page.
           move 'stop-primesui' to program-paragraph.
           move 'close printer' to program-message.
           perform r98-message-ui

           close fprinter.

           move primes-prt-status to ui-method-result.
           if primes-prt-status = '00' then
             next sentence
           else
             display primes-prt-status upon scherm.


Terug naar: primes