Programmeren in COBOL/Character-based interfaces

Programmeren in COBOL

Inhoudsopgave




Er zijn twee manieren om in COBOL uw scherm op te maken de eerste is character gebaseerd en gebruikt alleen maar tekens en een paar kleuren om het scherm op te maken. De tweede manier werkt met pixels. Nu zien we character gebaseerd. Hoewel het grafisch minder mooi is als de andere manier heeft het zijn voordelen. Het is simpel en kan makkelijk met variabelen werken.

BLANK SCREEN

bewerken

BLANK SCREEN laat toe om uw scherm volledig leeg te halen. Hiervoor moet je bij de DATA DIVISION een nieuwe sectie toevoegen. Deze sectie heet SCREEN SECTION.

COBOL-code: BLANK SCREEN

       IDENTIFICATION DIVISION.
       PROGRAM-ID. BLANKSCREEN.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 toets PIC X.
       SCREEN SECTION.
       77 leeg BLANK SCREEN.

       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY leeg
           ACCEPT toets
           STOP RUN.

SCREEN SECTION werkt zoals WORKING-STORAGE SECTION. In SCREEN SECTION kun je velden declareren. Deze velden kun je bepaalde eigenschappen geven. In dit geval geef je de eigenschap BLANK SCREEN aan de veld leeg. Wanneer leeg wordt opgeroepen via DISPLAY zal je een blanco scherm krijgen.

LINE en COLUMN

bewerken

Via de attributen LINE en COLUMN je kun tekst plaatsen op bepaalde posities. Dit kan op 25 lijnen en 80 kolomen.

Je kunt ook tekst opslaan in de screen section en bepalen op welk lijntje die tekst komt te staan.

COBOL-code: LINE

       IDENTIFICATION DIVISION.
       PROGRAM-ID. lijn.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 toets PIC x.
       SCREEN SECTION.
       77 leeg BLANK SCREEN.
       77 tekst1 LINE 1 VALUE "dit is tekst 1 op regel 1".
       77 tekst2 LINE 3 VALUE "dit is tekst 2 op regel 3".
       77 tekst3 LINE 2 VALUE "dit is tekst 3 op regel 2".
       77 tekst4 LINE 8 VALUE "dit is tekst 4 op regel 8".
       77 tekst5 LINE 3 VALUE "dit is tekst 5 ik overschrijf regel 3".

       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY leeg
           DISPLAY tekst1
           DISPLAY tekst2
           DISPLAY tekst3
           DISPLAY tekst4
           ACCEPT toets NO BEEP
           DISPLAY tekst5
           ACCEPT toets NO BEEP
           STOP RUN.

Verschillende stukjes tekst oproepen kan langdradig worden. Je kunt in de plaats van meerdere DISPLAY'Ste gebruiken ook één gebruiken. Je zet daarvoor de verschillende tekstjes in één groepsveld. Dit gaat veel sneller en komt overzichtelijkker over.

COBOL-code: LINE

       IDENTIFICATION DIVISION.
       PROGRAM-ID. lijn.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 toets PIC X.
       SCREEN SECTION.
       01 scherm.
        02 leeg BLANK SCREEN.
        02 tekst1 LINE 1 VALUE "dit is tekst 1 op regel 1".
        02 tekst2 LINE 3 VALUE "dit is tekst 2 op regel 3".
        02 tekst3 LINE 2 VALUE "dit is tekst 3 op regel 2".
        02 tekst4 LINE 8 VALUE "dit is tekst 4 op regel 8".


       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY scherm
           ACCEPT toets NO BEEP
           DISPLAY leeg
           DISPLAY tekst4
           ACCEPT toets NO BEEP
           STOP RUN.

Via scherm kun je alles in één keer op het scherm tonen. Maar je kunt ook nogsteeds alles apart tonen. Als je weet dat je nooit de verschillende deeltjes apart zult oproepen moet je die dan ook geen naam geven.

Via dit kun je bepalen in welke kolom je de verschillende tekstjes wilt plaatsen.

COBOL-code: COLUMN

       IDENTIFICATION DIVISION.
       PROGRAM-ID. kolom.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 toets PIC X.
       SCREEN SECTION.
       01 scherm.
        02 leeg BLANK SCREEN.
        02 tekst1 LINE 1 COLUMN 1 VALUE "lijn 1 kolom 1".
        02 tekst2 LINE 2 COLUMN 10 VALUE "lijn 2 kolom 10".
        02 tekst3 LINE 5 COLUMN 66 VALUE "lijn 5 kolom 66".
        02 tekst4 LINE 1 COLUMN 20 VALUE "lijn 1 kolom 20".


       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY scherm
           ACCEPT toets NO BEEP
           STOP RUN.

COLUMN is daardoor heel goed geschikt om verschillende stukjes tekst achter elkaar te plaatsen. Natuurlijk zijn LINE en COLUMN perfect te combineren en kun je ze tegelijkertijd gebruiken.

Dit is het resultaat:

 

Een andere manier

bewerken

LINE en COLUMN zijn niet enkel en alleen voor de SCREEN SECTION je kun ze perfect gebruiken middenin je programma code via DISPlAY.

COBOL-code: Een andere manier.

           DISPLAY "dit is tekst" LINE 5 COLUMN 35

Dit is vooral handig als je slechts een paar lijntjes slechts een paar keer laat zien. Maar niet wanneer je een heel scherm moet opmaken en altijd opnieuw moet oproepen.

Combineren met velden

bewerken

Het gebruik van velden is essentieel in een programma. Je moet gegevens inlezen en verwerken en dan terug kunnen tonen op het scherm. In dit stuk gaan we leren hoe je de SCREEN SECTION kan laten comuniceren met andere secties van de DATA DIVISION.

FROM is een attribuut en laat toe om een veld te laten zien op het scherm via de SCREEN SECTION. FROM laat enkel toe dat het veld wordt getoond dus je kunt er niet mee werken.

COBOL-code: FROM

       IDENTIFICATION DIVISION.
       PROGRAM-ID. veldtonen.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 tekst PIC X(12)  value "Dit is tekst".
       77 toets PIC X.
       SCREEN SECTION.
       01 scherm.
        02 leeg BLANK SCREEN.
        02 LINE 5 COLUMN 10 pic x(12) FROM tekst.

       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY scherm
           ACCEPT toets NO BEEP
           STOP RUN.

Wanneer je from gebruikt moet je ook PIC gebruiken.

USING laat dan weer toe om gegevens in te voeren of aan te passen. USING wordt net zoals FROM gebruikt en je moet ook gebruik maken van PIC.

COBOL-code: USING

       IDENTIFICATION DIVISION.
       PROGRAM-ID. invoer.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 voornaam   PIC X(20).
       77 achternaam PIC X(20).
       77 toets      PIC X.
       SCREEN SECTION.
       01 scherm.
        02 leeg BLANK SCREEN.
        02 LINE 1           VALUE "************************".
        02 LINE 2           VALUE "*   Geef de gegevens   *".
        02 LINE 3           VALUE "************************".
        02 LINE 5 COLUMN 1  VALUE "Geef de voornaam".
        02 LINE 5 COLUMN 20 PIC X(20) USING voornaam.
        02 LINE 6 COLUMN 1  VALUE "Geef de achternaam".
        02 LINE 6 COLUMN 20 PIC X(20) USING achternaam.

       PROCEDURE DIVISION.
       HOOFD.
           DISPLAY scherm
           ACCEPT scherm
           STOP RUN.

Dit programma leest de voornaam en achternaam van een persoon. Let wel op wanneer je gegevens wilt lezen via SCREEN SECTION moet je ook ACCEPT gebruiken gevolgd door de naam van het scherm dat je gebruikt.

Dit is het resultaat:

 

Werken met kleuren

bewerken

In COBOL kunnen normaal slechts 8 kleuren worden gebruikt genummerd van 0 tot 7.

BACKGROUND-COLOR

bewerken

BACKGROUND-COLOR laat toe om de achtergrond kleur te bepalen. Niet alleen van het scherm maar ook van stukjes tekst.

COBOL-code: BACKGROUND-COLOR

       01 scherm.
        02 leeg BLANK SCREEN BACKGROUND-COLOR 1.
        02 LINE 1 COLUMN 1 VALUE "dit is tekst" BACKGROUND-COLOR 4.
        02 LINE 2 COLUMN 1 VALUE "nog tekst" BACKGROUND-COLOR 3.

BACKGROUND-COLOR wordt dus gevolgd door een nummer van 0 tot 7.

Dit is het resultaat:

 

FOREGROUND-COLOR

bewerken

FOREGROUND-COLOR laat dan weer toe om de kleur van de tekst zelf aan te passen.

COBOL-code: FOREGROUND-COLOR

       01 scherm.
        02 leeg BLANK SCREEN.
        02 LINE 1 COLUMN 1 VALUE "dit is tekst"  FOREGROUND-COLOR 4.
        02 LINE 2 COLUMN 1 VALUE "nog tekst" FOREGROUND-COLOR 3.

Dit is het resultaat:

 

bewerken

Dit zijn drie atributen die speciale dingen doen met de kleuren. REVERSE-VIDEO verwisselt de background en foreground van kleur. HIGHLIGHT maakt de kleur van de tekst feller. En BLINK maakt de kleur van de achtergrond feller.

COBOL-code: REVERSE-VIDEO, HIGHLIGHT en BLINK.

       01 scherm.
        02 leeg BLANK SCREEN FOREGROUND-COLOR 3.
        02 LINE 1 COLUMN 1 VALUE "dit is tekst"  REVERSE-VIDEO.
        02 LINE 2 COLUMN 1 VALUE "nog tekst" HIGHLIGHT.
        02 LINE 3 COLUMN 1 VALUE "en nog tekst" BLINK.

En dit is het resultaat:

 

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.