000100 cbl fastsrt 000200 Identification Division. 000300 Program-Id. FARTYG3. 000400 Environment Division. 000500 Configuration Section. 000600 Special-Names. 000700 Decimal-Point is Comma 000800 . 000900 Input-Output Section. 001000 File-Control. 001100 Select Regioner-Fil Assign to FARTREG 001200 Organization is Relative 001300 Access Is Random 001400 Relative Key is Reg-Rel-Rec-Num 001500 . 001600 Select Kostnader-Fil Assign to FARTKOST 001700 Organization is Sequential 001800 Access Is Sequential 001900 . 002000 Select Nya-Kostnader-Fil Assign to FARTKNYA 002100 Organization is Sequential 002200 Access Is Sequential 002300 . 002400 Select Typer-Fil Assign to FARTTYP 002500 Organization is Sequential 002600 Access Is Sequential 002700 . 002800 Select Rapport-Fil Assign to FARTRAPP 002900 Organization is Sequential 003000 Access Is Sequential 003100 . 003200 Select Fellogg-Fil Assign to FARTFEL 003300 Organization is Sequential 003400 Access Is Sequential 003500 . 003600 Select Trans-Fil Assign to FARTTRAN 003700 Organization is Sequential 003800 Access Is Sequential 003900 . 004000 Data Division. 004100 File Section. 004200 004300 004400 FD Regioner-Fil. 004500 01 REG-Post. 004600 05 Reg-Namn Pic X(80). 004700 004800 FD Kostnader-Fil Recording F. 004900 01 Kost-Post. 005000 05 Pic X(03). 005100 05 Kost-Post-Region Pic X(77). 005200 005300 FD Nya-Kostnader-Fil Recording F. 005400 01 Nya-Kost-Post. 005500 05 Pic X(03). 005600 05 Nya-Kost-Post-Region Pic X(77). 005700 005800 FD Typer-Fil Recording F. 005900 01 TYP-Post. 006000 05 Typ-Kod Pic 9(02). 006100 05 Typ-Namn Pic X(25). 006200 05 Pic X(53). 006300 006400 FD Rapport-Fil Recording F. 006500 01 Rapport-Post Pic X(120). 006600 006700 FD Trans-Fil Recording F. 006800 01 Trans-Fil-Post. 006900 05 In-Reg-Num Pic 9(02). 007000 05 Pic X(01). 007100 05 In-Typ-Kod Pic 9(02). 007200 05 Pic X(01). 007300 05 In-Procent Pic 9(02). 007400 05 Pic X(72). 007500 007600 FD Fellogg-Fil Recording F. 007700 01 Fellogg-Post Pic X(120). 007800 007900 Working-Storage Section. 008000 008100 01 Villkor Pic 9(01) Value 0. 008200 88 Inga-Fler-Typer Value 2. 008300 88 Inga-Fler-Kostnader Value 3. 008400 88 Inga-Fler-Transar Value 4. 008500 88 Fel-Pa-Trans Value 5. 008600 88 Inga-Fel-Pa-Trans Value 6. 008700 008800 01 Reg-Rel-Rec-Num Pic 9(01). 008900 01 Kostnader-Regnum Pic 9(02) Value 0. 009000 009100 01 Skriv-Antal Pic 9(02) Value 0. 009200 01 Typ-Antal Pic 9(02) Value 0. 009300 01 Typ-Tabell. 009400 05 Tab-Typ-Rad Occurs 50 Depending on 009500 Typ-Antal 009600 Indexed By Tx1. 009700 10 Tab-Typ Pic X(03). 009800 10 Tab-Namn Pic X(25). 009900 010000 01 Innan-Kostnad Pic 9(04)v99. 010100 01 Efter-Kostnad Pic 9(04). 010200 01 Regions-Antal Pic 9(02) VAlue 0. 010300 010400 01 Kostnads-Tabell. 010500 05 Kostnad-Region Occurs 5. 010600 10 Kostnad-Manad Occurs 12. 010700 15 Kostnad-Typ Pic 9(04). 010800* 010900*01 Kostnads-Tabell. 011000* 05 Kostnad-Region Occurs 5. 011100* 10 Kostnad-Typ Occurs 12 Pic 9(04). 011200* 011300 011400 01 Blank-Rad Pic X(10) Value Space. 011500 011600 01 Rapport-Slutrad. 011700 05 Pic X(20). 011800 05 Pic X(60) Value '*** S L U T på rapport ***'. 011900 012000 01 Rapport-Rubrik. 012100 05 Pic X(20). 012200 05 Pic X(60) Value 'USSR Kostnadsökning'. 012300 012400 01 Sid-Rubrik1. 012500 05 Pic X(20) Value 'Region'. 012600 05 Pic X(20) Value 'Fartygs-Typ'. 012700 05 Pic X(15) Value 'Månadskostnad'. 012800 05 Pic X(15) Value 'Månadskostnad'. 012900 05 Pic X(15) Value 'Höjning %'. 013000 013100 01 Sid-Rubrik2. 013200 05 Pic X(40) Value Space. 013300 05 Pic X(15) Value 'Innan Höjning'. 013400 05 Pic X(15) Value 'Efter Höjning'. 013500 013600 01 Detalj-Rad. 013700 05 DR-Reg-Namn Pic X(20). 013800 05 DR-Typ-Namn Pic X(20). 013900 05 Pic X(02). 014000 05 DR-Manadskostnad1 Pic Z(03).9(03). 014100 05 Pic X(08). 014200 05 DR-Manadskostnad2 Pic Z(03).9(03). 014300 05 Pic X(09). 014400 05 DR-Procent Pic ZZ. 014500 014600 Procedure Division. 014700 Perform Oppna-Alla-Filer 014800 Perform Fyll-Typ-Tabell 014900 Perform Fyll-Kostnad-Tabell 015000 Perform Skriv-Rubriker 015100 Perform Hamta-Trans-fil-Post 015200 Perform Until Inga-Fler-Transar 015300 Perform Kontrollera-Trans-Fil-Post 015400 If Fel-Pa-Trans 015500 Perform Skriv-Fellogg 015600 Set Inga-Fel-Pa-Trans to True 015700 Else 015800 Perform Uppdatera-Kostnader 015900 Perform Skriv-Detaljrad 016000 End-If 016100 Perform Hamta-Trans-Fil-Post 016200 End-Perform 016300 Perform Skriv-Kostnader-Till-Fil 016400 Perform Skriv-Slutrad 016500 Perform Stang-Alla-Filer 016600 016700 GoBack 016800 . 016900*---------------------------------------- 017000 Hamta-Trans-Fil-Post. 017100*---------------------------------------- 017200 Read Trans-Fil 017300 At End 017400 Set Inga-Fler-Transar to True 017500 End-Read 017600 . 017700*---------------------------------------- 017800 Kontrollera-Trans-Fil-Post. 017900*---------------------------------------- 018000 018100 Display 'Kontrollerar Trans-Fil...' Trans-Fil-Post 018200 Perform Kontrollera-Region 018300 Perform Kontrollera-Typ 018400 . 018500*---------------------------------------- 018600 Kontrollera-Region. 018700*---------------------------------------- 018800 Move In-Reg-Num to Reg-Rel-Rec-Num 018900 Display 'Söker efter region: ' Reg-Rel-Rec-Num 019000 Read Regioner-Fil 019100 Invalid Key 019200 String 019300 'Felaktig regionskod: ' 019400 Reg-Rel-Rec-Num 019500 ' Transfil :' 019600 Trans-Fil-Post(1:10) 019700 Delimited By Size 019800 Into Fellogg-Post 019900 End-String 020000 Display '*** Fanns ej' 020100 Set Fel-Pa-Trans to True 020200 Move 66 to Return-Code 020300 Not Invalid Key 020400 Display 'Fann region: ' Reg-Namn 020500 Move Reg-Namn to DR-Reg-Namn 020600 End-Read 020700 . 020800*---------------------------------------- 020900 Kontrollera-Typ. 021000*---------------------------------------- 021100 Set Tx1 to 1 021200 Display 'Söker efter typ : ' In-Typ-Kod 021300 Search Tab-Typ-Rad 021400 AT End 021500 Display '*** Fanns ej' 021600 String 021700 'Felaktig typkod: ' 021800 In-Typ-Kod 021900 ' Transfil :' 022000 Trans-Fil-Post(1:10) 022100 Delimited By Size 022200 Into Fellogg-Post 022300 End-String 022400 Set Fel-Pa-Trans to True 022500 Move 66 to Return-Code 022600 When Tab-Typ(Tx1) = In-Typ-Kod 022700 Move Tab-Namn(Tx1) to DR-Typ-Namn 022800 Display 'Fann typ ' DR-Typ-Namn 022900 End-Search 023000 Display Space 023100 . 023200*---------------------------------------- 023300 Uppdatera-Kostnader. 023400*---------------------------------------- 023500 Display 'Uppdaterar-Kostnader...' 023600 Move Kostnad-Typ(In-Reg-Num In-Typ-Kod) to Innan-Kostnad 023700 Compute Efter-Kostnad Rounded = Innan-Kostnad * 023800 (1 + in-Procent / 100) 023900 024000 Display 'Region: ' In-Reg-Num 024100 Display 'Typ: ' In-Typ-Kod 024200 Display 'Innan-kostnad: ' Innan-Kostnad 024300 Display 'Efter-kostnad: ' Efter-Kostnad 024400 Display Space 024500 Move Innan-Kostnad to Dr-Manadskostnad1 024600 Move Efter-Kostnad to Dr-Manadskostnad2 024700 Kostnad-Typ(In-Reg-Num In-Typ-Kod) 024800 024900 Move In-Procent to Dr-Procent 025000 . 025100*---------------------------------------- 025200 Skriv-Kostnader-Till-Fil. 025300*---------------------------------------- 025400 Display '*** Reg-Antal: ' Kostnader-Regnum 025500 Perform Until Regions-Antal = Kostnader-Regnum 025600 Add 1 to Regions-Antal 025700 Write Nya-Kost-Post from Kostnad-Region(Regions-Antal) 025800 End-Perform 025900 Display '*** Klar: Skrivit : ' Regions-Antal 'poster' 026000 . 026100*---------------------------------------- 026200 Fyll-Kostnad-Tabell. 026300*---------------------------------------- 026400 Perform Until Inga-Fler-Kostnader 026500 Read Kostnader-Fil 026600 At End 026700 Set Inga-Fler-Kostnader to True 026800 Not AT End 026900 Add 1 to Kostnader-Regnum 027000 Move Kost-Post-Region 027100 to Kostnad-Region(Kostnader-Regnum) 027200 End-Read 027300 End-Perform 027400 . 027500*---------------------------------------- 027600 Fyll-Typ-Tabell. 027700*---------------------------------------- 027800 Perform Until Inga-Fler-Typer 027900 Read Typer-Fil 028000 At End 028100 Set Inga-Fler-Typer to True 028200 Display 'Har fyllt TYP-Tabellen med ' 028300 Typ-Antal ' rader' 028400 Not At End 028500 Add 1 to Typ-Antal 028600 Move Typ-Post to Tab-Typ-Rad(Typ-Antal) 028700 Display '==> ' Tab-Namn(Typ-Antal) 028800 End-Read 028900 End-Perform 029000 . 029100*---------------------------------------- 029200 Skriv-Detaljrad. 029300*---------------------------------------- 029400 Write Rapport-Post from Detalj-Rad 029500 Write Rapport-Post from Blank-Rad 029600 . 029700*---------------------------------------- 029800 Skriv-Rubriker. 029900*---------------------------------------- 030000 Write Rapport-Post from Rapport-Rubrik 030100 Write Rapport-Post from Blank-Rad 030200 Write Rapport-Post from Sid-Rubrik1 030300 Write Rapport-Post from Sid-Rubrik2 030400 Write Rapport-Post from Blank-Rad 030500 . 030600*---------------------------------------- 030700 Skriv-Slutrad. 030800*---------------------------------------- 030900 Write Rapport-Post from Blank-Rad 031000 Write Rapport-Post from Rapport-Slutrad 031100 . 031200*---------------------------------------- 031300 Skriv-Fellogg. 031400*---------------------------------------- 031500 Display 'Skriver fellogg..' 031600 Write Fellogg-Post 031700 . 031800*---------------------------------------- 031900 Oppna-Alla-Filer. 032000*---------------------------------------- 032100 Open Input Regioner-Fil 032200 Open Input Kostnader-Fil 032300 Open Input Typer-Fil 032400 Open Input Trans-Fil 032500 Open Output Nya-Kostnader-Fil 032600 Open Output Rapport-Fil 032700 Open Output Fellogg-Fil 032800 032900 Display 'Alla filer är öppnade...' 033000 . 033100*---------------------------------------- 033200 Stang-Alla-Filer. 033300*---------------------------------------- 033400 Close Regioner-Fil 033500 Close Kostnader-Fil 033600 Close Nya-Kostnader-Fil 033700 Close Typer-Fil 033800 Close Trans-Fil 033900 Close Rapport-Fil 034000 Close Fellogg-Fil 034100 034200 Display 'Alla filer är öppnade...' 034300 . 034400*---------------------------------------- 034500 End Program FARTYG3. 034600*----------------------------------------