Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   SEPA Komponente gesucht (https://www.delphipraxis.net/173688-sepa-komponente-gesucht.html)

Union 11. Okt 2013 09:24

AW: SEPA Komponente gesucht
 
Und die werden dann in der Ausgabe auch suaber getrennt? Da ja verschiedene Latschriftarten nicht in einer XML zusammen stehen dürfen. Oder ist man selber dafür zuständig zu prüfen dass jeweils nur gleiche Arten verarbeitet werden?

arnof 11. Okt 2013 09:46

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von Union (Beitrag 1231755)
Und die werden dann in der Ausgabe auch suaber getrennt? Da ja verschiedene Latschriftarten nicht in einer XML zusammen stehen dürfen. Oder ist man selber dafür zuständig zu prüfen dass jeweils nur gleiche Arten verarbeitet werden?

Das muss der Programmierer machen, in einem Bankingprogramm gibt es ja auch unterschiedliche Eingaben für Überweisungen, Lastschrift und Abbuchungsaufträge.

Das ist nur ein schnelles DEMO Programm, damit man sieht wie die Komponente funktioniert und was Sie kann :wink:

sh17 11. Okt 2013 10:23

AW: SEPA Komponente gesucht
 
:-D hier fehlt echt nen +1 im forum. Bitte heute nochmal geldeingang checken,danke

HPB 11. Okt 2013 10:49

AW: SEPA Komponente gesucht
 
Moin arnof,
habe heute auch per Online bezahlt. Bitte Geldeingang checken . . .
Mit Gruß HPB

arnof 11. Okt 2013 10:59

AW: SEPA Komponente gesucht
 
Ihr könnt auch bitte direkt an vertrieb@arma-it.de schreiben, da brauchen wir das Forum nicht voll spammen

PS: banken brauchen manchmal ein paar tage, meine Mitarbeiter senden die auch schon raus, wenn Ihr einen Beleg (oder Screenshot) dort hin mailt.

sh17 11. Okt 2013 12:29

AW: SEPA Komponente gesucht
 
OK, erhalten, danke.

Noch eine Frage, besteht Interesse an Feedback zu Quellcodeänderungen (Umbau, Ergänzungen), Formatierungen? Wenn ja, diese per PN?

arnof 11. Okt 2013 13:13

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von sh17 (Beitrag 1231799)
OK, erhalten, danke.

Noch eine Frage, besteht Interesse an Feedback zu Quellcodeänderungen (Umbau, Ergänzungen), Formatierungen? Wenn ja, diese per PN?

Deshalb habe ich die Komponenten überhaupt angeboten (das ist einiges an Mehrarbeit, als wenn man das nur für intern macht)!

Auch BLZ's von anderen Ländern nehme ich gerne und reiche die weiter.

@Union: mit LU_BIC kann man es auch in Luxenburg einsetzen!

Vielleicht bauen wird die Sparte als Entwicklerzulieferer weiter aus. Unser nächstes Projekt was wir weitergeben könnten währe hier zu finden (z.Z. nur in einer eigenen Version für unsere Systeme; es gibt davon aber schon die Entwicklerversion)

http://dashboard.afs-software.de

sh17 13. Okt 2013 21:22

AW: SEPA Komponente gesucht
 
Übersicht der Bezugsquellen von aktuellen Bankenverzeichnissen.

Für Bankleitzahlen in Deutschland wäre das

http://www.bundesbank.de/Redaktion/D..._download.html

Allerdings gibt es abweichend von der allgemeinen IBAN-Bildungsregeln eine ganze Reihe Ausnahmen. Die Institute, die das betrifft sind in der "erweiterten Bankleitzahlendatei" markiert. Diese bekommt man, nachdem man sich im ExtraNet kostenlos registriert hat. Ich bin da grad dran und werde den IBAN-Konverter dementsprechend erweitern.

http://www.bundesbank.de/Navigation/...an_regeln.html


Für Bankleitzahlen in Österreich wäre das

http://www.oenb.at/de/stat_melders/s.../downloads.jsp


Für Bankclearing (BC)-Nummern in der Schweiz wäre das

http://www.six-interbank-clearing.co...nk-master.html


Bitte weitere ergänzen..

Union 14. Okt 2013 07:49

AW: SEPA Komponente gesucht
 
Für Luxembourg ist die Tabelle im Excel-Format bei der Luxemburger Bankenvereinigung verfügbar. Die BLZ ist 3-stellig und steht an den Stellen 5-7. Bisher wurde in Luxembourg allerdings gar keine BLZ verwendet, sondern für Inlandsüberweisungen die ersten 4 Stellen der BIC. Also z.b. DEUT für die Deutsche Bank (BIC DEUTLULL). Resultierende IBAN dann LUpp036k kkkkk kkkk kkkk (p=Prüfziffer, k=Kontonummer hinten mit Nullen aufgefüllt. Es gibt auch Kontoummern mit führenden Nullen, die werden mit übernommen).

sh17 14. Okt 2013 08:23

AW: SEPA Komponente gesucht
 
Danke, hier mal eine Übersicht über den Aufbau der IBAN in den verschiedenen Ländern:

http://www.pruefziffernberechnung.de/I/IBAN.shtml

arnof 24. Okt 2013 11:26

AW: SEPA Komponente gesucht
 
Bugmeldung und Behebung:

hallo, leider ist mir ein kleiner Käfer unterlaufen in der Komponente, wenn man mehrere Belege (Sammler) ausführt.

Hier wurden Abschlußtags innerhalb der Belegscheife ausgegeben, dies muss nach der Schleife passieren.

in der Datei AFS_SEPA.PAS ab Zeile 750 ist wie folgt zu ändern (verschieben):
Code:
  //
  // noch ein Beleg?
  //
  dec(Beleg);
  if Beleg>-1 then mSepa:=S_Sepa[Beleg];
 end; // Belege while end
 //
 result:= result+'   </PmtInf>'+Zeile;
 if Art in [0] then begin       // Überweisung
  result:=result+' </CstmrCdtTrfInitn>'+Zeile;;
 end;
 if Art in [10,11] then begin  // Lastschrift
  result:=result+' </CstmrDrctDbtInitn>'+Zeile;
 end;
Also das </PmtInf> und </CstmrDrctDbtInitn> muss hinter dem While end ausgegeben werden.

arnof 24. Okt 2013 14:55

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von sh17 (Beitrag 1231938)
Allerdings gibt es abweichend von der allgemeinen IBAN-Bildungsregeln eine ganze Reihe Ausnahmen. Die Institute, die das betrifft sind in der "erweiterten Bankleitzahlendatei" markiert. Diese bekommt man, nachdem man sich im ExtraNet kostenlos registriert hat. Ich bin da grad dran und werde den IBAN-Konverter dementsprechend erweitern.

So ich habe nun den Zugang zum extranet und mit die 176 Seiten zur Ausnahmen zur IBAN Bildung angeschaut:

Dies sind zum Großteil Stiftungs und Sonderkonten, die den normalen Geschäftsbetrieb zu 99 % nicht betreffen. Findest Sie/Ihr das Sinnvoll mit in den Konverter einzubauen.

Zu Info: es handelt sich um diverse Banken, die Pseudokontonummern vergeben haben z.B. für Spendenorganisationen, hier mal ein beispiel der Kölnerbank:

Code:
Gemäß nachfolgender Aufstellung muss aber für bestimmte Konten bei der Berechnung
der IBAN eine abweichende Kontonummer verwendet werden.
Kontonummer für die IBAN-Ermittlung zu
verwendende Kontonummer

300000 18128012
D.h. aktuell Kontonummer 30000 bei der IBAN Umstellung muss die Kontonummer 18128012 verwendet werden. So haben einige Banken Ihre 1-20 Sonderkonten.

Ich halte das Aufwand/Nutzungsverhältnis für arg unverhältnismäßig, sei denn mann erstellt eine Sprendenverteilungssoftware .....

Eure Meinung :?:

rapante 24. Okt 2013 16:21

AW: SEPA Komponente gesucht
 
Was passiert denn, wenn ich so eine Bankverbindung durch den Konverter jage? - Es wird einen falsche IBAN erzeugt!
Man könnte auch die Kontonummern prüfen und einen Hinweis ausgeben, dass es sich um einen Sonderfall handelt und
keine IBAN erzeugt werden kann...
Aber wo bekomme ich die Daten dann als User her?

Also ich denke, wenn man so eine Komponente anbietet, dann auch komplett. Oder man weist explizit in der
Beschreibung auf die Unvollständigkeit hin (in fett und groß :D ).

arnof 24. Okt 2013 16:26

AW: SEPA Komponente gesucht
 
Ja klar .... unvollständig :thumb:

Und was ist mit anderen Ländern, mann kann ja nicht für alle Länder eine Ausnahmegenerator machen.

Der IBAN Generator ist halt nach den ISO Regeln, die auch in allen Publikationen beworben werden (Bundesbank, Europäische Zentralbank, usw.).

sh17 25. Okt 2013 05:07

AW: SEPA Komponente gesucht
 
Ich bin auch noch am zweifeln, habe aber meine PIN für das Extranet noch nicht. Es sind wohl gegen 60 Ausnahmeregeln, wie ich aus einem OpenSource Konverter entnehmen kann. Und ich schätze mal, das nur deutsche Banken wieder solche Umstände machen.

rapante 25. Okt 2013 08:50

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von arnof (Beitrag 1233054)
Ja klar .... unvollständig :thumb:
Und was ist mit anderen Ländern, mann kann ja nicht für alle Länder eine Ausnahmegenerator machen

Da ich mich momentan selbst mit dem Thema auseinandersetzen muss, weiss ich was für ein riesieger Aufwand es ist das alles selbst zu implemntieren. Deshalb habe ich mich auch für eine fertige Lösung entschieden.

Ich wollte damit nicht sagen, dass alle erdenklichen Länder und Sonderfälle abgedeckt werden müssen. Vor allem nicht für einen Preis von 99€ ;).
Als Kunde möchte ich aber genau wissen, was eine Komponente leisten kann und was nicht.
Also zumindest sowas in der Art:
"Mit dem IBAN-Generator können IBAN's von deutschen Kontoverbindungen erstellt werden. ...IBAN's von Sonderkonten (deren Berechnung nicht den Standardregeln entsprechen) können nicht ermittelt werden..."

arnof 25. Okt 2013 09:05

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von sh17 (Beitrag 1233108)
Ich bin auch noch am zweifeln, habe aber meine PIN für das Extranet noch nicht. Es sind wohl gegen 60 Ausnahmeregeln, wie ich aus einem OpenSource Konverter entnehmen kann. Und ich schätze mal, das nur deutsche Banken wieder solche Umstände machen.

Ich hatte mich gleich nach meinem Urlaub Montag drum gekümmert, gestern war der Brief in der Post. Die anderen BLZ Dateien enthalten NICHT die Sonderregeln. Es gibt ein 176 Seiten PDF, dort stehen die Banken drin jeweils mit Vorwort bla bla zu JEDER der unten aufgeführten Banken und deren Besonderheiten beim BLZ Konvertieren und deren Sonderkontonummern. Das könnten zwischen 40-60 Banken sein.

Hier die Banken die Sonderkonten bzw Ausnahmen in irgendeiner Form haben (auch wenn es nur ein einziges Konto bei der entsprechenden Bank ist, z.B. Spendkonten):

Code:
0002 00 Augsburger Aktienbank
0003 00 Aareal Bank AG
0004 00 Landesbank Berlin / Berliner Sparkasse
0005 01 Commerzbank AG
0006 00 Stadtsparkasse München
0007 00 Sparkasse KölnBonn
0008 00 BHF-Bank AG
0009 00 Sparkasse Schopfheim-Zell
0010 00 Frankfurter Sparkasse
0011 00 Sparkasse Krefeld
0012 01 Landesbank Hessen-Thüringen
0013 01 Landesbank Hessen-Thüringen
0014 00 Deutsche Apotheker- u. Ärztebank
0015 00 Pax-Bank eG
0016 00 Kölner Bank eG
0017 00 Volksbank Bonn Rhein-Sieg
0018 00 Aachener Bank eG
0019 00 Bethmann Bank
0020 01 Deutsche Bank AG
0021 01 National-Bank AG
0022 00 GLS Gemeinschaftsbank eG
0023 00 Volksbank Osnabrück eG
0024 00 Bank im Bistum Essen eG
0025 00 Landesbank Baden-Württemberg /Baden-Württembergische Bank
0026 00 Bank für Kirche und Diakonie eG
0027 00 Volksbank Krefeld eG
0028 00 Sparkasse Hannover
0029 00 Société Générale
0030 00 Pommersche Volksbank eG
0031 01 UniCredit Bank AG
0032 00 UniCredit Bank AG
0033 01 UniCredit Bank AG
0034 00 UniCredit Bank AG
0035 01 UniCredit Bank AG
0036 00 HSH Nordbank AG
0037 00 The Bank of Tokyo-Mitsubishi UFJ, Ltd.
0038 00 Ostfriesische Volksbank eG
0039 00 Oldenburgische Landesbank AG
0040 01 Sparkasse Staufen-Breisach
0041 00 Bausparkasse Schwäbisch Hall AG
0042 00 Deutsche Bundesbank
0043 00 Sparkasse Pforzheim Calw
0044 00 Sparkasse Freiburg
0045 00 SEB AG
0046 00 Santander Consumer Bank
0047 00 Santander Consumer Bank
0048 00 VON ESSEN GmbH & Co. KG Bankgesellschaft
0049 00 WGZ Bank
0050 00 Sparkasse LeerWittmund
0051 00 Landesbank Baden-Württemberg /Baden-Württembergische Bank
0052 00 Landesbank Baden-Württemberg /Baden-Württembergische Bank
0053 00 Landesbank Baden-Württemberg /Baden-Württembergische Bank
0054 00 Evangelische Darlehnsgenossenschaft eG

