home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* HAKAJST.PAS *)
- (* Jahres-Statistik fuer HAKA Version 1.0 *)
- PROCEDURE Jahr_Stat;
- TYPE
- Jahr_Dat = RECORD (* Record fuer Jahresstatistik *)
- Lmit, Tart, Lit, Kfz, Post, Kleid,
- Woh, Buro, Frei, Dive, Guth, Eink : REAL;
- END;
- VAR
- Jahr_Liste : Jahr_Dat;
- mon_count : INTEGER;
- ch : CHAR;
- dev : TEXT;
- temp1, temp2, (* Variable fuer prozentuale Verteilung: *)
- P_Lmit, P_Tart, P_Lit, P_Kfz, P_Post,
- P_Kleid, P_Woh, P_Buro, P_Frei, P_Dive: REAL;
- BEGIN
- ClrScr;
- WITH Jahr_Liste DO BEGIN (* Initialisieren *)
- Lmit := 0; Tart := 0; Lit := 0; Kfz := 0; Post := 0; Kleid := 0;
- Woh := 0; Buro := 0; Frei := 0; Dive := 0; Guth := 0; Eink := 0;
- END;
- GotoXY(9,1); Invers;
- Write('Ausgabe auf Drucker '); Normal; Write(' (D)'); Invers;
- Write(' oder Bildschirm '); Normal; Write(' (B)'); Invers;
- Write(' ? : '); Normal; Read(Kbd,ch); ch := UpCase(ch);
- IF ch = 'D' THEN
- BEGIN Assign(dev,'LST:'); WriteLn(dev); WriteLn(dev); END
- ELSE Assign(dev,'CON:');
- GotoXY(9,1); ClrEol;
- FOR mon_count := 1 TO 12 DO BEGIN (* Daten Lesen und in RECORD sichern *)
- Monats_Umwandlung(mon_count); Daten_Lesen;
- IF NOT KeineDaten THEN
- WITH Jahr_Liste DO BEGIN
- Lmit := Lmit + Liste.SummeL;
- Tart := Tart + Liste.SummeT;
- Lit := Lit + Liste.SummeLit;
- Kfz := Kfz + Liste.SummeKfz;
- Post := Post + Liste.SummePost;
- Kleid := Kleid+ Liste.SummeKleid;
- Woh := Woh + Liste.SummeWoh;
- Buro := Buro + Liste.SummeBuro;
- Frei := Frei + Liste.SummeFrei;
- Dive := Dive + Liste.SummeDiv;
- Guth := Guth + Liste.Guthaben_MonAnfang;
- Eink := Eink + Liste.Einkommen;
- END;
- END;
- ClrScr; GotoXY(0,0);
- WriteLn(dev,Blank,Blank,Jstat,' fuer das Jahr : ',Jahr);
- WriteLn(dev,underline); WriteLn(dev);
- temp1 := Jahr_Liste.Guth + Jahr_Liste.Eink;
- WITH Jahr_Liste DO BEGIN (* prozentuale Verteilung berechnen *)
- temp2 := Lmit+Tart+Lit+Kfz+Post+Kleid+Woh+Buro+Frei+Dive;
- P_Lmit :=(Lmit * 100)/temp2; P_Tart :=(Tart * 100)/temp2;
- P_Lit :=(Lit * 100)/temp2; P_Kfz :=(Kfz * 100)/temp2;
- P_Post :=(Post * 100)/temp2; P_Kleid :=(Kleid * 100)/temp2;
- P_Woh :=(Woh * 100)/temp2; P_Buro :=(Buro * 100)/temp2;
- P_Frei :=(Frei * 100)/temp2; P_Dive :=(Dive * 100)/temp2;
- END;
- WriteLn(dev,'Ihr Gesamtguthaben + Einkuenfte betrug : ',
- temp1:8:2,' DM');
- WriteLn(dev); WriteLn(dev,'Davon haben Sie ausgegeben '); WriteLn(dev);
- WriteLn(dev,' fuer Lebensmittel : ',
- Jahr_Liste.Lmit:8:2,' DM');
- WriteLn(dev,' Toilettenartikel : ',
- Jahr_Liste.Tart:8:2,' DM');
- WriteLn(dev,' Literatur : ',
- Jahr_Liste.Lit:8:2,' DM');
- WriteLn(dev,' Auto : ',
- Jahr_Liste.Kfz:8:2,' DM');
- WriteLn(dev,' Post : ',
- Jahr_Liste.Post:8:2,' DM');
- WriteLn(dev,' Kleidung : ',
- Jahr_Liste.Kleid:8:2,' DM');
- WriteLn(dev,' Wohnung : ',
- Jahr_Liste.Woh:8:2,' DM');
- WriteLn(dev,' Bueroartikel : ',
- Jahr_Liste.Buro:8:2,' DM');
- WriteLn(dev,' Freizeit/Hobby : ',
- Jahr_Liste.Frei:8:2,' DM');
- WriteLn(dev,' Diverses : ',
- Jahr_Liste.Dive:8:2,' DM');
- WriteLn(dev); WriteLn(dev,underline);
- WriteLn(dev,'Gesamtausgaben fuer die Haushaltsfuehrung : ',
- temp2:8:2,' DM');
- WriteLn(dev); Datum;
- WriteLn(dev,'Ausdruckdatum : ',Tag,'.',Mon,'.',Jahr);
- GotoXY(promptx,prompty); Write(Con,' Weiter mit beliebiger Taste ! ');
- Key := getkey; ClrScr; WriteLn(dev); WriteLn(dev,underline);
- WriteLn(dev,' Prozentuale Aufschluesselung : ');
- WriteLn(dev,underline); WriteLn(dev);
- WriteLn(dev,'═══> von den ',temp2:8:2,' DM entfallen fuer : ');
- WriteLn(dev);
- WriteLn(dev,' Lebensmittel : ',P_Lmit:8:2,' %');
- WriteLn(dev,' Toilettenartikel : ',P_Tart:8:2,' %');
- WriteLn(dev,' Literatur : ',P_Lit:8:2,' %');
- WriteLn(dev,' Auto : ',P_Kfz:8:2,' %');
- WriteLn(dev,' Post : ',P_Post:8:2,' %');
- WriteLn(dev,' Kleidung : ',P_Kleid:8:2,' %');
- WriteLn(dev,' Wohnung : ',P_Woh:8:2,' %');
- WriteLn(dev,' Bueroartikel : ',P_Buro:8:2,' %');
- WriteLn(dev,' Freizeit/Hobby : ',P_Frei:8:2,' %');
- WriteLn(dev,' Diverses : ',P_Dive:8:2,' %');
- WriteLn(dev); Write(Con,'Weiter mit beliebiger Taste !');
- Key := getkey;
- END;
- (* ----------------------------------------------------------------------- *)
- (* HAKAJST.PAS *)
-