mit Python zur Buchhaltung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pala1
User
Beiträge: 2
Registriert: Freitag 11. Juni 2021, 15:28

Sehr geehrte Damen und Herren,
ich möchte mit einer geeigneten Software ein ein Programm für meine eigenen täglichen Finanzen erstellen.

Ich habe diese Arbeiten bisher mit umfangreichen Excel Tabellen gemacht. Seit ich auf Linux umgestiegen bin arbeite ich mit LibreOffice.

Ich muss 5 Bankkonten erfassen mit all deren Ein- und Ausgaben.
Die Informationen der Kontoauszüge lade ich derzeit direkt aus der Homepage in LibreOfficeCalc herunter und bewerte sie mit Buchstaben-Kürzeln.
Mit diese Kürzeln filtere ich für die verschiedenen Auswertungen:
- Mieteinzahlungsübersicht.
- Kostengruppenübersichten für die einzelnen Mietshäuser (Nebenkosten, Instandhaltungskosten, Strom, Wasser, Gas, usw.).
- Vorbereitung der Nebenkostenabrechnung zur Übergabe an den Ablesedienst (Ista, Minol, Techem, usw.), die damit die Jahresabrechnung erstellen.
- Gliederung meiner eigenen privaten Ein- und Ausgaben.
- Vorbereitende gegliederte Kostenübersicht für den Steuerberater mit allen steuerlich relevanten Kategorien. Der Steuerberater übernimmt die ermittelten Werte mit einem absoluten Minimum an Aufwand in die Steuererklärung (Honorar ausschließlich für die Übergabe ans Finanzamt).

Diese meine Vorgehensweise funktioniert seit Jahren sehr gut. Das Handling kann ich aber nicht z. B. an eine Sekretärin weitergeben, da der vorliegende Umfang in LibreOffice bzw. Excel mit all den Bezügen und Formeln hierfür zu kompliziert ist.

Ich bin nun dabei mir zu überlegen ob ich für den o. a. Umfang selbst ein Programm erarbeite, in dem die Eingaben in einer einheitlichen unveränderlichen Eingabemaske eingegeben werden.
Ich würde nun gerne das Ganze mit einem DataBase Programm beginnen wollen,
ich habe aber noch keine Programmiererfahrung!

Vielerorts wir Python erwähnt.

Nun meine Fragen:
- Wissen Sie ob diese angeblich so leichte Programmiersprache Python geeignet ist für die beschriebene Anwendung?
- gibt es in Python schon fertige oder halbfertige Templates, die man übernehmen od. einfügen kann?

Vielen Dank im Voraus
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Grundsätzlich ist Python für so etwas geeignet. Und es ist eine halbwegs leichte Programmiersprache. Aber programmieren im allgemeinen ist schwer. Und GUI-Programmierung besonders. Ich halte diese Aufgabe für jemanden, der da keine Erfahrung hat, für zu komplex. Insbesondere, wenn das Zielpublikum ein normaler Anwender ist.

Unter Windows würde sich Access anbieten. Eine äquavilente Alternative für Linux kenne ich nicht.
pala1
User
Beiträge: 2
Registriert: Freitag 11. Juni 2021, 15:28

Vielen Dank für Ihre so schnelle Antwort.
Es ist ein bischen enttäuschend. Dennoch interessiert mich Python sehr. Ich werde mal einen Einsteigerkurs belegen und dann weitersehen.
Es würde mich interessieren ob es in Python Templates oder Teillösungen gibt, auf die man aufbauen oder die man kombinieren kann? Z. B. eine veränderbare Eingabemaske, die die Daten in einer Datenbank abspeichert.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich denke, du hast da einen Denkfehler drin: ein Programm, dass im Frontend einfach ist / aussieht, muss im Backend nicht auch einfach gestrickt sein.

So was wie "Eingabemasken" als Template gibt es nicht wirklich. Das gibt es, wie __deets__ schon sagte, bei Access & Co, wo die DB mit schon bis zu einem gewissen Grad mit der GUI verwoben ist. Beim Programmieren, z.B. mit Python, musst du dich da um alles selber kümmern.