arnof 25. Okt 2013 15:23

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von rapante (Beitrag 1233121)
Zitat:

Zitat von arnof (Beitrag 1233054)
Ja klar .... unvollständig :thumb:
Und was ist mit anderen Ländern, mann kann ja nicht für alle Länder eine Ausnahmegenerator machen

Da ich mich momentan selbst mit dem Thema auseinandersetzen muss, weiss ich was für ein riesieger Aufwand es ist das alles selbst zu implemntieren. Deshalb habe ich mich auch für eine fertige Lösung entschieden.

Ich wollte damit nicht sagen, dass alle erdenklichen Länder und Sonderfälle abgedeckt werden müssen. Vor allem nicht für einen Preis von 99€ ;).
Als Kunde möchte ich aber genau wissen, was eine Komponente leisten kann und was nicht.
Also zumindest sowas in der Art:
"Mit dem IBAN-Generator können IBAN's von deutschen Kontoverbindungen erstellt werden. ...IBAN's von Sonderkonten (deren Berechnung nicht den Standardregeln entsprechen) können nicht ermittelt werden..."

So ich habe nun alle deutschen Besonderheiten erfasst und abgefangen. Nebenbei teste ich ob die Onlinekonverter das auch können. Sparkasse kann fast alles beim Onlinedienst www.iban-rechner.de, der sogar mit 25,- EUR für Fehlerfreiheit garantiert habe ich schon einiges gefunden, was nicht geht :cyclops:

Test mal in deiner Lösung was dein Konverter aus

Kontonr 1991182
Blz 30060010

macht. Richtig ist hier DE26300600109911820001

arnof 25. Okt 2013 15:47

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von Smut (Beitrag 1233188)
Bestimmt ein FP:

Kaspersky hat hier nichts zu meckern :?:

Die können es auch nicht:

http://www.iban.de/iban-berechnen.html

Union 25. Okt 2013 15:50

AW: SEPA Komponente gesucht
 
Bei den meisten dieser Konten handelt es sich doch um einmalig oder kurzzeitig verwendete? Die Chance dass eine Firma z.b. regelmäßig per elektronisch automatisierter Überweisung für Flutopfer spendet ist wohl gering?

arnof 25. Okt 2013 16:03

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von Union (Beitrag 1233191)
Bei den meisten dieser Konten handelt es sich doch um einmalig oder kurzzeitig verwendete? Die Chance dass eine Firma z.b. regelmäßig per elektronisch automatisierter Überweisung für Flutopfer spendet ist wohl gering?

Teilweise, das Beispiel ist eine Sonderberechnung einer Bank ....

Ich habe nun 312 Sonderkonten erfasst; und 605 Bankleitzahlen Ersetzungen und 3 Sonderberechnungen: Fertig :thumb:

