000100 Identification Division. 000200 Program-Id. OVN171 000300 Environment Division. 000400 Input-Output Section. 000500 File-Control. 000600 Select GRPFIL Assign to GRPDD 000700 Organization is Indexed 000800 Access Is Sequential 000900 Record Key is NYCKEL 001000 . 001100 Select ARTFIL Assign to ARTDD 001200 Organization is Sequential 001300 Access Is Sequential 001400 File Status is Artfil-Status 001500 . 001600 Select LISTFIL Assign to LISTDD 001700 Organization is Sequential 001800 Access Is Sequential 001900 . 002000 Data Division. 002100 File Section. 002200 FD GRPFIL. 002300 01 Grpfil-Post. 002400 05 Nyckel Pic X(01). 002500 05 Grpfil-Beskrivning Pic X(79). 002600 002700 FD ARTFIL Recording Mode f 002800 Record Contains 80. 002900 01 Artfil-Post. 003000 05 Artfil-Nr Pic X(05). 003100 05 Pic X(01). 003200 05 Artfil-Namn Pic X(25). 003300 05 Pic X(01). 003400 05 Artfil-Typ Pic X(01). 003500 05 Pic X(01). 003600 05 Artfil-Lp1 Pic X(02). 003700 05 Artfil-Kv1 Pic 9(06). 003800 05 Artfil-Lp2 Pic X(02). 003900 05 Artfil-Kv2 Pic 9(06). 004000 05 Artfil-Lp3 Pic X(02). 004100 05 Artfil-Kv3 Pic 9(06). 004200 05 Pic X(22). 004300 004400 FD LISTFIL Recording Mode f 004500 Record Contains 120. 004600 01 List-Rad Pic X(120). 004700 004800 004900 Working-Storage Section. 005000 01 Grp-Tabell. 005100 05 Grp-Tabellrad occurs 25 005200 Depending on Tabant 005300 Ascending Key is Grp-Nyckel 005400 Indexed by Tabindex. 005500 10 Grp-Nyckel Pic X(01). 005600 10 Grp-Beskrivning Pic X(25). 005700 005800 01 Raknare-och-Annat. 005900 05 Tabant Pic 99 Value 0. 006000 05 Radnummer Pic 99 Value 0. 006100 88 Radstart Value 0. 006200 88 Radmax Value 25. 006300 05 Sidnr Pic 99 Value 0. 006400 88 ListStart Value 0. 006500 05 Gammal-Grupp Pic X Value Space. 006600 05 Ny-Grupp Pic X. 006700 006800 01 Summor. 006900 05 Artfil-Radsumma Pic 9(06) Value 0. 007000 05 Artfil-Kv1-Summa Pic 9(06) Value 0. 007100 05 Artfil-Kv2-Summa Pic 9(06) Value 0. 007200 05 Artfil-Kv3-Summa Pic 9(06) Value 0. 007300 05 Artfil-Kv1-Total Pic 9(06) Value 0. 007400 05 Artfil-Kv2-Total Pic 9(06) Value 0. 007500 05 Artfil-Kv3-Total Pic 9(06) Value 0. 007600 007700 01 Artfil-Meddelande. 007800 05 Pic X(35) Value 'ARTFIL gick ej att öppna, status: '. 007900 05 Artfil-Status Pic X(02) Value Space. 008000 88 Artfil-Openfel Value '01' thru '99'. 008100 008200 01 Villkor Pic 9 Value 0. 008300 88 Klar Value 1. 008400 88 Tabklar Value 2. 008500 008600 01 List-Separator. 008700 05 Pic X(120) Value All '_'. 008800 008900 01 List-Blankrad. 009000 05 Pic X(120) Value All Space. 009100 009200 01 List-Rubrik. 009300 05 Pic X(65) Value 'Utskrift av Artikelregister'. 009400 05 Pic X(07) Value 'Sidnr:'. 009500 05 List-Sidnr Pic Z(02). 009600 009700 01 List-Summa. 009800 05 Pic X(38) Value 'Totalsummor'. 009900 05 List-Kv1-Summa Pic Z(06). 010000 05 Pic X(05) Value Space. 010100 05 List-Kv2-Summa Pic Z(06). 010200 05 Pic X(05) Value Space. 010300 05 List-Kv3-Summa Pic Z(06). 010400 010500 01 List-Slutrad. 010600 05 Pic X(120) Value 'Slut på utskrift'. 010700 010800 01 List-Artikelgrupp. 010900 05 List-Beskrivning Pic X(25). 011000 011100 01 List-ArtikelRubrik. 011200 05 Pic X(06) Value 'Artnr'. 011300 05 Pic X(26) Value 'Artnamn'. 011400 05 Pic X(02) Value Space. 011500 05 Pic X(04) Value 'Lp1'. 011600 05 Pic X(07) Value 'Antal'. 011700 05 Pic X(04) Value 'Lp2'. 011800 05 Pic X(07) Value 'Antal'. 011900 05 Pic X(04) Value 'Lp3'. 012000 05 Pic X(07) Value 'Antal'. 012100 05 Pic X(05) Value 'Summa'. 012200 012300 01 List-ArtikelRad. 012400 05 Artfil-Nr Pic X(05). 012500 05 Pic X(01) Value Space. 012600 05 Artfil-Namn Pic X(25). 012700 05 Pic X(01) Value Space. 012800 05 Artfil-Typ Pic X(01). 012900 05 Pic X(01) Value Space. 013000 05 Artfil-Lp1 Pic X(02). 013100 05 Pic X(02) Value Space. 013200 05 Artfil-Kv1 Pic Z(06). 013300 05 Pic X(01) Value Space. 013400 05 Artfil-Lp2 Pic X(02). 013500 05 Pic X(02) Value Space. 013600 05 Artfil-Kv2 Pic Z(06). 013700 05 Pic X(01) Value Space. 013800 05 Artfil-Lp3 Pic X(02). 013900 05 Pic X(02) Value Space. 014000 05 Artfil-Kv3 Pic Z(06). 014100 05 Pic X(01) Value Space. 014200 05 Artfil-Summa Pic Z(06). 014300 014400 Procedure Division. 014500 Perform Initiera 014600 Perform Fyll-Grptabell 014700 Perform Until Klar 014800 Read ARTFIL 014900 At End 015000 Set KLAR to True 015100 Not At End 015200 Perform Skrivut 015300 End-Read 015400 End-Perform 015500 Perform Skriv-List-Summa 015600 Perform Skriv-List-Slutrad 015700 Perform Avsluta 015800 GoBack 015900 . 016000 Initiera. 016100 Open Input ARTFIL 016200 If Artfil-Openfel 016300 Move 99 to Return-Code 016400 Display Artfil-Meddelande 016500 Stop Run 016600 Else 016700 Display 'OPEN av ARTFIL ok...' 016800 Open Output LISTFIL 016900 Display 'OPEN av LISTFIL ok...' 017000 Open Input GRPFIL 017100 Display 'OPEN av GRPFIL ok...' 017200 End-If 017300 . 017400 Fyll-Grptabell. 017500 Perform Until Tabklar 017600 Read Grpfil 017700 At End 017800 Set Tabklar to True 017900 Not At End 018000 Add 1 to Tabant 018100 Move Grpfil-Post to Grp-Tabellrad(Tabant) 018200 End-Read 018300 End-Perform 018400 . 018500 Skrivut. 018600 Move Artfil-Nr in Artfil-Post(1:1) to Ny-Grupp 018700 Perform Kontrollera-Brytning 018800 Move Corr Artfil-Post 018900 to List-ArtikelRad 019000 Perform Summeringar 019100 019200 Write List-Rad 019300 from List-ArtikelRad 019400 Add 1 to Radnummer 019500 Move Ny-Grupp to Gammal-Grupp 019600 . 019700 Kontrollera-Brytning. 019800 Evaluate True 019900 When Liststart 020000 Perform Skriv-List-Rubrik 020100 Perform Skriv-Artikel-Rubrik 020200 Perform Skriv-Artikel-Grupp 020300 When Gammal-Grupp Not Equal Ny-Grupp 020400 Perform Skriv-List-Summa 020500 Perform Skriv-Artikel-Rubrik 020600 Perform Skriv-Artikel-Grupp 020700 When Radmax 020800 Perform Skriv-List-Rubrik 020900 Perform Skriv-Artikel-Rubrik 021000 Set Radstart to True 021100 End-Evaluate 021200 . 021300 Summeringar. 021400 Add Artfil-Kv1 in Artfil-Post to 021500 Artfil-Kv1-Summa Artfil-RadSumma 021600 Artfil-Kv1-Total 021700 Add Artfil-Kv2 in Artfil-Post to 021800 Artfil-Kv2-Summa Artfil-RadSumma 021900 Artfil-Kv2-Total 022000 Add Artfil-Kv3 in Artfil-Post to 022100 Artfil-Kv3-Summa Artfil-RadSumma 022200 Artfil-Kv3-Total 022300 Move Artfil-Radsumma to Artfil-Summa 022400 Move Zero to Artfil-Radsumma 022500 . 022600 Skriv-Artikel-Grupp. 022700 Move Ny-Grupp to Nyckel 022800 Search All Grp-Tabellrad 022900 At End 023000 Move '*** I/U ***' 023100 to List-Beskrivning 023200 When Grp-Nyckel(Tabindex) = Ny-Grupp 023300 Move Grp-Beskrivning(Tabindex) 023400 to List-Beskrivning 023500 End-Search 023600 Write List-Rad 023700 from List-Artikelgrupp 023800 . 023900 Skriv-Artikel-Rubrik. 024000 Write List-Rad 024100 from List-Blankrad 024200 Write List-Rad 024300 from List-ArtikelRubrik 024400 Write List-Rad 024500 from List-Separator 024600 . 024700 Skriv-List-Rubrik. 024800 Add 1 to Sidnr 024900 Move Sidnr to List-Sidnr 025000 025100 Write List-Rad 025200 from List-Rubrik 025300 . 025400 Skriv-List-Slutrad. 025500 Write List-Rad 025600 from List-Separator 025700 Write List-Rad 025800 from List-Slutrad 025900 . 026000 Skriv-List-Summa. 026100 Move Artfil-Kv1-Summa to List-Kv1-Summa 026200 Move Artfil-Kv2-Summa to List-Kv2-Summa 026300 Move Artfil-Kv3-Summa to List-Kv3-Summa 026400 Write List-Rad 026500 from List-Separator 026600 Write List-Rad 026700 from List-Summa 026800 Move 0 to Artfil-Kv1-Summa 026900 Artfil-Kv2-Summa 027000 Artfil-Kv3-Summa 027100 If Klar 027200 Move Artfil-Kv1-Total to List-Kv1-Summa 027300 Move Artfil-Kv2-Total to List-Kv2-Summa 027400 Move Artfil-Kv3-Total to List-Kv3-Summa 027500 Write List-Rad 027600 from List-Separator 027700 Write List-Rad 027800 from List-Summa 027900 End-If 028000 . 028100 Avsluta. 028200 Close ARTFIL 028300 Display 'CLOSE av ARTFIL ok...' 028400 Close ARTFIL 028500 Display 'CLOSE av LISTFIL ok...' 028600 Close GRPFIL 028700 Display 'CLOSE av GRPFIL ok...' 028800 Display 'Programmet avslutar...' 028900 .