27.01.2026 21:12:10
Navigation
· Bugtracker
· Kontakt
· Web Links
· Suche
· Buchtipps
Login
Benutzername

Passwort



Noch kein Mitglied?
Klicke hier um dich zu registrieren

Passwort vergessen?
Um ein neues Passwort anzufordern klicke hier.
Mitglieder Online
· Gäste Online: 2

· Mitglieder Online: 0

· Mitglieder insgesamt: 15,294
· Neuestes Mitglied: MariaH
Foren Themen
Neueste Themen
· EÜR 2025
· Zuschüsse zum ÖPNV...
· GoBD Vorschriften ab...
· Umsatzsteuererkläru...
· Betriebseinnahmen Kl...
Heißeste Themen
Keine Themen erstellt
Thema ansehen
EasyCash&Tax Website » EasyCash&Tax - Fibu » BankImport-Plugin
   Thema drucken
Mein Dresdner-Bank Script mal erklärt
mielket
Da ich glaube, dass dieses sehr spezielle aber sehr mächtige Plugin nur von wenigen Benutzern verwendet wird, und das deshalb, weil es nicht ganz einfach auf eigene Bedürfnisse anzupassen ist, möchte ich mein eigenes Script, mit dem ich die EC&T-Spenden buche, die auf meinem Konto eintrudeln, einmal ausführlich kommentieren.

Mein Mozilla-Browser schmeißt folgendes in die Zwischenablage, wenn ich eine Zeile aus der Kontenübersicht des Online-Bankings selektiere und dann kopiere:

11.11.2005[TAB]11.11.2005[TAB]Verguetung[TAB][ENTER]
VORNAME NACHNAME VERWENDUNGSZWECK[ENTER]
[TAB]EUR[TAB]15,00 H[TAB][ENTER]

Zunächst extrahiere ich die einzelnen Teile für die Buchung aus der Browserzeile. Es können, wie beim Editieren mit einer Schreibmarke und indem man die Shift-Taste gedrückt hält, Anfangs- und Endmarken mit den "Setze Anfangsmarke" und "Setze Endmarke" Befehlen gesetzt werden. Alles was nach dem Setzen der Marken dazwischen liegt kann mit dem "Selektion -> [Buchungsbestandteil]" Befehl in eine neue EC&T-Buchung übernommen werden. [Buchungsbestandteil] kann dabei folgendes sein: Belegnummer, Betrag, Buchungsdatum, Buchungstext.


// BankImport-Skript 'Dresdner Bank -- Registriergebühren zu 7%'
//
// Buchungsdatum
Setze Anfangsmarke für Selektion
Springe hinter nächsten Tabulator
Setze Endmarke für Selektion
Selektion -> Buchungsdatum

Den jeweils 'eingescannten' Anteil habe ich fett hervorgehoben:

11.11.2005[TAB]11.11.2005[TAB]Verguetung[TAB][ENTER]
VORNAME NACHNAME VERWENDUNGSZWECK[ENTER]
[TAB]EUR[TAB]15,00 H[TAB][ENTER]


//
// Kontoinhaber -> Belegtext
Springe hinter nächsten Zeilenumbruch
Setze Anfangsmarke für Selektion
Springe hinter Suchmuster/( )
Springe vor Suchmuster/( )
Setze Endmarke für Selektion
Selektion als Personennamen normalisieren
Selektion -> Buchungstext

11.11.2005[TAB]11.11.2005[TAB]Verguetung[TAB][ENTER]
VORNAME NACHNAME VERWENDUNGSZWECK[ENTER]
[TAB]EUR[TAB]15,00 H[TAB][ENTER]

Der Befehl "Selektion als Personennamen normalisieren" sorgt dafür, dass eine korrekte Groß/Kleinschreibung verwendet wird und dass bei einem Komma zwischen Vor- und Nachnamen das Komma gelöscht wird und die Namen vertauscht werden. Z.B.:

"VORNAME NACHNAME" -> "Vorname Nachname" oder
"nachname, VORNAME" -> "Vorname Nachname"


//
// Betrag
Springe hinter nächsten Tabulator
Springe hinter nächsten Tabulator
Setze Anfangsmarke für Selektion
Springe vor Suchmuster/( )
Setze Endmarke für Selektion
Selektion -> Betrag

11.11.2005[TAB]11.11.2005[TAB]Verguetung[TAB][ENTER]
VORNAME NACHNAME VERWENDUNGSZWECK[ENTER]
[TAB]EUR[TAB]15,00 H[TAB][ENTER]


//
// Einnahmen oder Ausgaben?
Gehe ein Zeichen weiter
Setze Anfangsmarke für Selektion
Gehe ein Zeichen weiter
Setze Endmarke für Selektion
Wenn Selektion <> Suchmuster/Ausgaben/(H)
Als Einnahmen buchen
Setze MWSt./7
Setze Konto/Software-Spenden (Charityware)

11.11.2005[TAB]11.11.2005[TAB]Verguetung[TAB][ENTER]
VORNAME NACHNAME VERWENDUNGSZWECK[ENTER]
[TAB]EUR[TAB]15,00 H[TAB][ENTER]

Hier steht entweder 'H' für Haben oder 'S' für Soll. Entsprechend unterscheide ich nach Einnahmen oder Ausgaben. Ist es eine Ausgabe, springe ich nach ganz unten zur Sprungmarke "Ausgaben". Wenn nicht, gehe ich davon aus, dass es sich um eine Spende handelt, die ich mit 7% versteuere und auf das Konto "Software-Spenden (Charityware)" buche.

Im Prinzip reicht das bis hier schon, um Buchungen zu erzeugen. Aber das Plugin kann noch mehr. Ab hier ist es für Anfänger allerdings schwierig, denn jetzt wird die eingelesene Buchung mit einer Datenbank verknüpft. Die Datenbank hat ihre eigene Sprache, die sich SQL nennt und mit der Abfragen und Änderungen gemacht werden können. Der Zweck der Datenbankanbindung ist es, die Zahlungen auf das Konto mit einem eigenen Datenbestand zur Zahlungskontrolle abzugleichen.

Ich selbst greife auf eine mySQL-Datenbank zu, die auf dem Server der EC&T-Website liegt und die EC&T-Registrierungen enthält. Aber mit SQL kann man auch auf einfachere MS-Access oder Excel-Tabellen zugreifen, wenn man eine ganz simple Offene-Posten Liste führen will. Im Prinzip lässt sich jede sog. ODBC-Datenquelle verwenden. Der '...' Knopf im BankImport-Dialog erlaubt das Auswählen einer Datenquelle. Zum Anlegen einer ODBC-Datenquelle geht man (bei Windows2000) auf Systemsteuerung -> Verwaltung -> Datenquellen (ODBC).


//
// Rechnungsnummer über Kontoinhaber aus Datenbank holen
//
Datenbankabfrage/SELECT reg_name, reg_email, reg_bemerkungen,reg_rech FROM reg_users WHERE REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(reg_name,'ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE('<Beschreibung>','ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') AND reg_rech<>"" ORDER BY reg_name;
Wenn Datensatz nicht gefunden/keine_rg_nr
Tabellenspalte enthält Belegnummer/4
Datenbankaktualisierung/UPDATE reg_users SET reg_rech="<Belegnummer>", reg_bezahlt="-1", reg_test="0", reg_voll="-1" where reg_rech="<Belegnummer>" AND reg_rech<>"";
Nach Sprungmarke/Ende

Nach dem "Datenbankabfrage/" Befehl kommt ein SQL-Befehl (SELECT), der nach dem Auftraggeber der Überweisung in den mit Rechnungsnummer versehenen Einträgen der Registrierungsdatenbank sucht. Er ist etwas komplizierter, weil eine Umlautkonvertierung durchgeführt wird. Bei einem erfolgreichen Fund wird die in der Tabelle gespeicherte Rechnungsnummer als Belegnummer in die EC&T-Buchung übernommen, die in der 4. Spalte der durch den SELECT-Befehl gefüllten Tabelle des Bankimport-Buchendialogs steht. "<Beschreibung>" ist dabei ein Platzhalter, der den Auftraggeber der Überweisung in den SQL-Befehl einfügt.

Mit dem "Datenbankaktualisierung/" Befehl wird eine SQL-Änderungsabfrage gesetzt, die nach Überprüfung der Buchung durch den Anwender ausgeführt wird. Z.B. kann der Anwender im Bankimport-Buchungsdialog die Belegnummer ändern, die dann mit dem SQL-UPDATE-Befehl in die Datenbank geschrieben wird.


//
:keine_rg_nr
// Noch keine Rg-Nr. vergeben
//
Datenbankabfrage/SELECT reg_name, reg_email, reg_bemerkungen,reg_rech FROM reg_users WHERE REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(reg_name,'ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE('<Beschreibung>','ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') AND reg_rech="" ORDER BY reg_name;
Wenn Datensatz nicht gefunden/suche_aehnliche_namen
Datenbankaktualisierung/UPDATE reg_users SET reg_rech="<Belegnummer>", reg_bezahlt="-1", reg_test="0", reg_voll="-1" where reg_name="<Beschreibung>" AND reg_rech="";
Nach Sprungmarke/Ende

Dieses Set von Script-Befehlen wird ausgeführt, wenn bei der vorigen Abfrage kein übereinstimmender 'Kunde' mit einer zugewiesenen Rechnungsnummer gefunden wird. Hier wird nach Übereinstimmenden Namen geschaut, für die noch keine Rechnungsnummer existiert. Wenn dies auch keinen Treffer gibt, wird mit der nächsten Abfrage fortgefahren.


//
:suche_aehnliche_namen
// Name anders geschrieben
//
Datenbankabfrage/SELECT reg_name, reg_email, reg_bemerkungen,reg_rech FROM reg_users WHERE REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(reg_name,'ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') LIKE CONCAT('%',LEFT('<Beschreibung>',INSTR('<Beschreibung>',' ')),'%') OR REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(reg_name,'ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss') LIKE CONCAT('%',SUBSTR(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE('<Beschreibung>','ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss'),1+INSTR(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE('<Beschreibung>','ä','ae'),'ö','oe'),'ü','ue'),'Ä','Ae'),'Ö','Oe'),'Ü','Ue'),'ß','ss'),' ')),'%') ORDER BY reg_name;
Wenn Datensatz nicht gefunden/alle_anzeigen
Datenbankaktualisierung/UPDATE reg_users SET reg_rech="<Belegnummer>", reg_bezahlt="-1", reg_test="0", reg_voll="-1" where reg_name="<Beschreibung>";
Tabellenspalte enthält Belegnummer/4
Tabellenspalte enthält Buchungstext/1
Nach Sprungmarke/Ende

Hier werden nun alle Namen in der kleinen Tabelle des Bankimport-Buchendialogs aufgelistet, die in der Datenbank entweder eine Übereinstimmung mit dem Vornamen oder dem Nachnamen ergeben (SQL: LIKE-Operator).


//
:alle_anzeigen
// Noch keine Rg-Nr. vergeben
//
Datenbankabfrage/SELECT reg_name, reg_email, reg_bemerkungen,reg_rech FROM reg_users ORDER BY reg_name;
Wenn Datensatz nicht gefunden/Ende
Datenbankaktualisierung/UPDATE reg_users SET reg_rech="<Belegnummer>", reg_bezahlt="-1", reg_test="0", reg_voll="-1" where reg_name="<Beschreibung>";
Tabellenspalte enthält Belegnummer/4
Tabellenspalte enthält Buchungstext/1
Nach Sprungmarke/Ende
//

Wenn die letzte Abfrage auch keinen Treffer brachte, werden einfach alle Einträge der Datenbank in der Tabelle angezeigt. Außerdem werden die Befehle nach der "Ausgaben" Sprungmarke übersprungen.


:Ausgaben
Als Ausgaben buchen
:Ende
Springe hinter nächsten Zeilenumbruch
//
//


Das ganze Script gibts nochmal als Dateianhang ohne Smily-Konvertierungen. ;)
Bearbeitet von mielket am 14.11.2005 22:16:34
 
http://am3.notify.live.net/throttledthirdparty/01.00/AQGwcKFTwqFdQoAAdm9TTl6zAgAAAAADEwAAAAQUZm52OjE3QjlBNEFEQTU4QzU2ODAFBkxFR0FDWQ
Springe ins Forum:
Forensuche


Shoutbox
Du musst dich einloggen um eine Nachricht zu senden.

mielket
12.01.2026 13:32:16
@sternkieker Nein, ich lass mir Zeit damit. Die Frist bis 10. gilt überigens nur für USt.-Voanmeldungen
-- die USt.-Erklärung kannst Du locker auch im Sommer machen.

Thomas R
07.01.2026 18:40:16
@Sternkieker Die USt-Erklärung 2025 sind im Grunde ja nur 2 Zahlen. Das kannst du schon elektronisch über Elster vornehmen.

sternkieker
07.01.2026 17:22:09
Besteht die Möglichkeit, dass das Formular Umsatzsteuererklär
ung 2025 bis zum 10.1.26 online ist ?? Grüße aus Berlin Sternkieker

hhoffmann
06.01.2026 20:33:25
@mielket Danke für die Info. Prima! Wink

mielket
05.01.2026 12:08:57
Ein gutes Neues wünsche ich euch auch!

mielket
05.01.2026 12:07:59
@thomas_stahl schick mir mal einen screenshot. Wegen Datensicherungsopt
ionen: Ist normal -- wähle einfach eine der Optionen; die drückt dann automatisch auf OK.

mielket
05.01.2026 12:05:10
@hhoffmann Im Verlaufe des Januar kommt das Formular-Update. Benutze bis dahin provisorisch das EÜR2024.

hhoffmann
04.01.2026 17:15:08
Hallo, ist die EÜR 2025 online oder sehe ich die nicht? Danke für Tipp!

thomas_stahl
03.01.2026 21:31:24
Und bei dem Fenster Datensicherungsopi
onen ist nur der Button Abbrechen sichtbar, sonst nichts...

thomas_stahl
03.01.2026 21:30:28
Hallo, ich bekomme immer die Meldung: Sorry, konnte das Übergabeprotokoll-
PDF nicht öffnen...habe Acrobat und Reader aber installiert...

BernhardT
01.01.2026 13:12:45
Dem kann ich mich nur anschließen... Wink

Thomas R
31.12.2025 21:23:11
Allen hier ein gutes, erfolgreiches und gesundes 2026 und Dir mielket zusätzlich weiterhin die Kraft EC&T weiter zu pflegen. Smile

mielket
14.10.2025 10:40:17
Naja, wäre EC&T nativ für MacOS entwickelt worden und man bräuche einen Mac-Emulator drumrum, damit es auf Windows läuft, gäbe es auch Reibungsverluste.

Thomas R
04.10.2025 11:39:18
Danke, ich weiß schon, warum ich lieber in der Win-Welt lebe. Wink

mielket
04.10.2025 11:12:27
Der Plugin-Manager kann nur EC&T updaten, nicht das Crossover, das im EasyCT4Mac.zip Paket enthalten ist.

32,978,601 eindeutige Besuche