Hallo zusammen.
Hier möchte ich euch ein kleines Projekt von mir vorstellen. Dabei handelt es sich um ein kleines Programm zur Überwachung der Ausgaben und Einnahmen.
Den Anstoß dazu hat mir dieser Thread gegeben, da ich die Idee sehr gut fand allerdings die verwendete Datenbank (MySQL) für so etwas zu „aufwändig“ gehalten habe (Ich selbst benutze SQLite).
Nun noch ein paar Worte zum Programm selbst.
Aktuell kann man:
* Einträge eintragen, bearbeiten, löschen.
*Einträge Planen
*Konten anlegen, löschen, bearbeiten
*Kategorien anlegen, löschen, bearbeiten
* Die Filter nutzen
* Eine kleine Auswertung via Balkendiagramm anzeigen lassen
Des weiteren ist eine Update Funktion enthalten die den „K_Updater“ von EvilMM nutzt. (An dieser Stelle noch einmal ein großes Lob. Tolles Teil 😉 )
Ob ich die Source veröffentliche oder nicht steht noch nicht ganz fest. Falls es so kommen sollte werde ich das natürlich hier noch nachholen. Aktuell gilt das ganze mal als Freeware.
Eine Testdatenbank mit ein paar Einträgen liegt auch bei. Falls die Einträge raus sollen, einfach das Konto löschen und ein neues erstellen.
Im Anhang findet ihr einen Installer und ein Zip Archiv. Beide enthalten am Ende die selben Daten.
Hi,
schönes Programm! Gefällt mir gut (auch weil ich grade an etwas ähnlichem arbeite und dein Programm im grunde alle Features hat die ich mir auch vorgestellt habe 😉 )
Ein erster Verbesserungsvorschlag: ich wollte ein neues Konto anlegen und habe nur einen Namen und einen Anfangssaldo eingegeben. Das Programm hat mir darauf eine sehr undifferenzierte Fehlermeldung ("Fehlerhafte Eingabe") zurück gegeben. Etwas präziser wäre schön.
Desweiteren würde ich es gut finden wenn man nicht zu jedem Konto eine Kontonr. und/oder Blz. usw. angeben MUSS. Brauche ich für meine vier oder fünf Konten nicht und verlangsamt/stört nur die Bedienung.
Grüße
Bastian
Erstmal danke für das Feedback 🙂
Zu der Fehlermeldung: Das stimmt wohl die sind (alle) noch was ungenau, steht allerdings noch auf der ToDo List diese zu verfeinern.
Zum zweiten: Auch da muss ich dir recht geben. Hatte ich mir nicht so richtig gedanken drüber gemacht bis jetzt. Werde ich aber wohl in der nächsten Version geändert haben 🙂
Hab eben mal eine ein klein wenig geänderte Version ins Update gestellt.
Da ich im moment starken Zeitmangel hab sind die änderrungen wirklich nur minimal 🙁
Hi,
grad mal wieder getestet. Sieht gut aus. Habe dann mal auf Updates Suchen geklickt (zweimal weil nichts passiert ist) und folgendes ist bei rausgekommen:
System.InvalidOperationException: Dieser BackgroundWorker ist derzeit ausgelastet und kann nicht mehrere Aufgaben gleichzeitig ausführen.
bei System.ComponentModel.BackgroundWorker.RunWorkerAsync(Object argument)
bei System.ComponentModel.BackgroundWorker.RunWorkerAsync()
bei IO_Manager.Iomanager_form.nachUpdatesSuchenToolStripMenuItem_Click(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Grüße
Bastian
EDIT wenn man nur einmal klickt und wartet dann funktioniert das Update. Aber sobald man zweimal klickt kommt die oben angegebene Exception.
Problem (ganz langweilig) gelöst.
Hab einfach den Button deaktiviert so lange der BW läuft. 2x klicken würde ja eh keinen Sinn machen.
Überlege ob ich eventuell eine Meldung ausgeben sollte das nach Updates gesucht wird und das etwas dauern kann. Oder nervt sowas auf dauer eher?
Mh ausgrauen und eventuell den Text des Menü punkts zu "Update vorgang läuft" ändern würde ich gut finden. Message Box finde ich persönlich eher nicht so angenehm.
Grüße
Bastian
Tolles Programm!
Gefällt mir sehr gut!
Sehr gut wuerde ich es finden wenn man den Manager auf mehreren Rechnern installn kann und und ein Konto nutzen (I/O von einem Haus).
Wäre sehr dankbar fuer den Code!
MfG
Danke auch hier für das Lob.
Das mit dem im Netz nutzen ist eben so eine Sache. Hierfür wäre natürlich eine Datenbank aller MySQL wieder angebrachter. Was ich allerdings mal testen und gegebennenfalls anpassen könnte wäre die Nutzung über ein Netzlaufwerk o.ä. Wobei auch hier eben nur ein Zugriff zur gleichen Zeit möglich wäre.
Mit dem Code muss ich mal gucken je nachdem wie es Zeitlich aussieht. Muss das ganze noch ein wenig überarbeiten, eventuell lasse ich ihn dir dann zukommen 😉
Kann nur im moment nichts versprechen da ich auf der Arbeit aktuell recht eingespannt bin 🙁
Stimmt wenn man das Prog auf ein Netzlaufwerk stellt sollte es gehen! Werds heute auch gleich mal testen...
Mit dem Code wäre ne super Sache...
Hab noch n paar Sachen gefunden...
-Wenn keine Datensätze vorhanden sind kann man immernoch löschen/bearbeiten (mehr oder weniger^^)
-In der Combobox in der das Konto steht kann man schreiben...
Hab nirgends mehr Datensätze und hab bei optionen gerade das "Spar" rausgelöscht...
dann oben aufs X - Fehler:
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei IO_Manager.Iomanager_form.LoadData() in H:\Eigene Dateien\Visual Studio 2005\Projects\IO-Manager\IO-Manager\Forms\Iomanager_form.cs:Zeile 183.
bei IO_Manager.Iomanager_form.optionenToolStripMenuItem_Click(Object sender, EventArgs e) in H:\Eigene Dateien\Visual Studio 2005\Projects\IO-Manager\IO-Manager\Forms\Iomanager_form.cs:Zeile 427.
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Konnte den Fehler bei mir zwar nich nachvollziehen, an der Stelle war allerdings noch "potenzial" für einen Fehler 😉 Ist jetzt ausgebessert und wird mit dem nächsten Update raus sein.
Löschen und Bearbeiten ohne Daten bring auch keine Fehler mehr.
Zum Thema Netzwerk hab ich mir noch was überlegt.
Eine Option die das Einstellen des Datenbank Pfads erlaubt und man so die DB irgendwo ins Netz legen kann und darauf zugreifen. Eventuell kann man so auch noch mit mehreren Datenbanken arbeiten.
Außerdem steht auf der Planung für die Zukunft der Einsatz von MySQL als alternative DB.
PS: Heute Abend hab ich endlich noch mal Zeit 8)
So noch einmal ein kleines Update:
Update über Auto Update funktion.