Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Haushaltsbuch (https://www.delphipraxis.net/114554-haushaltsbuch.html)

FAlter 27. Mai 2008 11:40


Haushaltsbuch
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hi,

da ich bald von meinen Eltern weg ziehe und ganz alleine klarkommen muss, ist es ratsam, erst einmal aufzuschreiben, was ich so alles kaufe und wieviel Geld mir übrig bleibt. Damit das ein wenig einfacher ist, habe ich angefangen, mir ein Programm zu schreiben. Im Moment ist es vor allem eine Übung mit TStrings.CommaText ;)

Es mag ein wenig Gewöhnungsbedürftig sein, vor allem, dass Einnahmen mit negativen Anzahlen bedacht sind (i. d. R. -1). Wie gesagt, das Programm ist nur für mich selbst gedacht, und das erschien mir als eine sehr einfache Lösung. Geändert ab Version 0.0.0.12: Einnahmen positiver Betrag, Ausgaben negativer Betrag (bei "Ausgabe" wird das entgegengesetzte der Eingabe gespeichert).

Das eigentlich wichtige ist die Auswertungsfunktion, damit ich immer den Überblick habe, in welchem Bereich ich mich so befinde. Es sind auch Auswertungsfunktionen für bestimmte andere Zwecke angedacht, zum Beispiel Zeiträume, nur bestimmte Kategorien (wieviel gebe ich für Luxusgüter aus?) und so weiter. Davor muss ich aber in meiner CVSCSV-Klasse noch die bedingten Abfragen (WHERE in SQL) implementieren.

Nun möchte ich jedoch, dass das Programm, wenn es richtig los geht, wenigstens weitestgehend Fehlerfrei ist und ich mich darauf verlassen kann (zumindest, wenn es kein Pentium I ist, der rechnet ja falsch :stupid: ), daher bitte ich euch, es mal ein wenig auszuprobieren.

Version 0.0.0.12

Code:
[b]Changelog[/b][list][*]Version 0.0.0.12
Einnahme/Ausgabe - jetzt am Vorzeichen des Geldbetrages unterschieden (Ausgaben negativ).
:!: Leichte Inkompatibilität zu Daten der vorherigen Version!
Kategorien-Auswertung - Durch einen Vergleich der falschen Werte wurden die Kategorien alphabetisch sortiert und nicht nach der Summe der Beträge. Jetzt ist es wie gewollt.
PS: :wall: Beim ersten Test stimmten beide Sortierungen zufällig überein. :wall:[*]Version 0.0.0.11
CSV - Unnötiges Speichern der Daten ohne Änderung entfernt.[*]Version 0.0.0.10
Kategorien-Auswertung - welche Kategorie bringt die meisten Einnahmen, welche
die meisten Ausgaben?[*]Version 0.0.0.6
Division durch Null, wenn Anfangsdatum = Enddatum, entfernt.[/list]
Mfg
FAlter

knolli 27. Mai 2008 12:42

Re: Haushaltsbuch
 
hm.. also erstmal... ne gute idee

so ein proggi musste ich in der infoprüfung schreiben für eine WG...

Ich weiß ja nicht wie viel man eingegeben haben muss... abe wenn ich mal schnell eine ausgabe und eine einnahme eintrage und aswerten möchte, dann kommt Fehler--> Gleitkommadivision durch Null

freak4fun 27. Mai 2008 12:46

Re: Haushaltsbuch
 
Zitat:

Zitat von knolli
Ich weiß ja nicht wie viel man eingegeben haben muss... abe wenn ich mal schnell eine ausgabe und eine einnahme eintrage und aswerten möchte, dann kommt Fehler--> Gleitkommadivision durch Null

Bei mir das Gleiche!

Das Programm scheint wirklich sehr simpel zu sein. ;)

FAlter 27. Mai 2008 12:48

Re: Haushaltsbuch
 
Hi,

danke, Fehler nummer 1 ;)

Delphi-Quellcode:
DaysBetween  := NewDate - OldDate;

PerDay       := Sum   / DaysBetween;
PerDayIn     := InSum / DaysBetween;
PerDayOut    := OutSum / DaysBetween;
Wenn alle Einträge, die ausgewertet werden sollen, vom selben Tag kommen, gibts ne Division durch null. Es ist sicherlich sinnvoll, diesen einen Tag noch mitzuzählen, also DaysBetween = NewDate - OldDate + 1.

Werds gleich mal ändern.

Mfg
FAlter

knolli 27. Mai 2008 13:00

Re: Haushaltsbuch
 
ok das funktioniert jetzt...
was is aber mit monatlich und jährlich bei der auswertung...
wenn ich jetzt eben nur einen tag habe, dann wird es auf monat und tag hochgerechnet oder?
sonst ganz ok!
werd ich bestimmt auch verwenden^^

rotfc 27. Mai 2008 13:01

Re: Haushaltsbuch
 
Also für jeden Fehler, den wir entdecken, machst Du ein ein neues Update im ersten Post?

Bewirb Dich bei Microsoft in der Update-Abteilung :evil:

Freeware zum Testen := Bananensoftware in der DP?

knolli 27. Mai 2008 13:07

Re: Haushaltsbuch
 
Zitat:

Zitat von rotfc
Also für jeden Fehler, den wir entdecken, machst Du ein ein neues Update im ersten Post?

ja das macht er, weil es so die regeln vorsehen
Zitat:

Zitat von rotfc
Bewirb Dich bei Microsoft in der Update-Abteilung :evil:

Freeware zum Testen := Bananensoftware in der DP?

kannst du lesen?

Aus der Beschreibung für dieses Unterforum!
Zitat:

Freeware
Freeware-Programme (mit oder ohne Sourcecode) zum Testen und Diskutieren
Also bitte! Wenn du keine konstruktive Kritik anbringen kannst oder möchtest, dann lass das posten sein :?

Sherlock 27. Mai 2008 13:08

Re: Haushaltsbuch
 
@rotcf: Tut mir Leid, aber läuft das bei anderen Projekten, die hier vorgestellt werden, etwa anders?

Also Ball flach halten.

@FAlter: weiter so.

Sherlock

rotfc 27. Mai 2008 13:23

Re: Haushaltsbuch
 
Zitat:

Zitat von knolli
Zitat:

Zitat von rotfc
Also für jeden Fehler, den wir entdecken, machst Du ein ein neues Update im ersten Post?

ja das macht er, weil es so die regeln vorsehen
Zitat:

Zitat von rotfc
Bewirb Dich bei Microsoft in der Update-Abteilung :evil:

Freeware zum Testen := Bananensoftware in der DP?

kannst du lesen?

Aus der Beschreibung für dieses Unterforum!
Zitat:

Freeware
Freeware-Programme (mit oder ohne Sourcecode) zum Testen und Diskutieren
Also bitte! Wenn du keine konstruktive Kritik anbringen kannst oder möchtest, dann lass das posten sein :?

Sorry, ich kann leider lesen.

Pro Tag fuffzich neue Updates von FAlters Demo runterzuladen macht mir wirklich Spaß, vor Allem deshalb, weil er pro Update nur ein Leerzeichen im closed-source geändert hat. ODER?

@FAlter: Nichts gegen Dich oder Deine Programme, aber Deine (vermutlich ungewollten) Groupies scheinen mir etwas übereifrig zu sein?

FAlter 27. Mai 2008 13:33

Re: Haushaltsbuch
 
Hi,

Zitat:

Zitat von knolli
wenn ich jetzt eben nur einen tag habe, dann wird es auf monat und tag hochgerechnet oder?

Nun ja, ein Monat sind etwa 30 Tage, und ein Jahr 360 Tage (das sind die Zeiten, mit denen man üblicherweise rechnet; ich hätte natürlich auch 365,25 oder so nehmen können). Es wird eh nur von der tatsächlich vergangenen Zeit auf Tage/Monate/Jahre umgerechnet. Mit welchen Werten gerechnet wird, wird sogar angezeigt:

Zitat:

Auswertungszeitraum
Von 16.05.2008
Bis 27.05.2008
Anzahl der Tage: 12
Anzahl der Monate: 0,4
Anzahl der Jahre: 0,0333

12 Tage sind 0,4 Monate sind 0,0333 Jahre. Jeweils durch den angegebenen Wert wird die Gesamtsumme (Umsätze insgesamt) dividiert.

@rotfc: Wenn du die neue Version nicht runterladen möchtest, lass es sein und warte ein paar Monate, bis ein paar mehr Bugs gefixt sind. Dann musst du halt mit den schon bereinigten Fehlern leben, die bei dir noch auftreten. Programme, bei denen nicht mehr so häufig neue Versionen erscheinen, kannst du auf http://faltersoft.de/ herunterladen.

Mfg
FAlter

Phoenix 27. Mai 2008 13:44

Re: Haushaltsbuch
 
Zitat:

Zitat von rotfc
Pro Tag fuffzich neue Updates von FAlters Demo runterzuladen macht mir wirklich Spaß, vor Allem deshalb, weil er pro Update nur ein Leerzeichen im closed-source geändert hat. ODER?

Bitte. Es ist genug des OT nun.
Diese Sparte ist genau dafür da kostenlose Anwendungen vorzustellen. Das müssen keine 100%-Lösungen sein. Sowas verlangt niemand - erst recht nicht von Hobbyentwicklern.

Es ist ja schliesslich auch niemand gezwungen die Anwendungen hier auszuprobieren und Feedback zu liefern.

rotfc 27. Mai 2008 13:48

Re: Haushaltsbuch
 
OK

GreenHorn3600 27. Mai 2008 22:37

Re: Haushaltsbuch
 
hallo Alter Falter :-)

lust dich bei mir einzuhängen? bin grad bei, eine kleine fibu zum privat gebrauch zu schreiben, und da wäre ein kleines kassenbuch für die bank-/kassakonten nicht schlecht. :roll:

baue allerdings mein kleines programm auf die komponenten von DevExpress auf.

Melde Dich per PM wenn du lust und laune hast.

Euer GreenHorn

FAlter 27. Mai 2008 23:09

Re: Haushaltsbuch
 
Hi,

@GreenHorn3600:

ich werd drüber nachdenken... Wobei ich das kleine Projekt eigentlich auch zu was ganz anderem missbrauchen wollte (CSV zu meinen eigenen DB-Klassen dazu), außerdem nehm ich TurboDelphi dazu, also Fremdkomponenten nur zur Laufzeit erstellen (die da wären: THTMLViewer). Naja, also ich werds mir überlegen. Erst mal sehen, wieviel Zeit ich beim Studium noch dazu haben werde, denn ich muss auch noch ein wenig am MF20XX arbeiten (Name angelehnt an DP200X :stupid: ). In spätestens drei Monaten sollte ich wissen, wieviel Zeit mir noch bleibt. Eigentlich wollte ich ja schon immer mal an was größerem mit Delphi arbeiten, hat aber bisher nie wirklich geklappt, außer wenn ich alleine blieb.

Falls ich mich nicht mehr melden sollte, erinnere mich daran.

Mfg
FAlter

Mackhack 27. Mai 2008 23:25

Re: Haushaltsbuch
 
Nutzt du auch SQL darin da das ganze in einer csv Datei steht?

FAlter 28. Mai 2008 10:31

Re: Haushaltsbuch
 
Hi,

nein, in diesem Fall nutze ich kein SQL. Die DB-Klassen sind so ausgelegt, dass sie ohne SQL funktionieren, bzw. wenn eine echte DB abgefragt werden soll, wird der SQL-String zusammengebastelt.

Ungefähr so:

Delphi-Quellcode:
function TMySqlDb.Get(const Table: String; const Fields: array of String;
  Condition: TQueryCondition; const From, Count: Cardinal): TQueryResult;
var
  L, H, I: Integer;
  FieldNames: String;
  F, C: String;
begin
  try
    L := Low(Fields);
    H := High(Fields);

    if L > H then
      FieldNames := '*'
    else
    begin
      FieldNames := '';
      for I := L to H do
        FieldNames := FieldNames + ', `' + Escape(Fields[I]) + '`';

      System.Delete(FieldNames, 1, 2);
    end;

    Str(From, F);
    Str(Count, C);

    Result := DoQuery(
      'SELECT ' + FieldNames +
      #13'FROM `' + Escape(Table) +
      '`'#13'WHERE ' + (Condition as TMySqlCondition).GetSQL +
      #13'LIMIT ' + F + ', ' + C
    );
  finally
    Condition.Free;
  end;
end;
Aber bei der CSV-Klasse wird das ganze ohne SQL erledigt. Wobei Bedingungen da noch nicht funktionieren, aber das kommt noch.

Mfg
FAlter

[edit] Im ersten Beitrag gibts ne neue Version. ;) [/edit]

FAlter 30. Mai 2008 13:54

Re: Haushaltsbuch
 
Hi,

ich habe mich nun doch entschieden, die Unterscheidung zwischen Einnahmen und Ausgaben nicht anhand der Anzahl, sondern am Vorzeichen des Betrages, vorzunehmen. Dies gefällt mir dann doch besser, und es dürfte eher auf Verständnis stoßen.

Wichtig :!:
Das Programm ist dadurch nicht mehr kompatibel zu den Daten, die mit vorherigen Versionen gespeichert wurden.

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz