home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 01 / haka / hakajst.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1987-10-27  |  5.4 KB  |  111 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                               HAKAJST.PAS                               *)
  3. (*               Jahres-Statistik fuer HAKA   Version 1.0                  *)
  4. PROCEDURE Jahr_Stat;
  5. TYPE
  6.   Jahr_Dat = RECORD                         (* Record fuer Jahresstatistik *)
  7.                Lmit, Tart, Lit, Kfz, Post, Kleid,
  8.                Woh, Buro, Frei, Dive, Guth, Eink  : REAL;
  9.              END;
  10. VAR
  11.   Jahr_Liste : Jahr_Dat;
  12.   mon_count  : INTEGER;
  13.   ch         : CHAR;
  14.   dev        : TEXT;
  15.   temp1, temp2,                   (* Variable fuer prozentuale Verteilung: *)
  16.   P_Lmit, P_Tart, P_Lit, P_Kfz, P_Post,
  17.   P_Kleid, P_Woh, P_Buro, P_Frei, P_Dive: REAL;
  18. BEGIN
  19.   ClrScr;
  20.   WITH Jahr_Liste DO BEGIN                               (* Initialisieren *)
  21.     Lmit := 0;  Tart := 0;  Lit  := 0;  Kfz  := 0;  Post := 0;  Kleid := 0;
  22.     Woh  := 0;  Buro := 0;  Frei := 0;  Dive := 0;  Guth := 0;  Eink  := 0;
  23.   END;
  24.   GotoXY(9,1);  Invers;
  25.   Write('Ausgabe auf Drucker ');  Normal;  Write(' (D)');  Invers;
  26.   Write(' oder Bildschirm ');  Normal;  Write(' (B)');  Invers;
  27.   Write(' ? : ');  Normal;  Read(Kbd,ch);  ch := UpCase(ch);
  28.   IF ch = 'D' THEN
  29.     BEGIN  Assign(dev,'LST:');  WriteLn(dev);  WriteLn(dev);  END
  30.   ELSE Assign(dev,'CON:');
  31.   GotoXY(9,1);  ClrEol;
  32.   FOR mon_count := 1 TO 12 DO BEGIN   (* Daten Lesen und in RECORD sichern *)
  33.     Monats_Umwandlung(mon_count);  Daten_Lesen;
  34.     IF NOT KeineDaten THEN
  35.       WITH Jahr_Liste DO BEGIN
  36.         Lmit  := Lmit + Liste.SummeL;
  37.         Tart  := Tart + Liste.SummeT;
  38.         Lit   := Lit  + Liste.SummeLit;
  39.         Kfz   := Kfz  + Liste.SummeKfz;
  40.         Post  := Post + Liste.SummePost;
  41.         Kleid := Kleid+ Liste.SummeKleid;
  42.         Woh   := Woh  + Liste.SummeWoh;
  43.         Buro  := Buro + Liste.SummeBuro;
  44.         Frei  := Frei + Liste.SummeFrei;
  45.         Dive  := Dive + Liste.SummeDiv;
  46.         Guth  := Guth + Liste.Guthaben_MonAnfang;
  47.         Eink  := Eink + Liste.Einkommen;
  48.       END;
  49.   END;
  50.   ClrScr;  GotoXY(0,0);
  51.   WriteLn(dev,Blank,Blank,Jstat,' fuer das Jahr : ',Jahr);
  52.   WriteLn(dev,underline);  WriteLn(dev);
  53.   temp1 := Jahr_Liste.Guth + Jahr_Liste.Eink;
  54.   WITH Jahr_Liste DO BEGIN            (* prozentuale Verteilung berechnen *)
  55.     temp2 := Lmit+Tart+Lit+Kfz+Post+Kleid+Woh+Buro+Frei+Dive;
  56.     P_Lmit  :=(Lmit  * 100)/temp2;     P_Tart  :=(Tart  * 100)/temp2;
  57.     P_Lit   :=(Lit   * 100)/temp2;     P_Kfz   :=(Kfz   * 100)/temp2;
  58.     P_Post  :=(Post  * 100)/temp2;     P_Kleid :=(Kleid * 100)/temp2;
  59.     P_Woh   :=(Woh   * 100)/temp2;     P_Buro  :=(Buro  * 100)/temp2;
  60.     P_Frei  :=(Frei  * 100)/temp2;     P_Dive  :=(Dive  * 100)/temp2;
  61.   END;
  62.   WriteLn(dev,'Ihr Gesamtguthaben + Einkuenfte betrug   :    ',
  63.               temp1:8:2,' DM');
  64.   WriteLn(dev);  WriteLn(dev,'Davon haben Sie ausgegeben ');  WriteLn(dev);
  65.   WriteLn(dev,'    fuer  Lebensmittel                  :    ',
  66.               Jahr_Liste.Lmit:8:2,' DM');
  67.   WriteLn(dev,'          Toilettenartikel              :    ',
  68.               Jahr_Liste.Tart:8:2,' DM');
  69.   WriteLn(dev,'          Literatur                     :    ',
  70.               Jahr_Liste.Lit:8:2,' DM');
  71.   WriteLn(dev,'          Auto                          :    ',
  72.               Jahr_Liste.Kfz:8:2,' DM');
  73.   WriteLn(dev,'          Post                          :    ',
  74.               Jahr_Liste.Post:8:2,' DM');
  75.   WriteLn(dev,'          Kleidung                      :    ',
  76.               Jahr_Liste.Kleid:8:2,' DM');
  77.   WriteLn(dev,'          Wohnung                       :    ',
  78.               Jahr_Liste.Woh:8:2,' DM');
  79.   WriteLn(dev,'          Bueroartikel                  :    ',
  80.               Jahr_Liste.Buro:8:2,' DM');
  81.   WriteLn(dev,'          Freizeit/Hobby                :    ',
  82.               Jahr_Liste.Frei:8:2,' DM');
  83.   WriteLn(dev,'          Diverses                      :    ',
  84.               Jahr_Liste.Dive:8:2,' DM');
  85.   WriteLn(dev);  WriteLn(dev,underline);
  86.   WriteLn(dev,'Gesamtausgaben fuer die Haushaltsfuehrung :    ',
  87.               temp2:8:2,' DM');
  88.   WriteLn(dev);  Datum;
  89.   WriteLn(dev,'Ausdruckdatum : ',Tag,'.',Mon,'.',Jahr);
  90.   GotoXY(promptx,prompty);  Write(Con,' Weiter mit beliebiger Taste ! ');
  91.   Key := getkey;  ClrScr;  WriteLn(dev);  WriteLn(dev,underline);
  92.   WriteLn(dev,'  Prozentuale Aufschluesselung : ');
  93.   WriteLn(dev,underline);  WriteLn(dev);
  94.   WriteLn(dev,'═══> von den ',temp2:8:2,' DM entfallen fuer : ');
  95.   WriteLn(dev);
  96.   WriteLn(dev,'         Lebensmittel                :    ',P_Lmit:8:2,' %');
  97.   WriteLn(dev,'         Toilettenartikel            :    ',P_Tart:8:2,' %');
  98.   WriteLn(dev,'         Literatur                   :    ',P_Lit:8:2,' %');
  99.   WriteLn(dev,'         Auto                        :    ',P_Kfz:8:2,' %');
  100.   WriteLn(dev,'         Post                        :    ',P_Post:8:2,' %');
  101.   WriteLn(dev,'         Kleidung                    :    ',P_Kleid:8:2,' %');
  102.   WriteLn(dev,'         Wohnung                     :    ',P_Woh:8:2,' %');
  103.   WriteLn(dev,'         Bueroartikel                :    ',P_Buro:8:2,' %');
  104.   WriteLn(dev,'         Freizeit/Hobby              :    ',P_Frei:8:2,' %');
  105.   WriteLn(dev,'         Diverses                    :    ',P_Dive:8:2,' %');
  106.   WriteLn(dev);  Write(Con,'Weiter mit beliebiger Taste !');
  107.   Key := getkey;
  108. END;
  109. (* ----------------------------------------------------------------------- *)
  110. (*                               HAKAJST.PAS                               *)
  111.