Lekcje modułu (1/2)
Rekordy i Struktury Grupowe
W COBOL-u podstawowe zmienne elementarne można grupować wewnątrz struktury hierarchicznej zwanej strukturą grupową lub rekordem (record). Pozwala to na traktowanie zestawu powiązanych danych zarówno jako pojedynczej jednostki (na przykład w celu ich skopiowania lub wyświetlenia), jak i poszczególnych pól z osobna.
Numery poziomów i relacje hierarchiczne
Do zdefiniowania rekordu używa się numerów poziomów w sekcji DATA DIVISION:
- Poziom
01: Definiuje rekord główny (nazwę grupy). Nie posiada własnej klauzuliPICTURE, ponieważ jego rozmiar jest określony przez sumę pól wewnętrznych. - Poziomy podrzędne (
05,10,15itd.): Identyfikują pola podrzędne należące do grupy wyższego poziomu. Mogą to być zmienne elementarne (z klauzuląPIC) lub kolejne grupy (podrekordy).
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.
W tym przykładzie WS-EMPLOYEE-RECORD to struktura grupowa zawierająca trzy pola podrzędne. Jeśli odwołujemy się do WS-EMPLOYEE-RECORD, odczytujemy lub zapisujemy wszystkie 8 + 20 + 5 = 33 znaki rekordu jednocześnie.
Instrukcja MOVE i struktury grupowe
Możemy przypisywać wartości do poszczególnych pól elementarnych:
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.
Możemy też skopiować cały rekord do innego kompatyinalnego rekordu w jednej operacji:
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.
Spróbuj sam
Zadeklaruj strukturę grupową 01 o nazwie WS-STUDENT-RECORD zawierającą trzy pola podrzędne poziomu 05: WS-STUDENT-ID (numeryczne o długości 5 cyfr), WS-STUDENT-NAME (alfanumeryczne o długości 15 znaków) i WS-STUDENT-GPA (numeryczne z 1 cyfrą całkowitą i 2 dziesiętnymi).
Pokaż wskazówkę
Użyj poprawnej składni: 01 WS-STUDENT-RECORD. (z kropką i bez PIC), a pod spodem w kolejnych liniach poziomy 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). oraz 05 WS-STUDENT-GPA PIC 9(1)V99.
Rozwiązanie dostępne po 3 próbach
Uzupełnij PROCEDURE DIVISION, przenosząc wartość 10023 do WS-EMP-ID, tekst 'JOHN DOE' do WS-EMP-NAME, a na koniec wyświetl strukturę grupową WS-EMPLOYEE-RECORD za pomocą DISPLAY.
Pokaż wskazówkę
Użyj MOVE 10023 TO WS-EMP-ID. oraz MOVE 'JOHN DOE' TO WS-EMP-NAME. do nadania wartości zmiennym, następnie wpisz DISPLAY WS-EMPLOYEE-RECORD. i na końcu STOP RUN.
Rozwiązanie dostępne po 3 próbach