14.03.2026 03:02:15
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: 3

· Mitglieder Online: 0

· Mitglieder insgesamt: 15,305
· Neuestes Mitglied: nigelungen
Foren Themen
Neueste Themen
· Vorsteuerabzug/Umsat...
· Hebebühne
· "Rote" Meldung bei E...
· Fehler bei Update au...
· Diverse Fehlermelungen
Heißeste Themen
· Vorsteuerabzug/Um... [2]
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.

BernhardT
13.03.2026 11:36:50
Problem gelöst?

kkoefteg
11.03.2026 13:50:05
Vielen Dank.

BernhardT
11.03.2026 12:32:41
Stimmt der Pfad zum Datenverzeichnis?
Links oben auf das Programm-Icon klicken und dann ggf. das richtige Verzeichnis auswählen. Besser einen Thread im Forum eröffnen.

kkoefteg
10.03.2026 22:06:14
Nach dem Update bekomme ich die Meldung „Software neu installiert“. Die Software springt sofort zu Buchungsjahr und Währung. Die Felder Unternehmen, Finanzamt usw. sind leer. Die angelegten Konten

mielket
26.02.2026 18:29:38
Bei meinem kleinen GoBD-Tool war das Software-Signatur-
zertifikat abgelaufen. Ich habe es auf der Download-Seite aktualisiert.

mielket
11.02.2026 14:10:50
Tut mir Leid, wenn immer noch nicht alle den Newsletter bekommen haben aber mein neuer Webspace-Provider hat den EMail-Versand auf 60 pro Stunde gedrosselt. Kann also noch bis zum Wochenende dauern...

fantes11
03.02.2026 11:48:14
Es funktioniert sehr gut. Wie immer. Danke.

mielket
30.01.2026 18:10:58
Kleines Update: Es fehlen nur noch die deutschen USt.-Erkl.- Formulare 2025 und 2026...

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.

33,279,188 eindeutige Besuche