unit _Dta;
interface
uses StrUtils, sysUtils;
{Initialisierung + Beenden}
function sevDTA_Init(sInit: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
procedure sevDTA_Close(
Handle: LongInt);
stdcall;
external '
sevDTA32.DLL';
function sevDTA_BLZFileDate(sDatum: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
{DTA-Datei erstellen, Datensätze schreiben, schliessen}
function sevDTA_CreateFile(sFilename: PAnsiChar; iOvrWriteExists: LongInt): LongInt;
stdcall;
external '
sevDTA32.DLL';
procedure sevDTA_CloseFile(fHandle: LongInt);
stdcall;
external '
sevDTA32.DLL';
function sevDTA_FileInit(fHandle: LongInt; sKz, sBlz, sKtoNr, sName: PAnsiChar; iEuro: LongInt): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_FileAddRec(fHandle: LongInt; sBlz1, sKtoNr1, sName1, sIntKdNr, sBlz2, sKtoNr2, sName2, sVerwendungAs, sBetrag: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_FileEnd(fHandle: LongInt): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_Kontrollsummen(SumDaten, SumBLZ, SumKtoNr, SumBetrag: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
procedure sevDTA_Print(hDC: LongInt; prnName, FontName, sName, sBLZ, sKtoNr, sDatum: PAnsiChar);
stdcall;
external '
sevDTA32.DLL';
{BLZ Prüfroutinen}
procedure sevDTA_BLZSetPath(sPath: PAnsiChar);
stdcall;
external '
sevDTA32.DLL';
function sevDTA_BLZExists(sBlz: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_BLZGetInfo(sBlz, sName, sPz: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_CheckKontoNr(sBlz, sKontoNr, sPz: PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
function sevDTA_BLZGetInfoEx(sBlz, sName, sPlz, sOrt, sBIC : PAnsiChar): LongInt;
stdcall;
external '
sevDTA32.DLL';
{Kreditkarten Prüfroutine}
function sevDTA_CheckCreditCard(sCardType, sCardNr, sMsgText: PAnsiChar; lLenRet: LongInt): LongInt;
stdcall;
external '
sevDTA32.DLL';
{Übergeordnete routine}
function CheckKontoNr(sKto, sBLZnr :
String): Integer;
function GetBLZInfo(sBLZnr :
String):
String;
function GetDTAErr(lResult : Integer):
String;
const
{Fehler-Konstanten}
ERR_DTA_SUCCESS = 0;
{Initilisierung}
ERR_DTA_INIT_FAILURE = -1;
ERR_DTA_INIT_OK = 0;
{FileHandle}
ERR_DTA_NO_FILEHANDLE = 1;
ERR_DTA_BAD_FILEHANDLE = 2;
{DTA}
ERR_DTA_BAD_KZ = 100;
ERR_DTA_BAD_BLZ = 101;
ERR_DTA_BAD_BLZ_LEN = 102;
...
function CheckKontoNr(sKto, sBLZnr :
String): Integer;
var
sKtoNr, sBlz, sPz, sName:
String;
begin
{Kontonummer prüfen}
sKtoNr := sKto;
sBlz := sBLZNr;
{ Wichtig! Mit ausreichend Leerstellen füllen! }
SetLength(sName, 28);
SetLength(sPz, 3);
if sevDTA_BLZExists(PAnsiChar(sBlz)) = ERR_BLZ_OK
then
begin
if sevDTA_BLZGetInfo(PAnsiChar(sBlz), PAnsiChar(sName), PAnsiChar(sPz)) = ERR_BLZ_OK
then
Result := sevDTA_CheckKontoNr(PAnsiChar(sBlz), PAnsiChar(sKtoNr), PAnsiChar(sPz))
else
Result := ERR_BLZ_KTONR_NOCHECK;
end
else
Result := ERR_BLZ_KTONR_NOCHECK;
end;