# Programm für Rechnungen



## BlueEagel (14. Januar 2010)

Hallo.

Ich versuche grade mir ein Ziel zu setzen um mal wieder ein Bischen Programmieren zu lernen.
und zwar würde ich gerne für einen Freund ein Programm schreiben womit er Rechnungen schreiben kann.

Meine Frage ist nun: mit welcher Sprache lässt sich dies ambesten und Einfachsten umsetzen ?

Lg, BlueEagle


----------



## chmee (14. Januar 2010)

Das kommt drauf an.. Wie flexibel soll es sein und für welches OS? Tatsächlich würde ich für solche Fenster/Text/DateiSpeichern/Drucken-Geschichten unter Windows natürlich Visual-C#, jedenfalls .net benutzen. Man kann sich das Fenster zusammenklicken und nachdem man sich in die OOP eingefummelt hat, ist man recht schnell wieder fertig.


mfg chmee


----------



## saftmeister (14. Januar 2010)

Ich würde Java nennen. Viele Frameworks, die einem das Leben erleichtern. Mit Netbeans kannst du direkt die SWT-Fenster bauen, oder du verwendest eclipse mit einem entsprechend GUI-Designer-Plugin.

Nichts gegen .NET und C#. Ist auch ein super Ansatz. Nur ist Java halt etablierter als C#.

Für andere Sprachen wie C oder C++ gibts natürlich auch Möglichkeiten, sowas umzusetzen. Aber die Voraussetzungen sind ungleich höher.


----------



## BlueEagel (14. Januar 2010)

Also das ganze sollte für MS Windows sein.

Umfangreich soll es für den Anfang nicht sein.

- Feld für die Eingabe der Adresse
- Zeilen für die Eingabe der Einzelnen Positionen und zusammen Rechnen der Summen.
- Speicher + Ausdruck im PDF format.

Sollte es gewesen sein.

Sollte für mich aber auch nich zu Kompliziert sein zu Progrmmieren, bin noch ein angehender FI-AE 

Grüße


----------



## Vereth (15. Januar 2010)

Ich persönlich würde C# verwenden.
Für die Eingabe der Adresse verwendest du dann ein Multiline-Textfeld.
Für die Eingabe der Rechnungspositionen würde ich ein zweispaltiges DataGridView verwenden. Eine Text-Spalte für die Position und eine Währungs-Spalte für den Preis. Als DataSource verwendest du eine passend definierte DataTable.
Kompliziert wird nur die Ausgabe als PDF-Datei. Ich glaube kaum, dass du dafür in irgendeiner Sprache Standardbibliotheken findest. Das wirst du dir wahrschinlich selber zusammenfummeln müssen.

Viel
Vergnügen
Vereth


----------



## bofh1337 (15. Januar 2010)

QT...ist Plattform unabhängig


----------



## Sven Mintel (15. Januar 2010)

Auch wenns nicht unbedingt etwas mit Progammieren zu Tun hat... ich würd mit einer Openoffice-Tabelle machen


----------



## Vereth (15. Januar 2010)

Man kann auch mit dem Texteditor eine XML-Datei erstellen, diese mit Hilfe eines AWK-Skriptes (für Windows verwendet man gawk) in eine Latex-Datei umwandeln, und diese dann mit einem dafür geeigneten Programm seiner Wahl in PDF konvertieren.

Hat noch jemand einen Scherz-beitrag zu liefern?


----------



## Sven Mintel (17. Januar 2010)

Naja, eigentlich hatte ich das ernstgemeint.

Es gibt nicht wenige Excel-basierte Rechnungs-Lösungen für den "Kleinunternehmer", sogar bis hin zum kompletten Jahresabschluss, Openoffice würde sich da mit dem eingebauten PDF-Export anbieten.


----------



## chmee (17. Januar 2010)

Unterstreiche Svens Aussage. Excel-Tabelle, ein bisschen VBA und fertig. Alleine mit Excel bekommt man das Rechnungsblatt design'ed, eine zweite Tabelle ist für die Einträge zuständig und DoPDF ist dann per Druck für den PDF-Export zuständig. Und programmiert werden kann trotzdem 

mfg chmee


----------



## hela (18. Januar 2010)

Sven Mintel hat gesagt.:


> ... Es gibt nicht wenige Excel-basierte Rechnungs-Lösungen ...


Hallo,

es gibt auch zahlreiche Lösungsvorschläge für OpenOffice und die müssen durchaus nicht unflexibel sein.
Zunächst würde ich mir das mal ansehen: Tutorial: Einfache Rechnungstellung mit OpenOffice.


----------



## Sven Mintel (18. Januar 2010)

Feine Sache 

Ich hatte mir schon gedacht, dass es da auch was mit OO gibt(sonst hätte ich es ja nicht in die Runde geworfen), bin bisher nur noch nicht drüber gestolpert und dachte mir, was mit Excel geht, geht sicher auch mit OO.


----------



## Vereth (18. Januar 2010)

Die Frage ist doch nicht, ob es mit einer Tabellenkalkulation möglich ist; man kann auch ein Dame-Spiel mit VBA programmieren. Hier ist ein Jung-Talent, das sich mit den Künsten der Programmierung langsam vertraut machen will. Es ist noch völlig offen, in welche Richtung er sich weiterentwickeln möchte. Vielleicht will er Multimedia ausprobieren; dann kann er z.B. einen Splash-Screen programmieren, der eine mit Musik unterlegte 3D-Animation zeigt, die mit OpenGL erstellt wurde. Vielleicht möchte er sein Programm webfähig machen, um von überall darauf zugreifen zu können. Vielleicht möchte er lernen, wie man Datenbanken nutzt, damit er eine flexible Lieferanten- und Lagerverwaltung einbauen kann. Vielleicht möchte er eines Tages sein Programm auf LINUX portieren. Vielleicht möchte er sich mit Compilerbau beschäftigen, dann kann er sich eine kleine Programmiersprache implementieren; es muss ja nicht gleich ABAP sein. Insgesamt denke ich, dass er ein gutes Projekt als Einstieg gewählt hat.
Ich denke, statt ihm zu zeigen, wie er sich von Fall zu Fall behelfsmäßig irgendwas zusammenstoppelt, sollten wir ihm lieber eine Programmiersprache empfehlen, die ihm alle diese Möglichkeiten offenlässt; VBA sollten wir deshalb lieber außen vor lassen. Die meisten Programmiersprachen haben eine C-ähnliche Syntax (Java, PHP, AWK...) und deswegen sollten wir ihm eine solche empfehlen, damit er früh genug ein Gefühl dafür entwickelt, wie man mit deren Möglichkeiten und Tücken umgeht. Delphi dagegen ist eine Sprache, die aus Pascal erwachsen ist; auch sie ist gut und brauchbar, aber die Pascal-Syntax ist nicht so sehr verbreitet wie die von C.
Aus all diesen Gründen empfehle ich ihm, C++ oder (vielleicht noch besser) C# zu verwenden.

PS: Ich habe nichts gegen Visual Basic. Aber wenn ich etwas hätte, würde ich es gnadenlos einsetzen.


----------



## hela (18. Januar 2010)

Hallo Vereth!



Vereth hat gesagt.:


> Die Frage ist doch nicht, ob es mit einer Tabellenkalkulation möglich ist; ...


Ich denke schon, wenn es um die Erstellung von Rechnungen geht.



Vereth hat gesagt.:


> ... man kann auch ein Dame-Spiel mit VBA programmieren. Hier ist ein Jung-Talent, das sich mit den Künsten der Programmierung langsam vertraut machen will. Es ist noch völlig offen, in welche Richtung er sich weiterentwickeln möchte. ...


Ja genau: Völlig offen.



Vereth hat gesagt.:


> ... Vielleicht will er Multimedia ausprobieren; dann kann er z.B. einen Splash-Screen programmieren, der eine mit Musik unterlegte 3D-Animation zeigt, die mit OpenGL erstellt wurde. ...


Das ist bei überteuerten Rechnungen bestimmt hilfreich.



Vereth hat gesagt.:


> ... Vielleicht möchte er sein Programm webfähig machen, um von überall darauf zugreifen zu können. ...


Das ist für Rechnungen eher unüblich.



Vereth hat gesagt.:


> ... Vielleicht möchte er lernen, wie man Datenbanken nutzt, damit er eine flexible Lieferanten- und Lagerverwaltung einbauen kann. Vielleicht möchte er eines Tages sein Programm auf LINUX portieren. ...


Ja, das kann er mit OpenOffice beides machen.



Vereth hat gesagt.:


> ... Vielleicht möchte er sich mit Compilerbau beschäftigen, dann kann er sich eine kleine Programmiersprache implementieren; es muss ja nicht gleich ABAP sein. ...


