Spaltenbreite
|
kosch |
Geschrieben am 27.11.2012 11:25:57
|

Mitglied
Beiträge: 10
Registriert am: 09.03.2007
|
Hallo zusammen,
ich importiere meine Umsätze via csv. Nun haben einige Firmen die schlechte Angewohnheit einen ganzen Roman in die Beschreibung zu schreiben. Die Folge davon ist das nicht der Beleg gekürtzt wird sondern die Beschreibung (selbst das Wort ist nicht mal ganz zu lesen).
Da es keine Möglichkeit gibt die Spaltenbreite festzulegen würde ich das gerne als Wunsch für eine der nahenden Versionen kund zu tun.
Dies ist bei einem Ausdruck leider auch so - was eine Lesbarkeit unmöglich macht da man ja analog die Buchung nicht mehr anklicken kann .
Danke und Grüße. |
|
|
|
mielket |
Geschrieben am 08.12.2012 15:54:04
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Beim Ausdruck gibt es die Erleichterung durch Querformatdruck.
Wäre es nicht sinnvoller, beim Import das Beschreibungsfeld zu kürzen? Genau dafür habe ich das Import-Plugin mit einem Preprozessor versehen. Kann Dir gern zeigen, wie man das macht, wenn du mir mal drei Zeilen aus dem CSV gibst. |
|
|
|
kosch |
Geschrieben am 10.12.2012 12:14:06
|

Mitglied
Beiträge: 10
Registriert am: 09.03.2007
|
Ich hab da mal was angehängt beim Import schaut es entsprechend so aus:
Ein/Aus: Entsprechend Vorzeichen
Datum: Feld 2
Betrag Feld 8
Brutto/Netto: (Nur Bruttobeträge)
Beschreibung: Feld 4
Belegnummer: Feld 7
Konto: Festwert: Umsatzsteuerpflichtige Betriebseinnahmen
Steuersatz: Festwert 19%
Wichtig zu wissen ist das ich nur die Umsätze buche um die Umsatzsteuer abzuführen, ich mache sonst nichts anderes mit EasyCT. Ich muss monatlich meine Umsätze abgeben und das mache ich mehr aber auch nicht. Ich buche keine Ausgaben (abgesehen der gezahlten VST, UST, GST) damit ich die Übersicht behalte. Alles andere macht einmal im Jahr der Steuerberater. |
|
|
|
mielket |
Geschrieben am 10.12.2012 17:56:05
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Ok, hier das AWK-Script zu der CSV.
BEGIN { anzahl = 0 }
FNR == 1 { print $0 } # erste Zeile mit den Feldnamen so ausgeben wie sie reinkommt
FNR > 1 {
if ($7 != "Tagessaldo *" && $1 != "") # Saldenmitteilungen und Leerzeilen (kein Datum) ignorieren
{
# Zeile ($0) zerlegt in Felder ($1 - $9) wieder ausgeben, dabei nur Beschreibungsfeld auf 30 Zeichen kürzen
print $1 ";" $2 ";" $3 ";" $4 ";" $5 ";" $6 ";" substr($7, 0, 30) ";" $8 ";" $9
anzahl = anzahl + 1 # für die Statistik hochzählen
}
}
END { print anzahl " Zeilen verarbeitet, " NR - anzahl " Zeilen ignoriert" > "/dev/stderr" }
Dazu rechts neben dem GAWK Script Eingabefeld im Import-Plugin den "Bearbeiten" Knpof drücken. Es geht der Windows-Editor "Notepad" auf. Obiges kopieren und einfügen. Achtung: Notepad fügt zwanghaft nochmal ein .txt hinter die .awk Endung im Dateinamen. Das sollte im Explorer nochmal geändert werden. (Besser man installiert sich einen vernünftigen Editor wie Notepad++.) Jetzt den "Durchsuchen" Knopf rechts neben dem GAWK Script Eingabefeld im Plugin drücken und zu der erzeugten .awk-Datei navigieren. Dann erscheint der Dateiname im Eingabefeld für die Script-Datei. Schließlich auf "Ausführen" drücken. Ein Fenster öffnet sich, das "3 Zeilen verarbeitet, 29 Zeilen ignoriert" sagen sollte, wenn alles richtig funktioniert hat. Bitte beachten, dass dem CSV-Dateinamen das Kürzel ".awked" angehängt wurde. Also in "Umsätze_von_Kto.csv" bleiben die Originaldaten, in "Umsätze_von_Kto.csv.awked" ist die vom AWK-Preprozessor mit Hilfe des Scripts erzeugte Ausgabedatei mit gekürztem Beschreibungsfeld.
Eine zusätzliche Funktion des Scripts (außer den Buchungstext auf 30 Zeichen zu kürzen) ist, dass der Tagessaldo nicht mit verarbeitet wird. Auf ähnliche Weise könntest Du die Einnahmen vom Import ausschließen.
Bearbeitet von mielket am 10.12.2012 18:11:57
|
|
|
|
mielket |
Geschrieben am 10.12.2012 18:08:05
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Ach ja, hier nochmal das Script als Datei... |
|
|
|
mielket |
Geschrieben am 10.12.2012 18:19:57
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Ein Idee, die ich für den Fall noch habe und die mir sinnvoll erscheint, wäre den Empfänger und den Verwendungszweck in der Buchungsbeschreibung zusammenzufassen. Der Befehl würde dann so aussehen:
print $1 ";" $2 ";" $3 ";" $4 ";" $5 ";" $6 ";" $4 ": " substr($7, 0, 30) ";" $8 ";" $9
Das würde dann zu einer (wieder etwas längeren) Beschreibung wie
"xxx GmbH: ich bin ein furchterbar langer"
führen. Natürlich kann man den Empfänger ebenfalls kürzen:
print $1 ";" $2 ";" $3 ";" $4 ";" $5 ";" $6 ";" substr($4, 0, 30) ": " substr($7, 0, 30) ";" $8 ";" $9
Bearbeitet von mielket am 10.12.2012 18:20:22
|
|
|
|
kosch |
Geschrieben am 11.12.2012 11:14:18
|

Mitglied
Beiträge: 10
Registriert am: 09.03.2007
|
vielen dank erstmal für die mühe.
die ideen sind gut und ich muss da noch ein bisschen dran feilen damit es wirklich für mich passt. danke.
Bearbeitet von kosch am 11.12.2012 11:19:57
|
|
|
|
mielket |
Geschrieben am 11.12.2012 15:58:31
|

Seiten Administrator
Beiträge: 2684
Registriert am: 08.02.2005
|
Es lohnt sich auf jeden Fall, sich damit ein bisschen zu beschäftigen. Wenn man die Regeln für den eigenen Betrieb erstmal in einem Skript zusammengefasst hat, macht sich die Buchführung fast von allein.
Nochmal ein paar Quellen-Tipps:
Eine gute Kurzübersicht über die Skript-Sprache hier.
Das sehr gute 'offizielle' GNU Handbuch zu AWK, allerdings auf englisch.
Eine ausführliche PDF-Anleitung auf deutsch zu AWK gibt es hier.
Massen an Skript-Beispielen finden sich auf http://awk.info.
Und schließlich habe ich in diesem Thread mal mein eigenes Skript vorgestellt.
|
|
|