Wenn du sinnvoll eine GUI mit Python Programmieren willst kommst du im objektorientierte Programmierung sowie Umgang mit Klassen und Methoden nicht umhin. Ist zwar nicht wirklich kompliziert in Python, aber definit nichts, was du dir als Anfänger aus dem Ärmel schüttelst. Außerdem solltest du bei Einsatz einer DB auch zumindest Grundkenntnisse in SQL haben.

Ich würde das ganze tendenzielle auch als Web-basierte Anwendung umsetzten. Weil es sich IMHO anbietet und die Erstellung der GUI mittels HTML im Browser einfacher ist - das Projekt wird damit aber nicht einfacher.

Als Projekt zum Lernen ist das schon interessant - aber du musst schon davon ausgehen, dass das nichts desto trotz ein paar Monate dauert und du in der Zeit sicherlich mindestens 1x neu anfängst. Ist halt so, wenn man anfängt zu programmieren.

Gruß, noisefloor
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Vielleicht ist Kexi in der Lage, deine Wuensche zu erfuellen: https://userbase.kde.org/Kexi/Handbook

Aber ich bin da skeptisch, solche Form von RAD-Tools ist eher im Windows-Umfeld zuhause.
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

__deets__ hat geschrieben: Freitag 11. Juni 2021, 16:07 Unter Windows würde sich Access anbieten. Eine äquavilente Alternative für Linux kenne ich nicht.
LibreOffice hat eine dem MS Access recht ähnliche Komponente namens "Base", "LibreOffice Base" oder "lobase". Da Datenbank-Frontends allerdings nicht sonderlich populär sind und viele Anwender von Office-Software lieber eine Tabellenkalkulation wie Excel (oder LibreOffice Calc) benutzen, wenn ein Datenbank-Frontend sinnvoller wäre (Hammer-Nagel-Problematik), wird Base bei vielen Distributionen nicht automatisch mit LibreOffice installiert, so daß LibreOffice Base manuell nachinstalliert werden muß. Zudem werden die unterstützten Datenbanken mit ODBC oder JDBC angesprochen, so daß dabei eine ODBC-Umgebung oder eine Java-Laufzeitumgebung erforderlich wird. Immerhin läßt sich LibreOffice mit Python recht komfortabel fernsteuern... ;-)

An Stelle des TO würde ich allerdings, wie hier schon von anderen empfohlen wurde, auf ein Webfrontend gehen. Die Entwickler des extrem leistungsfähigen Datenbank-Managementsystems PostgreSQL gehen diesen Weg mit ihrem neuen Admin-Tool pgadmin4, das den GUI-FatClient pgadmin3 ablöst. Aber diese Werkzeuge dienen primär als Frontend für die Administration der Datenbank; es ist zwar möglich, die Daten abzufragen und / oder zu manipulieren, aber leider... eher unkomfortabel, vorsichtig gesagt...

Nun hat unser TO leider, wie es scheint, keine Programmiererfahrung, und auch hinsichtlich eines Zeithorizontes hält er sich leider bedeckt. Ich persönlich würde in seiner Situation ein Webfrontend in Python entwickeln, möglicherweise basierend auf Flask und Flask-Security-Too, aber vermutlich würde ich mich eher wieder in Django einfuchsen. Aber da heißt dann eben auch: HTML, womöglich mit CSS und ECMA- bzw. JavaScript, dazu möglicherweise Frameworks von Bootstrap über W3CSS, jQuery und Angular... und das zusätzlich zu Python als Basis und obendrauf auch noch Django und SQL oder NoSQL... also, wie sage ich das elegant: nein.

Mir würde allerdings noch eine andere, eher... unpopuläre Alternative einfallen: Kommandozeilenprogramme für den Anfang. Damit kann man sich (erstmal) den ganzen Zinnober mit GUIs, Webfrontends und so weiter komplett ersparen, einfache Eingaben machen, validieren und ggf. konvertieren, in die DB schreiben, und am Ende eine schicke CSV-Datei daraus machen, die jede Tabellenkalkulation oder auch einfache Web- oder GUI-Programme einlesen und visualisieren können. Irgendwann merkt man halt, welche Inhalte mehrmals benutzt werden und in eine Bibliothek gehören, die man dann auch künftig für eine grafische Anzeige oder für ein Webfrontend benutzen kann... Ist halt nicht hübsch, aber robust und ein Anfang. YMMV. ;-)
Antworten