[Python-de] Programm gesucht

Werner Warweg Werner.Warweg at t-online.de
Don Apr 1 00:10:20 CEST 2004


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