000100 Identification Division. 000200 Program-id. BOKLIST1. 000300 Environment Division. 000400 Configuration Section. 000500 Special-Names. 000600 Decimal-Point is Comma. 000700 000800 Input-Output Section. 000900 File-Control. 001000 Select Bok-Info Assign to BOKINFO 001100 Organization is Indexed 001200 Access is Random 001300 Record Key is BI-Boknummer 001400 . 001500 Select Bok-Order Assign to BOKORDER 001600 Organization is Sequential 001700 . 001800 Select Sorterad-Bok-Order Assign to BOKSORT 001900 . 002000 Select Bok-Lista Assign to BOKLISTA 002100 Organization is Sequential. 002200 002300 Data Division. 002400 File Section. 002500 FD Bok-Info. 002600 01 Bok-Info-Post. 002700 88 Slut-Pa-Bok-Info Value High-Value. 002800 05 BI-BokNummer Pic X(05). 002900 05 BI-BokTitel Pic X(25). 003000 05 BI-Forfattare Pic X(25). 003100 05 Pic X(25). 003200 003300 FD Bok-Order Recording Mode F. 003400 01 BO-Post. 003500 88 Slut-Pa-Bok-Order Value High-Value. 003600 05 BO-BokNummer Pic X(05). 003700 05 BO-Kopior Pic 9(02). 003800 05 BO-Status Pic X(01). 003900 88 Normal Value 'N'. 004000 05 Pic X(72). 004100 004200 FD Bok-Lista Recording Mode F. 004300 01 BL-Rad Pic X(120). 004400 004500 SD Sorterad-Bok-Order. 004600 01 SB-Post. 004700 88 Slut-Pa-Sorterad-Bok-Order Value High-Value. 004800 05 SB-BokNummer Pic X(05). 004900 05 SB-Kopior Pic 9(02). 005000 05 Pic X(73). 005100 005200 Working-Storage Section. 005300 01 Rapport-Blankrad Pic X(10) Value Space. 005400 005500 01 Rapport-Rubrik1. 005600 05 Pic X(25) Value Space. 005700 05 Pic X(35) Value '*** Topp 10 Bastsaljare ***'. 005800 005900 01 Rapport-Rubrik2. 006000 05 Pic X(05) Value 'Ord'. 006100 05 Pic X(10) Value 'Boknr'. 006200 05 Pic X(25) Value 'Boktitel'. 006300 05 Pic X(02) Value Space. 006400 05 Pic X(29) Value 'Forfattare'. 006500 05 Pic X(5) Value 'Antal'. 006600 006700 01 Rapport-Fot. 006800 05 Pic X(25) Value Space. 006900 05 Pic X(30) Value '*** S L U T pa Rapport ***'. 007000 007100 01 Bok-Detaljrad. 007200 05 BD-Ordning Pic Z9. 007300 05 Pic X(01) Value '.'. 007400 05 Pic X(01) Value Space. 007500 05 BD-BokNummer Pic X(05). 007600 05 Pic X(05) Value Space. 007700 05 BD-BokTitel Pic X(25). 007800 05 Pic X(02) Value Space. 007900 05 BD-Forfattare Pic X(25). 008000 05 Pic X(02) Value Space. 008100 05 BD-Antal Pic Z(03).ZZ9. 008200 008300 01 Tabell-Ordning. 008400 05 Tabell-Rad Occurs 11 Times. 008500 10 TR-BokNummer Pic 9(05). 008600 10 TR-Boktitel Pic X(25). 008700 10 TR-Forfattare Pic X(25). 008800 10 TR-Antal Pic 9(04) Value 0. 008900 009000 01 Nagra-Variabler. 009100 05 Sparat-BokNummer Pic X(05). 009200 05 TotalAntal Pic 9(04) Value 0. 009300 05 Tabrad Pic 9(02). 009400 009500 01 Villkor Pic 9(01) Value 0. 009600 88 EjKlar Value 0. 009700 88 Klar Value 1. 009800 009900 Procedure Division. 010000 Perform Oppna-Alla-Filer 010100 010200 Sort Sorterad-Bok-Order 010210 On Ascending Key SB-Boknummer 010300 Input Procedure Laes-Bok-Order 010400 Output Procedure Is Laes-Sorterad-Bok-Order 010500 010600 If Sort-Return Not = 0 010700 Display '*** Sorteringen fick returkod: ' Sort-Return 010800 Move Sort-Return to Return-Code 010810 GoBack 010900 End-If 011000 011100 Perform Skriv-Rubriker 011200 Perform Skriv-Detaljrader 011300 Perform Skriv-Rapportslut 011400 011500 GoBack 011600 . 011700*---------------------------------------------- 011800 Laes-Bok-Order. 011900*---------------------------------------------- 012000 Perform Until Slut-Pa-Bok-Order 012100 Read Bok-Order 012200 At End 012300 Set Slut-Pa-Bok-Order to True 012400 Display '*** Slut på order' 012500 012600 Not At End 012700 If Normal 012800 Release SB-Post from BO-Post 012900 End-If 013000 End-Read 013100 End-Perform 013200 . 013300 013400*---------------------------------------------- 013500 Laes-Sorterad-Bok-Order. 013600*---------------------------------------------- 013710 Perform Until Slut-Pa-Sorterad-Bok-Order 013800 Return Sorterad-Bok-Order 013900 At End 014000 Set Slut-Pa-Sorterad-Bok-Order to True 014010 Not At End 014400 Move SB-Boknummer to Sparat-Boknummer 014500 Move Zero to Totalantal 014600 014700 Perform Until SB-Boknummer 014710 Not Equal Sparat-Boknummer or 014800 Slut-Pa-Sorterad-Bok-Order 014900 Add SB-Kopior to Totalantal 014910 Return Sorterad-Bok-Order 014920 At End 014930 Set Slut-Pa-Sorterad-Bok-Order to True 014940 End-Return 015000 End-Perform 015400 End-Return 015500 Perform Skapa-Bok-Detaljer-Tabell 015600 End-Perform 015700 . 015800*---------------------------------------------- 015900 Skapa-Bok-Detaljer-Tabell. 016000*---------------------------------------------- 016100 If Sparat-Boknummer Not Equal SB-Boknummer 016200 Move Sparat-Boknummer to BI-Boknummer 016300 Move SB-Boknummer to Sparat-Boknummer 016400 Read Bok-Info 016500 Invalid Key 016600 Display 'Bok saknas i Bok-Info' 016700 Move 99 to Return-Code 016800 GoBack 016900 Not Invalid Key 017000 Perform Uppdatera-Tabellen 017100 End-Read 017200 Else 017300 Add SB-Kopior to Totalantal 017400 End-If 017500 . 017600 017700*---------------------------------------------- 017800 Uppdatera-Tabellen. 017900*---------------------------------------------- 018000 Set EjKlar to True 018100 Perform Varying Tabrad from 10 by -1 until Tabrad < 1 018200 or Klar 018300 018400 If Totalantal > TR-Antal(Tabrad) 018500 Move Tabell-Rad(Tabrad) to Tabell-Rad(Tabrad + 1) 018600 Move BI-Boknummer to TR-Boknummer(Tabrad) 018700 Move BI-Boktitel to TR-Boktitel(Tabrad) 018800 Move BI-Forfattare to TR-Forfattare(Tabrad) 018900 Move Totalantal to TR-Antal(Tabrad) 019000 Else 019100 Set Klar to True 019200 End-If 019300* Perform Display-Tabell 019400 End-Perform 019500 . 019600*---------------------------------------------- 019700 Skriv-Rubriker. 019800*---------------------------------------------- 019900 Write BL-Rad from Rapport-Rubrik1 020000 Write BL-Rad from Rapport-Blankrad 020100 Write BL-Rad from Rapport-Rubrik2 020200 Write BL-Rad from Rapport-Blankrad 020300 . 020400*---------------------------------------------- 020500 Skriv-Detaljrader. 020600*---------------------------------------------- 020700 Perform Varying Tabrad from 1 by 1 020800 Until Tabrad > 10 020900 Move Tabrad to BD-Ordning 021000 Move TR-Boknummer(Tabrad) to BD-BokNummer 021100 Move TR-Boktitel(Tabrad) to BD-BokTitel 021200 Move TR-Forfattare(Tabrad) to BD-Forfattare 021300 Move TR-Antal(Tabrad) to BD-Antal 021400 Write BL-Rad from Bok-Detaljrad 021500 End-Perform 021600 . 021700*---------------------------------------------- 021800 Skriv-Rapportslut. 021900*---------------------------------------------- 022000 Write BL-Rad from Rapport-Blankrad 022100 Write BL-Rad from Rapport-Fot 022200 . 022300*---------------------------------------------- 022400 Oppna-Alla-Filer. 022500*---------------------------------------------- 022600 Open Input Bok-Info 022700 Open Input Bok-Order 022800 Open Output Bok-Lista 022900 . 023000*---------------------------------------------- 023100 Display-Tabell. 023200*---------------------------------------------- 023300 Display '==> ' Tabell-Rad(1) 023400 Display '==> ' Tabell-Rad(2) 023500 Display '==> ' Tabell-Rad(3) 023600 Display '==> ' Tabell-Rad(4) 023700 Display '==> ' Tabell-Rad(5) 023800 Display '==> ' Tabell-Rad(6) 023900 Display '==> ' Tabell-Rad(7) 024000 Display '==> ' Tabell-Rad(8) 024100 Display '==> ' Tabell-Rad(9) 024200 Display '==> ' Tabell-Rad(10) 024300 Display '==> ' Tabell-Rad(11) 024400 . 024500*---------------------------------------------- 024600 End Program BOKLIST1. 024700*----------------------------------------------