Een tabel hoeft niet het enige onderdeel te zijn van een overkoepelend groepsveld. Ook andere velden kunnen er deel van uitmaken.
illustratie: Geert Nijmolen
Kijk eens naar het volgende voorbeeld:
01 artikelgegevens. 03 jaar pic 9(4). 03 artikelnr pic x(7). 03 kwartaalomzet pic 9(5), occurs 4 times. 03 btw pic x.
De tabel kwartaalomzet staat hier tussen drie andere velden. Bij die andere velden is uiteraard geen subscript nodig, want ze hebben niets met een tabel te maken. Alleen bij het veld kwartaalomzet moeten we een subscript vermelden. Het gebruik van een subscript is vereist wanneer een veld voorzien is van de occurs-clausule.
Als we de lengte willen weten van het veld artikelgegevens, dan moeten we alle picture-lengtes bij elkaar optellen en daarbij rekening houden met de occurs-clausule. Het groepsveld artikelgegevens bestaat uit 4 + 7 + (4 * 5) +1 = 32 tekens.
Doorbordurend op het vorige voorbeeld kunnen we een constructie maken met twee tabellen.
01 maandgegevens. 03 maandnaam occurs 12 times, pic xxx. 03 dagaantal occurs 12 times, pic 99.
Het groepsveld maandgegevens omvat twee tabellen, elk van twaalf elementen. Eerst komen twaalf velden maandnaam en daarna twaalf velden dagaantal. In schema is dit weergegeven in figuur 6.1.
Figuur 6.1 Twee tabellen na elkaar
Vergelijk figuur 6.1 met het volgende voorbeeld.
01 maandgegevens. 02 maandelement occurs 12 times. 03 maandnaam pic xxx. 03 dagaantal pic 99.
Het veld maandgegevens is hier even lang als in het vorige voorbeeld, maar de structuur is anders (zie figuur 6.2).
Figuur 6.2 Tabel van groepsvelden
Hier is er slechts een tabel van twaalf elementen. Elk element is een groepsveld van vijf posities. Elk veld maandelement bestaat uit twee velden. Bij de velden maandnaam en dagaantal staat geen occurs-clausule. Maar toch zijn er twaalf velden maandnaam en ook twaalf velden dagaantal. We moeten dus een subscript schrijven achter maandelement, maandnaam en dagaantal. In het volgende stukje programma komen die subscripts voor.
move "feb28" to maandelement(2). add 1 to dagaantal(2) display maandnaam(2) space dagaantal(2)
De display-opdracht levert op: feb 29
Het is even oppassen als we bij een tabel een voorwaardenaam benoemen.
01 artikelgegevens. 03 jaar pic 9(4). 03 artikelnr pic x(7). 03 kwartaalomzet pic 9(5), occurs 4 times. 88 te-laag values 0 thru 999. 03 btw pic x.
Omdat de voorwaardenaam te-laag hoort bij kwartaalomzet, moeten we ook bij de voorwaardenaam een subscript vermelden.
if te-laag(2) then ...