Anfang des Inhaltsbereichs

Daten über Extrakte aufbereiten Dokument im Navigationsbaum lokalisieren

Die Sätze verschiedener Datenbanktabellen können in einem einzigen Extrakt gespeichert werden, da die Einzelsätze in Extrakten verschieden strukturiert sein können.

Beispiel

Das folgende Programm sei mit der logischen Datenbank F1S verknüpft.

REPORT demo_data_process_extract.

NODES: spfli, sflight, sbook.

FIELD-GROUPS: header, flight_info, flight_booking.

INSERT:
  spfli-cityfrom spfli-cityto
  spfli-connid sflight-fldate
  sbook-class sbook-smoker sbook-bookid INTO header,
  spfli-carrid                          INTO flight_info,
  sbook-luggweight sbook-wunit          INTO flight_booking.

START-OF-SELECTION.

GET spfli.
  EXTRACT flight_info.

GET sflight.

GET sbook.
  EXTRACT flight_booking.

END-OF-SELECTION.

  SORT.

  LOOP.
    AT flight_info.
      SKIP.
      WRITE: / spfli-carrid,
               spfli-connid,
               'from', (15) spfli-cityfrom,
               'to',   (15) spfli-cityto.
      ULINE.
    ENDAT.
    AT NEW sflight-fldate.
      SKIP.
      WRITE: / 'Date:', sflight-fldate.
      WRITE: 20 'Book-ID', 40 'Smoker', 50 'Class'.
      ULINE.
    ENDAT.
    AT flight_booking.
      WRITE: / sbook-bookid UNDER 'Book-ID',
               sbook-smoker UNDER 'Smoker',
               sbook-class  UNDER 'Class'.
    ENDAT.
    AT END OF sflight-fldate.
      ULINE.
      WRITE: 'Number of bookings:  ', (3) cnt(sbook-bookid),
           / 'Total luggage weight:',
              sum(sbook-luggweight), sbook-wunit.
    ENDAT.
  ENDLOOP.

Dieses Programm erzeugt die Liste in Beispiel für aufbereitete Daten.

Es werden drei Feldgruppen angelegt, in die verschiedene Felder aufgenommen werden. Während der GET-Ereignisse wird der Extraktdatenbestand über EXTRACT-Anweisungen gefüllt. Bei GET SFLIGHT steht keine EXTRACT-Anweisung, da das gewünschte Feld SFLIGHT_FLDATE Teil der Feldgruppe HEADER ist und somit automatisch bei jedem untergeordneten Ereignis GET SBOOK extrahiert wird.

Nach der Datenbeschaffung wird die Erzeugung des Datenbestands über die SORT-Anweisung abgeschlossen und nach dem Sortierschlüssel HEADER sortiert. In der LOOP-ENDLOOP-Schleife wird der sortierte Extraktdatenbestand in die Ausgabeliste geschrieben, wobei verschiedene AT-ENDAT-Blöcke, sowie die Felder CNT(...) und SUM(...) zum Einsatz kommen.

 

 

Ende des Inhaltsbereichs