Programmeren in COBOL/Character-based interfaces
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
bewerkenBLANK 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
bewerkenVia de attributen LINE en COLUMN je kun tekst plaatsen op bepaalde posities. Dit kan op 25 lijnen en 80 kolomen.
LINE
bewerkenJe 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.
COLUMN
bewerkenVia 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
bewerkenLINE 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
bewerkenHet 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
bewerkenFROM 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
bewerkenUSING 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
bewerkenIn COBOL kunnen normaal slechts 8 kleuren worden gebruikt genummerd van 0 tot 7.
BACKGROUND-COLOR
bewerkenBACKGROUND-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
bewerkenFOREGROUND-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:
REVERSE-VIDEO, HIGHLIGHT en BLINK
bewerkenDit 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: