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/Getblz | Setzen/Holen der Bankleitzahl |
Setkonto/GetKonto | Setzen/Holen der Kontonummer |
Getbankname | Holen der Kurzbezeichnung des gewählten Geldinstituts |
GetcheckResult |
Holen des Prüfungsergebnisses (Ergebnis < 0: Prüfung fehlgeschlagen) |
GetErrorMessage | Fehlertext zum Prüfungsergebnis holen |
SetBackColor | Setzen der Hintergrundfarbe |
SetFont | Setzen der Schriftart |
SetBorderStyle | Setzen eines Rahmens (nicht empfohlen) |
SetEnabled | Control 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