sh17 26. Okt 2013 04:01

AW: SEPA Komponente gesucht
 
:thumb:

arnof 28. Okt 2013 08:43

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von Union (Beitrag 1233191)
Bei den meisten dieser Konten handelt es sich doch um einmalig oder kurzzeitig verwendete? Die Chance dass eine Firma z.b. regelmäßig per elektronisch automatisierter Überweisung für Flutopfer spendet ist wohl gering?

Ja wenn Du für DE einen IBAN Konverter machts, dann solltest Du die Sonderregeln nachrüsten. Viele Banken misten Ihre bisherige BLZ und sonstige Probleme, die durch Fussionen in Ihren Systemen stecken mit der IBAN Umstellungen aus.

Beispiel APO BANK, ersetzt alle BLZ's der Filialen durch die Zentral BLZ; HYPO Vereinsbank -> Uni Credit Bank AG Ersetzt nun nach alter BLZ und den ersten 3 Stellen der Kontonr nun die BLZ durch andere!
Ein kleiner Auszug aus den Bundesbankdokumentation:

Code:
Filialnr BLZ von Kontonr bis Kontonr neue Blz
182 79520533 1820000000 1829999999 79520070
183 70020001 1830000000 1839999999 70020270
185 70020001 1850000000 1859999999 70020270
186 79020325 1860000000 1869999999 79020076

vollständige Liste hat 18 Seiten
Usw. ich habe mir nun die Mühe Gemacht alle Deutschen Besonderheiten in den IBAN Konverter einzubauen.

rapante 28. Okt 2013 09:23

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von arnof (Beitrag 1233185)
Test mal in deiner Lösung was dein Konverter aus

Kontonr 1991182
Blz 30060010

macht. Richtig ist hier DE26300600109911820001

Dasselbe Ergebnis gibt auch die von mir eingesetzte Komponente.

Zitat:

Zitat von arnof (Beitrag 1233185)
...ich habe mir nun die Mühe Gemacht alle Deutschen Besonderheiten in den IBAN Konverter einzubauen.

:thumb:

arnof 28. Okt 2013 15:48

AW: SEPA Komponente gesucht
 
Anpassung der Komponente:

Diese liefern wir aus mit Kompatibilität ab Delphi5 aufwärts aus. Wenn Sie eine ältere Delphiversion haben, so ändern Sie in der Datei afs_sepa.inc die Zeile

{$DEFINE DB_ADO} // geht nur für Windows

in

{….$DEFINE DB_ADO} // geht nur für Windows

Die Komponente ist nun Multiplattformfähig, d.h. ab XE2 auch für MACOSX, ab XE4 IOS und XE5 incl. Android.

schotti65 29. Okt 2013 13:17

AW: SEPA Komponente gesucht
 
Um nochmal auf die sevDTA-DLL zurückzukommen;
Zitat:

Zitat von vagtler (Beitrag 1220187)
Den DLL-Wrapper haben wir uns in wenigen Stunden selbst gebaut, allerdings nicht anhand des VB-Codes sondern anhand der Dokumentation...

Würdest Du diesen Wrapper freundlicherweise - ganz oder auszugsweise, dass man einen Ansatz hat - zur Verfügung stellen?
Ich habe mit dem Anbieter gesprochen, und er wollte das wohl "...wegen der verschiedenen String Typen in den verschiedenen Delphi Versionen..." nicht machen.
Ich benutze in diesem Fall Delphi 2007.
Vielen Dank
schotti

vagtler 29. Okt 2013 13:55

AW: SEPA Komponente gesucht
 
Das kann/darf ich leider nicht. Aber ich meine, hier im Forum war doch schon von einem Kollegen ein Wrapper gepostet.

arnof 29. Okt 2013 14:56

AW: SEPA Komponente gesucht
 
Hallo, ich hatte damit mal angefangen, aber nach einigen Tests die Sache verworfen und es lieber selbst gemacht ...

Hier haste mal einen Anfang:

Delphi-Quellcode:

unit afs_SEPADLL;


uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

const

  dllname = 'sevDTA20.DLL';

type
  AFS_String = AnsiString;

    // Initialisierung + Beenden
  TsevDTA_Init = function sevDTA_Init (sInit :AFS_String):LongInt;

  TsevDTA_BLZSetPath = procedure (sPath :AFS_String);

  TsevDTA_BLZFileDate = function (sDatum :AFS_String):LongInt;

  TsevDTA_Close = procedure ( lHandle: LongInt);


  // SEPA-Datei erstellen
  TsevSEPA_CreateFile = function (sFilename :AFS_String; iOvrWriteExists LongInt):LongInt;

  TsevSEPA_CloseFile = procedure (fHandle: LongInt);

  TsevSEPA_SetProperty = function (xProperty, Value:AFS_String):LongInt;

  TsevSEPA_FileInit = function (fHandle: LongInt;
                                sKZ ,
                                sName ,
                                KtoInh ,
                                IBAN ,
                                BIC ,
                                RefId ,
                                Datum :AFS_String;
                                LcCode,
                                SeqType : LongInt;
                                CdtrId:AFS_String):LongInt;

  TsevSEPA_FileAddRec = function (
   fHandle: LongInt;
   PmtId ,
   PmtAmt ,
   sName ,
   IBAN ,
   BIC ,
   RmtInf ,
   MndtId ,
   MndtDt :AFS_String):LongInt;

   TsevSEPA_FileEnd = function (fHandle :LongInt) :LongInt;

   TsevSEPA_ExportHTML = function (Filename :AFS_String):LongInt;

   TsevSEPA_IBANIsValid = function (IBAN,BIC :AFS_String):LongInt;

   TsevSEPA_CalcIBAN = function (BLZ , KontoNr , BIC , IBAN :AFS_String):LongInt;

DeddyH 29. Okt 2013 15:04

AW: SEPA Komponente gesucht
 
Ich bin mal gespannt, wann Dir auffällt, dass der Beitragseditor neben der "Code"- noch eine "Delphi"-Schaltfläche (die mit dem Helm) aufweist, die dann für ein hübsches Code-Highlighting sorgt :mrgreen:

arnof 29. Okt 2013 15:15

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von DeddyH (Beitrag 1233666)
Ich bin mal gespannt, wann Dir auffällt, dass der Beitragseditor neben der "Code"- noch eine "Delphi"-Schaltfläche (die mit dem Helm) aufweist, die dann für ein hübsches Code-Highlighting sorgt :mrgreen:

ja man lernt nie aus,das ergibt sich auch aus meinem Leitspruch in der Signatur.

Wieder was gelernt :stupid: und auch geändert!

schotti65 29. Okt 2013 15:22

AW: SEPA Komponente gesucht
 
@arnof, @vagtler: merci für die Anregung, hab jetzt auch den anderen thread gefunden: http://www.delphipraxis.net/1228335-post10.html

schotti65 29. Okt 2013 17:17

AW: SEPA Komponente gesucht
 
Es klappt leider nicht, ich stell mich scheint's zu doof mit den Stringtypen an.
ich will erstmal nur die IBAN berechnen, der folgende Code endet immer mit Laufzeitfehler ("Access violation"):

Delphi-Quellcode:
type TWasBinIchWohl = AnsiString; // klappt nicht
//type TWasBinIchWohl = PAnsiChar; // klappt auch nicht

type TSevDTA_Init = function(sInit : TWasBinIchWohl) : longint; stdcall;
type TSevDTA_BLZSetPath = function(sPath : TWasBinIchWohl) : longint; stdcall;
type TSevSEPA_CalcIBAN = function(blz, kto, bic, iban : TWasBinIchWohl) : longint; stdcall;

hSevDTALib : THandle;
sevDTA_Init : TSevDTA_Init;
sevDTA_BLZSetPath : TSevDTA_BLZSetPath;
sevSEPA_CalcIBAN : TSevSEPA_CalcIBAN;

...

// versuche, DLL zu laden
cmd := '.\sepa\sevdta20.dll';
self.hSevDTALib := LoadLibrary(PChar(cmd));

// lade Funktionspointer
@self.sevDTA_Init := GetProcAddress(self.hSevDTALib, 'sevDTA_Init');
@self.sevDTA_BLZSetPath := GetProcAddress(self.hSevDTALib, 'sevDTA_BLZSetPath');
@self.sevSEPA_CalcIBAN := GetProcAddress(self.hSevDTALib, 'sevSEPA_CalcIBAN');

// Initialisierung
Handle := self.sevDTA_Init('');
self.sevDTA_BLZSetPath('.\sepa');

...

// bis hierher alles gut, jetzt der CB vom "IBAN_Rechner":

sKto, sBlz, sBic, sIban : TWasBinIchWohl;
lResult : longint;

// IBAN-Kontonummer berechnen
sKto := TWasBinIchWohl(self.EditKto.Text);
sBlz := TWasBinIchWohl(self.EditBlz.Text);
sBic := TWasBinIchWohl(strutils.dupestring(' ', 12));
sIban := TWasBinIchWohl(strutils.dupestring(' ', 23));

lResult := self.sevSEPA_CalcIBAN(skto, sBlz, sBIC, sIBAN);
// und tschuess...
Ich hab's auch am Ende mit ein paar Blanks mehr hie und da versucht, klappt alles nicht.
Jemand eine Idee?
Hab ich da was grundsätzliches vergessen bzgl. DLL einbinden mit Funktionen mit >1 Parametern (sevDTA_BLZSetPath klappt ja)?
Bei diesem Projekt benutze ich Delphi 2007.

arnof 29. Okt 2013 18:50

AW: SEPA Komponente gesucht
 
Nehm meine Komponente dann geht alles sofort:thumb:

Die kostet nur 1 Entwicklerstunde, bis du die Dll's zum laufen bringst und bis da eine Sepadatei rausfällt dauert sicher noch mind. einen Manntag

5 Zeilen machen aus einem Dataset eine SEPA Datei:cyclops:

VCLControls 30. Okt 2013 07:30

AW: SEPA Komponente gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
type TWasBinIchWohl = AnsiString; // klappt nicht
//type TWasBinIchWohl = PAnsiChar; // klappt auch nicht

type TSevDTA_Init = function(sInit : TWasBinIchWohl) : longint; stdcall;
Mach mal so:
Delphi-Quellcode:
 TSevDTA_Init = function(sInit: PChar): LongInt; stdcall;
Ich hab mal meinen Wrapper für sevkto angehängt. Das Prinzip hat sich zu sevdta nicht geändert. Ich bin blos noch nicht dazu gekommen sevdta umzusetzen.

schotti65 30. Okt 2013 08:13

AW: SEPA Komponente gesucht
 
Was bedeutet denn 'Dein-Lizens-Code' ;-)?

Klappt leider auch nicht.
Ich versuch's jetzt "nur noch" mit BLZ_FileDate(), die hat nur noch 1 Übergabeparameter (der beschrieben wird):

Delphi-Quellcode:
  type TWasBinIchWohl = PChar; // klappt auch nicht
  //type TWasBinIchWohl = PAnsiChar; // klappt auch nicht

  ...

  type TSevDTA_BLZFileDate = function(sDatum : TWasBinIchWohl) : longint; stdcall;

  ... (diverse inits klappen)

  s : String; // AnsiString klappt auch nicht
  setLength(s, 21); // explizites setzen zB s := '(genug blanks)' klappt auch nicht
  self.sevDTA_BLZFileDate(TWasBinIchWohl(s));
  // und tschuess mit "access violation"...
Vielleicht liegt der Fehler ja ganz woanders, braucht man sowas wie "uses ShareMem..." (_das_ speziell hab ich auch versucht)?
Bin stark versucht, die Lösung von @arnof zu nehmen, es ärgert mich nur, dass anscheinend einige die andere benutzen und ich zu doof bin, die zum Laufen zu bekommen.

DeddyH 30. Okt 2013 09:28

AW: SEPA Komponente gesucht
 
Mich irritiert das "self". Versuchst Du, die DLL-Funktionen an Methoden zu übergeben?

schotti65 30. Okt 2013 11:13

AW: SEPA Komponente gesucht
 
Ja, aber das sind ja nur Funktionspointer.
Die Aufrufe der Initialisierung funzen ja.
Egal, ich geb auf und mach den nächsten Versuch mit der Komponente von @arnuf.

VCLControls 30. Okt 2013 11:32

AW: SEPA Komponente gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal den Wrapper kurz umgestellt und TSevDTA_BLZFileDate reingeschmissen. Ergebnis wird mit einer Showmessage angezeigt.
Im Projektverzeichnis ist ein Unterverzeichnis "\BLZ", in das die Bankleitzahlendateien von sevdta32 reingehören. Die habe ich natürlich nicht angehängt.
Die sevdta32.dll mus im Projekt-Ordner oder system32-Verzeichnis sein.
Dann noch alle anderen neuen SEPA-Funktionen rein und fertig. Ich schätze mit Testen und allem drum und dran, werden das 2-3 Tage Arbeit.

Zitat:

Was bedeutet denn 'Dein-Lizens-Code' ?
Ich habe die Testversion von sevdta32 verwendet und bei der Initialisierung nur Nullen reingemacht. Wenn Du die die DLL gekauft hast, mach Deinen Lizenzschlüssel rein.

Solltest Du schon gekauft haben und jetzt auf arnofs Kompo umschwencken, kauf ich Dir sevdta für die Hälfte ab :lol:

schotti65 30. Okt 2013 11:49

AW: SEPA Komponente gesucht
 
Ja, das mit dem Lizenzschlüssel hatte ich schon verstanden. Deshalb der Smiley.
Aber "sevdta32.dll"? Ich arbeite mit der Testversion (so wird's auch nix mit dem halben Preis), und zwar "sevdta20.dll 56.320 19.09.2013". Liegts daran?

VCLControls 30. Okt 2013 11:57

AW: SEPA Komponente gesucht
 
Zitat:

Zitat von schotti65 (Beitrag 1233784)
"sevdta20.dll 56.320 19.09.2013". Liegts daran?

Nein. War mein Fehler, hab mich verschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.
Seite 3 von 6     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz