Karl Pflästerer schrieb:
Ich wäre froh, gäbe es schon mal ein Musterprogramm, wo einige Ansätze realisiert sind.
Wenn du genau beschreibst, was du willst, wird sich da schon was finden.
vorab: ich habe nur etwas Wissen in Basic, Cobol und RPG
Du kannst programmieren: das reicht. naja.. nicht wirklich! Für Filter reicht es und anderes per try and error, aber es soll besser werden!
Problem: Ich suche eine Möglichkeit eine Datei mit Sätzen unterschiedlichen Inhaltes zu lesen, je nach Inhalt in 3 verschiedene Dateien auszugeben und in eine CSV-Datei auszugeben.
Hintergrund: Ich erhalte von unserem Rechenzentrum eine Textdatei mit festem Satzaufbau, z.B."Fb82130.dav ". (82130 ist die Mandantennummer). In der Datei sind verschiedene Satzarten: Wenn Satz Stelle 1-2 = 55, dann Konto mit Saldo Wenn Satz Stelle 1-2 = 14, dann Buchung wie kann ich das erreichen,
Wie sind denn die einzelnen Sätze vonaeinader getrennt? Ich nehme an newline und du hast dies nur in deiner E-Mail wegen der Zeilenlänge so nicht dargestellt? Die Sätze sind 80 Byte lang und enden mit carriage-return/line feed (CRLF,0d0a)
Firmenstammsatz Beispiel: 5082130 7 5182130120001400088200881007620076100171001700017200 kann erst einmal überlesen werden. Kontenstammsatz Beispiel: 558213011000 00 DEUTSCHE BANK..... 00003155456 B
Satzaufbau Beispiel: 1 - 2 Satzart 3 - 7 Mandantennummer (ergibt die Dateinummer: FBnnnnn.DAV) 8 - 12 Konto 21 - 65 Kontotext 66 - 76 Betrag Anfang 79 - 79 Bilanzmerkmal (B=Bilanz) ... anderes lasse ich mal weg
Könntest du dies etwas anders schreiben (das macht es Helfern leichter) z. B. so (du beginnst mit 1 zu zählen): 1 2 3 4 5 6 7 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890
aabbbbbcccccdddddeefggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhiijk
und hierunter die Beispielfelder. meintest Du das so? Dann ist a = Satzart n b = Mandant n c = Kontonummer n d = Unterkonto n e = Filiale a f = blanc g = Text a Kontobezeichnung h = Betrag n,2 (num. 2 Nachkommastellen) i = Sortierkennzeichen a j = Bilanzkennzeichen a k = Sperrkennzeichen a (a = alpha, n = numerisch) weitere Satzarten kann ich später beschreiben. Ich benötige eigentlich erst einmal einen Ansatz, wie solch ein Programm anzugehen ist. "hello world" und "zählen bis 10" in den Büchern helfen nicht so richtig! Ich denke, wenn das Kontenplan "Einlese- und Aufbereitungsprogramm" steht sind die anderen Modifikationen. Vorsicht Falle: Daten kommen von Groß-EDV (EBCDIC-Code) und Umlaute seltsam: RšCKST., das soll RÜCKST. (Rückstellung) heißen K™ST KÖST (Körperschaftssteuer)
568213011000 0 9R --> für spätere Statistik, die ersten 3 Felder sind identisch zum Konto kann erst einmal überlesen werden.
Buchungen eines Jahres (aufgelaufen) 148213018430 99998 311003 000108819 (Sollseite des Kontos) 148213099998 18430 311003 000135425 (Habenseite des Kontos) 1 2 3 4 5 6 7
12345678901234567890123456789012345678901234567890123456789012345678901234567890 llmmmmmnnnnnooooopppppqqqqqrrrrrrssssssttuuuuuuuuuvvvvvvvvvvvvvvvvvvwwxxxxxyyyyy l = Satzart n m = Mandant n n = Konto-Soll n o = Unterkonto-Soll n p = Konto-Haben n q = Unterkonto-Haben n r = Buchungsdatum n TTMMJJ s = Belegdatum n TTMMJJ t = Textschlüssel a u = Betrag n,2 (num. 2 Nachkommast.) v = variabler Text a w = Steuerschlüssel n x = Kostenart y = Kostenträger
Ich möchte - Dialog zu Einlesen beliebiger Dateien (82130, 42776, etc.) Der Rest der Dateibezeichnung ist festgelegt. Die Eingabe-Datei für obige Daten heißt FB82130.DAV
Kein Problem.
- Erstellen einer Datei "Firmenstammsatz" - Erstellen einer Datei "Kontenplan" - Erstellen einer Datei "Buchungen"
Auch kein Problem.
- erstellen einer "Saldenliste" Saldenliste ist eine Zeile je Konto Anfangsbestand laut Eröffnungswert im Kontensatz + und - der Bewegungszahlen (aus Buchungen) errechnet: neuer Endwert Beispiel: Überschrift: Saldenliste Mandant 82130 vom 31.12.2003, Seite : 1
Konto Bezeichnung Anfangssaldo Umsatz-Soll Umsatz-Haben Endsaldo ccccc ggg...ggggg hhhhhhhhh,hh uuuuuuu,uu uuuuuuu,uu zzzzzzzzz,zz wobei h + uS - uH = z ist. wenn n = 99998, dann ist u = uH, wenn p = 99998, dann ist u = uS
sollte auch problemlos möglich sein. Was mir hierbei einfällt: eventuell mußt du dir gedanken über Rundungsfehler machen (bezweifle ich aber). zur Zeit keine Rundungen, da nur Nettobuchungen vorliegen. Mehrwertsteuer muß nicht herausgerechnet werden.
zu guterletzt eine Liste: Liste Bilanz (alle Konten haben ein Merkmal "B" in einem Feld) Liste G+V (alle Konten haben *kein* Merkmal "B" in einem Feld)
Einfach zu filtern.
[...]
GUI-Änderungsprogramm: - Firmenstammsatz - Konto - Buchungen
Ich würde an deiner Stelle erst einmal eine Lösung für die Kommandozeile schreiben (sollte nicht zu wild sein) und die GUI hinterher entwickeln. o.k. Ich wollte gern das Ziel nennen, damit nicht der Weg dahin verbaut ist.
Bitte sende eine E-Mail (wenn möglich mit angepaßter Beschreibung (siehe meine Anmerkungen)) *nur* an die Mailingliste. Die Mailingliste ist geschlossen, wer dort schreibt, empfängt die Liste auch. Daher ist Cc nicht notwendig.
Jetzt ist die Mail doch Mammut.. geworden. Tut mir leid, aber kürzer konnte ich nicht! Danke für die Starthilfe! Auf geht's. MfG Werner _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de