Woher nimmst du nur deine Vermutungen? Offensichtlich habe ich da etwas überlesen.



Vereth hat gesagt.:


> ... Insgesamt denke ich, dass er ein gutes Projekt als Einstieg gewählt hat. ...


Um sich in eine Office-Suite einzuarbeiten auf jeden Fall, in den Compilerbau weniger.



Vereth hat gesagt.:


> ... Ich denke, statt ihm zu zeigen, wie er sich von Fall zu Fall behelfsmäßig irgendwas zusammenstoppelt, sollten wir ihm lieber eine Programmiersprache empfehlen, die ihm alle diese Möglichkeiten offenlässt; VBA sollten wir deshalb lieber außen vor lassen. Die meisten Programmiersprachen haben eine C-ähnliche Syntax (Java, PHP, AWK...) und deswegen sollten wir ihm eine solche empfehlen, damit er früh genug ein Gefühl dafür entwickelt, wie man mit deren Möglichkeiten und Tücken umgeht. Delphi dagegen ist eine Sprache, die aus Pascal erwachsen ist; auch sie ist gut und brauchbar, aber die Pascal-Syntax ist nicht so sehr verbreitet wie die von C.
> Aus all diesen Gründen empfehle ich ihm, C++ oder (vielleicht noch besser) C# zu verwenden. ...


Ja klar. Das kannst du machen. Aber eigentlich ist das nicht notwendig, wenn man eine Rechnung erstellen will.



Vereth hat gesagt.:


> PS: Ich habe nichts gegen Visual Basic. Aber wenn ich etwas hätte, würde ich es gnadenlos einsetzen.


Das glaube ich dir gerne, sonst würdest du VBA und VisualBasic nicht in einen Topf werfen. Übrigens hat bisher in diesem Thread noch niemand empfohlen dafür VisualBasic einzusetzen.

Jedenfalls macht es Spaß mit dir zu plaudern, auch wenn wir hier im Programming-Forum sind und (wie Sven schon sagte) das mit Programmieren nicht unbedingt was zu tun hat.
Schöne Grüße.


----------



## Erik (18. Januar 2010)

@hela:



			
				BlueEagel hat gesagt.:
			
		

> Ich versuche grade mir ein Ziel zu setzen um mal wieder ein Bischen Programmieren zu lernen.


Es geht hier um ein Projekt um Programmieren zu lernen nicht um ein so gut wie mögliches / einfaches Rechnungsprogramm zu erstellen. Klar kann man mit OO / Excel eine Rechnung erstellen (ich machs für meine Mutter so ja selber) aber wenn er programmieren lernen will lernt er meiner Meinung nach mehr wenn er es in Java / C# etc. macht. Somit stimme ich Vereth völlig zu!

Gruß
Erik


----------



## chmee (18. Januar 2010)

Ich stimme Vereth ja auch zu (bezüglich Eagles Motivation). Nur sollte man sich im Vornherein auch fragen, was alles zu beachten ist und wann der Freund es benutzen möchte..

Ist die Rechnungsmaske variabel? Muss programmiert werden..
Gibt es eine automatische fortlaufende Rechnungsnummer? Muss in einer Art DB festgehalten werden..
Gibt es wiederkehrende Positionen? DB mit zB Autovervollständigung..
Mahnungswesen? Info und automatischer Brief nach Fristablauf?
Bei mehr Extras steigt auch der Wunsch nach einer guten GUI. Ergo auch da überlegen..

Schönes Projekt, kann aber für einen "Wieder-Anfänger" auch gerne länger dauern. Ist das vereinbar mit dem Freund, der damit vielleicht schon Anfang nächsten Monats arbeiten möchte? Nun, ich spreche nicht gegen das autarke Erstellen einer eigenen Applikation, aber auch mit VBA (OO vice versa) kann man vieles anstellen, hat es dafür schon eine altbekannte GUI, die nur aufgestockt wird.

Ergo, entscheiden soll er sich selbst, jede Meinung ist wichtig und es gibt gar keinen Grund, gegen das Eine noch das Andere zu wettern..

mfg chmee


----------



## hela (18. Januar 2010)

chmee hat gesagt.:


> ... Ergo, entscheiden soll er sich selbst, jede Meinung ist wichtig und es gibt gar keinen Grund, gegen das Eine noch das Andere zu wettern..


Ja, das ist auch meine Meinung und ich hoffe, dass mein Beitrag nicht als "wettern" verstanden wurde.


----------

