Direct naar de hoofdinhoud
Module 4 · Les 1 van 27/10 in de cursus~12 min
Modulelessen (1/2)

Groepeer items en records

In COBOL kunnen elementaire variabelen worden gegroepeerd in een hiërarchische structuur die een groepsitem of record wordt genoemd. Hierdoor kunt u een reeks gerelateerde gegevens behandelen als één enkele entiteit (bijvoorbeeld om ze te kopiëren of weer te geven) of als afzonderlijke velden.

Niveaunummers en hiërarchische relaties

Om een ​​record te definiëren, gebruikt u niveaunummers in de DATA DIVISION:

  • Niveau 01: definieert het hoofdrecord (de groepsnaam). Het heeft geen eigen PICTURE clausule omdat de grootte ervan wordt bepaald door de som van de interne velden.
  • Onderliggende niveaus (05, 10, 15, enz.): Identificeer de ondergeschikte velden die tot de groep op een hoger niveau behoren. Het kunnen elementaire variabelen zijn (met een clausule PIC) of op hun beurt andere groepsitems (subrecords).
COBOL
01 WS-EMPLOYEE-RECORD.
    05 WS-EMP-ID       PIC 9(5).
    05 WS-EMP-NAME     PIC X(20).
    05 WS-EMP-SALARY   PIC 9(6)V99.

In dit voorbeeld is WS-EMPLOYEE-RECORD een groepsstructuur met drie ondergeschikte velden. Als we verwijzen naar WS-EMPLOYEE-RECORD, lezen of schrijven we alle 5 + 20 + 8 = 33 tekens van de record in één keer.

De MOVE-instructie en groepsitems

We kunnen waarden toekennen aan individuele elementaire velden:

COBOL
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.

Of we kunnen in één handeling een volledig record naar een ander compatibel record kopiëren:

COBOL
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.

Probeer het zelf

Oefening#cobol.m4.l1.e1
Pogingen: 0Laden…

Declareer een groepsstructuur 01 met de naam WS-STUDENT-RECORD met drie subvelden van niveau 05: WS-STUDENT-ID (numeriek van 5 cijfers), WS-STUDENT-NAME (alfanumeriek van 15 tekens) en WS-STUDENT-GPA (numeriek met 1 geheel getal en 2 decimalen).

Editor laden…
Toon hint

Gebruik de syntaxis: 01 WS-STUDENT-RECORD. (met een punt en zonder PIC), gevolgd op de volgende regels door niveau 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). en 05 WS-STUDENT-GPA PIC 9(1)V99.

Oplossing beschikbaar na 3 pogingen

Oefening#cobol.m4.l1.e2
Pogingen: 0Laden…

Voltooi de PROCEDURE DIVISION door de waarde 10023 naar WS-EMP-ID te verplaatsen, de tekst 'JOHN DOE' naar WS-EMP-NAME, en geef ten slotte de groepsstructuur WS-EMPLOYEE-RECORD weer met behulp van DISPLAY.

Editor laden…
Toon hint

Gebruik VERPLAATS 10023 NAAR WS-EMP-ID. en VERPLAATS 'JOHN DOE' NAAR WS-EMP-NAME. om waarden toe te wijzen, schrijf dan DISPLAY WS-EMPLOYEE-RECORD. en ten slotte STOP REN.

Oplossing beschikbaar na 3 pogingen