000100 Identification Division. 000200 Program-id. ELEVBET2. 000300 Environment Division. 000400 Configuration Section. 000500 Special-Names. 000600 Decimal-Point is Comma 000700 . 000800 Input-Output Section. 000900 File-Control. 001000 Select Elev-Fil Assign to ELEVFIL 001100 Organization is Indexed 001200 Access is Dynamic 001300 Record Key is EF-Elev-Nummer 001400 Alternate Record Key is EF-Elev-Namn 001500 . 001600 Select Elev-Betalning Assign to ELEVBET 001700 Organization is Sequential 001800 Access is Sequential 001900 . 002000 Select Elev-Lista Assign to ELEVLIST 002100 Organization is Sequential. 002200 002300 Data Division. 002400 File Section. 002500 FD Elev-Fil. 002600 01 Elev-Fil-Post. 002700 88 Slut-Pa-Elev-Fil Value High-Value. 002800 05 EF-Elev-Nummer Pic X(07). 002900 05 Pic X(01). 003000 05 EF-Elev-Namn Pic X(30). 003100 05 EF-Kon Pic X(01). 003200 05 EF-Kurs-Kod Pic X(04). 003300 05 EF-Kurs-Kostnad Pic 9(04). 003400 05 EF-Kurs-Betalt Pic 9(04)V99. 003500 05 Pic X(27). 003600 003700 FD Elev-Betalning Recording Mode F. 003800 01 Elev-Betalning-Post. 003900 88 Slut-Pa-Elev-Betalning Value High-Value. 004000 05 EB-Elev-Nummer Pic X(07). 004100 05 EB-Betalning Pic 9(04)V99. 004200 05 Pic X(67). 004300 004400 FD Elev-Lista Recording Mode F. 004500 01 Elev-Lista-Rad Pic X(120). 004600 004700 Working-Storage Section. 004800 01 Rapport-Blankrad Pic X(10) Value Space. 004900 005000 01 Rapport-Rubrik1. 005100 05 Pic X(25) Value Space. 005200 05 Pic X(40) Value 'Utestaende betalningar for elever'. 005300 005400 01 Rapport-Rubrik2. 005500 05 Pic X(30) Value 'Elevnamn'. 005600 05 Pic X(12) Value 'Elevnr'. 005700 05 Pic X(11) Value 'Avgift'. 005800 05 Pic X(13) Value 'Betalt'. 005900 05 Pic X(10) Value 'Rest'. 006000 006100 01 Rapport-Fot. 006200 05 Pic X(25) Value Space. 006300 05 Pic X(30) Value '*** S L U T pa Rapport ***'. 006400 006500 01 Elev-Detaljrad. 006600 05 ED-Elev-Namn Pic X(30). 006700 05 ED-Elev-Nummer Pic X(11). 006800 05 ED-Avgift Pic Z(03)9,99. 006900 05 Pic X(04) Value Space. 007000 05 ED-Betalt Pic Z(04),99. 007100 05 Pic X(04) Value Space. 007200 05 ED-Rest Pic Z(03)9,99. 007300 007400 01 Nagra-Variabler. 007500 05 Rest-Betalning Pic 9(04)V99 Value 0. 007600 007700 Linkage Section. 007800 01 JCL-Parameter. 007900 05 Param-Langd Pic S9(04) Binary. 008000 05 Param-Data Pic X(04). 008100 88 Alla Value 'ALLA'. 008200 008300 008400 Procedure Division Using JCL-Parameter. 008500 Perform Kontrollera-JCL-Parameter 008600 008700 Perform Oppna-Alla-Filer 008800 008900 Perform Skriv-Rubriker 009000 009100 Perform Laes-Elev-Betalning Until 009200 Slut-Pa-Elev-Betalning 009300 009400 Perform Skriv-Detaljrader 009500 009600 Perform Skriv-Rapportslut 009700 009800 Perform Stang-Alla-Filer 009900 GoBack 010000 . 010100*---------------------------------------------- 010200 Kontrollera-JCL-Parameter. 010300*---------------------------------------------- 010400 If Param-Langd > 0 And 010500 Not Alla 010600 Display '*** Parameter felaktig' 010700 Move 99 to Return-Code 010800 GoBack 010900 End-If 011000 . 011100*---------------------------------------------- 011200 Laes-Elev-Betalning. 011300*---------------------------------------------- 011400 Read Elev-Betalning 011500 At End 011600 Set Slut-Pa-Elev-Betalning to True 011700 Display '*** Slut på Elev-Betalning' 011800 Not At End 011900 Perform Uppdatera-Elev-Fil 012000 End-Read 012100 . 012200 012300*---------------------------------------------- 012400 Uppdatera-Elev-Fil. 012500*---------------------------------------------- 012600 Move EB-Elev-Nummer to EF-Elev-Nummer 012700 Read Elev-Fil 012800 Invalid Key 012900 Display 'Post i Elev-fil saknas för elevnummer: ' 013000 EB-Elev-Nummer 013100 Move 99 to Return-Code 013200 GoBack 013300 End-Read 013400 013500 Add EB-Betalning to EF-Kurs-Betalt 013600 013700 Rewrite Elev-Fil-Post 013800 Invalid Key 013900 Display 'Gick ej att uppdatera Elev-Fil,' 014000 ' elevnummer: ' EB-Elev-Nummer 014100 Move 99 to Return-Code 014200 GoBack 014300 End-Rewrite 014400 . 014500*---------------------------------------------- 014600 Skriv-Detaljrader. 014700*---------------------------------------------- 014800 Move Space to EF-Elev-Namn 014900 Start Elev-Fil Key is > EF-Elev-Namn 015000 015100 Perform Until Slut-Pa-Elev-Fil 015200 Read Elev-Fil Next Record 015300 At End 015400 Set Slut-Pa-Elev-Fil to True 015500 Not At End 015600 Compute Rest-Betalning = EF-Kurs-Kostnad - 015700 EF-Kurs-Betalt 015800 If Rest-Betalning Is Greater Than Zero 015900 Or Alla 016000 Move EF-Elev-Namn to ED-Elev-Namn 016100 Move EF-Elev-Nummer to ED-Elev-Nummer 016200 Move EF-Kurs-Kostnad to ED-Avgift 016300 Move EF-Kurs-Betalt to ED-Betalt 016400 Move Rest-Betalning to ED-Rest 016500 Write Elev-Lista-Rad from Elev-Detaljrad 016600 End-If 016700 End-Read 016800 End-Perform 016900 . 017000*---------------------------------------------- 017100 Skriv-Rubriker. 017200*---------------------------------------------- 017300 Write Elev-Lista-Rad from Rapport-Rubrik1 017400 Write Elev-Lista-Rad from Rapport-Blankrad 017500 Write Elev-Lista-Rad from Rapport-Rubrik2 017600 Write Elev-Lista-Rad from Rapport-Blankrad 017700 . 017800*---------------------------------------------- 017900 Skriv-Rapportslut. 018000*---------------------------------------------- 018100 Write Elev-Lista-Rad from Rapport-Blankrad 018200 Write Elev-Lista-Rad from Rapport-Fot 018300 . 018400*---------------------------------------------- 018500 Oppna-Alla-Filer. 018600*---------------------------------------------- 018700 Open Input Elev-Betalning 018800 Open I-O Elev-Fil 018900 Open Output Elev-Lista 019000 . 019100*---------------------------------------------- 019200 Stang-Alla-Filer. 019300*---------------------------------------------- 019400 Close Elev-Fil 019500 Close Elev-Betalning 019600 Close Elev-Lista 019700 . 019800*---------------------------------------------- 019900 End Program ELEVBET2. 020000*----------------------------------------------