# 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

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
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

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

### LINE

Je kunt ook tekst opslaan in de screen section en bepalen op welk lijntje die tekst komt te staan.
COBOL-code: LINE
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
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

Via dit kun je bepalen in welke kolom je de verschillende tekstjes wilt plaatsen.
COBOL-code: COLUMN
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

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.
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

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

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
Wanneer je from gebruikt moet je ook PIC gebruiken.

### USING

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
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

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

### BACKGROUND-COLOR

BACKGROUND-COLOR laat toe om de achtergrond kleur te bepalen. Niet alleen van het scherm maar ook van stukjes tekst.
COBOL-code: BACKGROUND-COLOR
BACKGROUND-COLOR wordt dus gevolgd door een nummer van 0 tot 7.
Dit is het resultaat:

### FOREGROUND-COLOR

FOREGROUND-COLOR laat dan weer toe om de kleur van de tekst zelf aan te passen.
COBOL-code: FOREGROUND-COLOR
Dit is het resultaat:

### REVERSE-VIDEO, HIGHLIGHT en BLINK

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.
En dit is het resultaat: