Dokumentation und Codebeispiele

Fehlercodes (in allen Editionen identisch):

-2:Prüfverfahren nicht gefunden!
-3:Prüfziffer ungültig!
-5:BLZ nicht achtstellig!
-6:BLZ enthält ungültige Zeichen!
-7:Konto hat falsche Länge!
-8:Konto enthält ungültige Zeichen!
-9:BLZ ungültig!
Ist der Fehlercode >= 0, ist die Prüfung positiv verlaufen.

Verwendung der Java-Edition von CheckKonto:

// Importieren Sie CheckKonto:
import com.sandig.app.checkkonto.*;
import java.util.Hashtable;

// Verwenden Sie die Berechnungsfunktion in Ihrem Code:

String konto = ...; // kontonummer zuweisen
String blz = ...; // bankleitzahl zuweisen

int result = CheckKonto.Check(konto, blz);

if ( result < 0 ) // Bankverbindung ungültig
{
// Fehlermeldung beziehen:
String errorMessage = CheckKonto.GetErrorMsg(result);

...
}

// Nachschlagen der Kurzbezeichnung des Geldinstituts zur BLZ:
String bankname = Blz.LookupName(blz);

// Besorgen der Hashtable mit Bankleitzahlen und
// Verfahren / Kurzbezeichnung des Geldinstituts
// Key ist die BLZ, Value ist zusammengesetzt aus zwei Zeichen
// für das Verfahren und Kurzbezeichnung des Geldinstituts

Hashtable<String,String> tabelle = Blz.Tabelle();

Verwendung der .Net-Edition von CheckKonto (Beispiel in C#):

// Benutzen Sie CheckKonto:
using Sandig.Checkkonto;
using System.Collections.Generic;

// Verwenden Sie die Berechnungsfunktion in Ihrem Code:

String konto = ...; // kontonummer zuweisen
String blz = ...; // bankleitzahl zuweisen

int result = CheckKonto.Check(konto, blz);

if ( result < 0 ) // Bankverbindung ungültig
{
// Fehlermeldung beziehen:
String errorMessage = CheckKonto.GetErrorMsg(result);

...
}

// Nachschlagen der Kurzbezeichnung des Geldinstituts zur BLZ:
String bankname = Blz.LookupName(blz);

// Besorgen der Hashtable mit Bankleitzahlen und
// Verfahren / Kurzbezeichnung des Geldinstituts
// Key ist die BLZ, Value ist zusammengesetzt aus zwei Zeichen
// für das Verfahren und Kurzbezeichnung des Geldinstituts

Dictionary<String,String> tabelle = Blz.Tabelle();

Verwendung der Windows-COM-Komponente "ckwinx" von CheckKonto (Beispiele in C++/MFC):

  • Vor der Installation entfernen Sie eine evtl. vorhandene Demo-Version von CheckKonto.
  • Installation: Führen Sie die Setup-Datei "ckwinx.msi" aus.
    Hierdurch wird die Datei ckwinx.ocx, sowie die stand-alone-Anwendung "CheckKonto.exe" installiert und registriert (Hinweis: manuelle Registrierung mit "regsvr32 ckwinx.ocx").
ckwinx enthält sowohl das ActiveX-Control "ckwinx", als auch die COM-Schnittstelle "ICKcompute".
Beide COM-Schnittstellen benötigen für die Verwendung einen Lizenzschlüssel, den Sie in der ersten Zeile der mitgelieferten Datei "ckwinx.lic" finden.

Verwendung des ActiveX-Controls "ckwinx" im MS Visual Studio 2008 - Resourceneditor:

  • Kopieren Sie die Datei "ckwinx.lic" in den Installationsordner (neben die Datei ckwinx.ocx). Auf diese Weise erkennt Visual Studio die "Design-Time-Lizenz" und erlaubt das Einfügen des Controls in Ihre Dialoganwendung.
  • Öffnen Sie in Visual Studio Ihr MFC-Projekt, bzw. legen Sie ein neues MFC-Projekt an.
  • Öffnen Sie im Resourcen-Editor die Dialog-Resource, in die das Control eingefügt werden soll.
  • Wählen Sie im Kontextmenue der Resourcen-Toolbox "Elemente auswählen"
  • Wählen Sie den Reiter "COM-Steuerelemente"
  • Setzen Sie in der Zeile "ckwinx Control" einen Haken und klicken "OK"
    >> Das Control wird in die Toolbox eingefügt.
  • Ziehen Sie das Control aus der Toolbox in Ihren Dialog (die empfohlene Größe ist 360 x 56)
    >> Beachten Sie, dass das Control breit genug sein muß, um die Fehlertexte neben den Eingabefeldern darstellen zu können.
    >> Der Lizenzschlüssel wird automatisch in die Resourcendatei aufgenommen, die Datei ckwinx.lic muß also nicht zur Laufzeit vorhanden sein!)
  • Wenn Sie für das Control eine member-Steuerelement-Variable in Ihren Dialog hinzufügen, wird automatisch die Klasse "CCkwinxctrl1" Ihrem Projekt hinzugefügt. Hier stehen Ihnen die Methoden des Controls zur Verfügung:
    Setblz/GetblzSetzen/Holen der Bankleitzahl
    Setkonto/GetKontoSetzen/Holen der Kontonummer
    GetbanknameHolen der Kurzbezeichnung des gewählten Geldinstituts
    GetcheckResult Holen des Prüfungsergebnisses (Ergebnis < 0: Prüfung fehlgeschlagen)
    GetErrorMessageFehlertext zum Prüfungsergebnis holen
    SetBackColorSetzen der Hintergrundfarbe
    SetFontSetzen der Schriftart
    SetBorderStyleSetzen eines Rahmens (nicht empfohlen)
    SetEnabledControl auf bedienbar/nicht bedienbar setzen

Dynamische Verwendung des ActiveX-Controls "ckwinx" in MS Visual Studio 2008 (ohne Resourceneditor):

  • Gehen Sie, ggf. mit Hilfe eines Testprojekts, vor wie oben angegeben und lassen sich von Visual Studio die Klasse "CCkwinxctrl1" erzeugen.
  • Kopieren Sie die erzeugten Dateien ckwinxctrl1.h und ckwinxctrl1.cpp in Ihr Projekt und fügen die Dateien Ihrem Projekt hinzu.
Mit folgendem Code erstellen Sie dynamisch das Control in einem Fenster:
CCkwinxctrl1* pCK = new CCkwinxctrl1();

int ID_OF_CONTROL = 3000; // Control-ID festlegen
CRect rect(0,0,360,56); // Position und Größe festlegen

_bstr_t license = _T("..."); // Lizenzschlüssel aus lic-Datei

pCK->Create(_T(""), WS_CHILD|WS_TABSTOP|WS_VISIBLE, rect, this, ID_OF_CONTROL,
      0, 0, license.GetBSTR());

pCK->SetBackColor(RGB(250,250,250)); // ggf. Hintergrundfarbe setzen


// ggf. Schriftart setzen:
CFontHolder fontHolder(NULL);
fontHolder.InitializeFont(&_fontdescStd);
pCK->SetFont(fontHolder.GetFontDispatch());



// wobei "_fontdescStd" z.B. so aussehen kann:

static const FONTDESC _fontdescStd =
{ sizeof(FONTDESC), OLESTR("MS Sans Serif"), FONTSIZE( 8 ), FW_NORMAL,
ANSI_CHARSET, FALSE, FALSE, FALSE };

Verwenden der Berechnungsfunktion in Ihrem Code ohne Oberflächen-Control:

// Import der Schnittstelle (Pfad anpassen!):

#import "C:\\pfad\\zum\\installationsordner\\ckwinx.ocx" no_namespace


// Zeiger auf lizensierte Schnittstelle besorgen:

LPCLASSFACTORY2 pClassFactory;
CLSID clsid;
ICKcompute* pCKcompute = NULL;
if (FAILED(CLSIDFromProgID(T2OLE(_T("ckwinx.CKcompute.1")), &clsid)))
return -2; // Fehlerhandling!

// Create an instance of the object and query it for
// the IClassFactory2 interface.
if (SUCCEEDED(CoGetClassObject(clsid, CLSCTX_INPROC_SERVER, NULL,
      IID_IClassFactory2, (LPVOID *)(&pClassFactory))))
{
_bstr_t sLicenseString = _T("..."); // Lizenzschlüssel aus lic-Datei
if (FAILED(pClassFactory->CreateInstanceLic(NULL,NULL,__uuidof(ICKcompute),
      sLicenseString.GetBSTR(), (LPVOID FAR *) &pCKcompute)))
{
pClassFactory->Release();
return -3; // Fehlerhandling!
}

pClassFactory->Release();
}


// Arbeiten mit der Schnittstelle:

long result=0;
_bstr_t konto = _T("..."); // kontonummer setzen
_bstr_t blz = _T("..."); // BLZ setzen

// Prüfung durchführen
pCKcompute->CheckKonto(konto, blz, &result);

if (result < 0) // Bankverbindung ungültig
{
// Fehlermeldung beziehen:
_bstr_t errorMessage;
pCKcompute->GetErrorMessage(result, errorMessage.GetAddress());
AfxMessageBox((LPCTSTR)errorMessage);
}

// Kurzbezeichnung des Geldinstituts aufgrund der BLZ nachschlagen:

_bstr_t nameBank;
pCKcompute->LookupName(blz, nameBank.GetAddress());

// nameBank ist leer, wenn BLZ nicht gefunden!
AfxMessageBox((LPCTSTR)nameBank);


pCKcompute->Release(); // Schnittstelle freigeben