Hallo zusammen,
ich habe folgende Problemstellung:
1) die IBAN ist europaweit unterschiedlich lang (max. bis 34 Zeichen)
Beispiel für Deutschland: DE12 1234 1234 1234 1234 12 = 22 Zeichen für Dt.
2) abhängig von dem Länderkürzel soll nun eine Prüfung der Zeichenlänge erfolgen
Ich habe nun ein Textfeld das insgesamt 34 Zeichen umfasst. Nach der Eingabe der IBAN-Nr. soll im Exit-Ereignis die Zeichenfolge überprüft werden.
Meine Überlegung war nun die ersten beiden Zeichen auszulesen (in Formcalc):
(IBAN ist der Feldname des IBAN-Textfeldes)
var x = Substr(IBAN,1,2)
Nachdem der Wert an eine Variable übergeben wurde wollte ich diesen an eine IF-Abfrage weiterleiten:
If (x="DE") then
{
If (IBAN.lenth =22) then{
app.alert("IBAN wurde nicht korrekt eingegeben")
IBAN.rawValue= ""}
else
Endif
}
elseif ...
else
endif
Leider wird die Variable nicht übertragen und auch die Funktion der Längen-Abfrage bereitet mir Sorgen...
Ich würde mich freuen, wenn jemand dazu eine Idee hat.
Vielen Dank im Voraus!!
IBAN prüfen (international)
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
IBAN prüfen (international)
Hallo Daniel,
erst mal herzlich willkommen!! Generell sinnvoll ist es, Deinen bisheriges PDF hochzuladen. Dann kann man quasi am lebenden Objekt helfen.
Du bist im falschen Forum, wenn Du schreibst, dass Du mit Formcalc arbeiten möchtest, kann ich davon ausgehen, dass Du mit dem LCD arbeitest.
Habe ich verschoben.
substring http://de.selfhtml.org/javascript/objekte/string.htm#substr
length http://de.selfhtml.org/javascript/objekte/string.htm#length
Für Deine doch sehr verworrene
IF-Abfragensyntax (Formcalc gemischt mit JavaScript) http://de.selfhtml.org/javascript/sprache/bedingt.htm und F1 für Formcalc, dort "if" eingeben, dann landest Du bei "if-Ausdrücke".
Für die anderen Ländern kannst Du es mit else if ergänzen:
Die else if sind belieibig erweiterbar.
LG Mandy
erst mal herzlich willkommen!! Generell sinnvoll ist es, Deinen bisheriges PDF hochzuladen. Dann kann man quasi am lebenden Objekt helfen.

Du bist im falschen Forum, wenn Du schreibst, dass Du mit Formcalc arbeiten möchtest, kann ich davon ausgehen, dass Du mit dem LCD arbeitest.

- Nenne keine Variable "x" (also ein Buchstabe). Die Gefahr, eine geschütze Systemvaribale damit zu erwischen ist groß und Du hast das große Los gezogen.
X steht für die X-Koordinate eiens Objektes.
- An sich war Deine Idee richtig, nur syntaktisch falsch.
Code: Alles auswählen
var ibanLaenderKuerzel = this.rawValue; //app.alert(ibanLaenderKuerzel); var ibanExtract = ibanLaenderKuerzel.substr(0,2); //app.alert(ibanExtract ); if(ibanExtract =="DE" && ibanLaenderKuerzel.length != 22){ app.alert(ibanLaenderKuerzel.length); app.alert("IBAN wurde nicht korrekt eingegeben"); this.rawValue = null; }
- Bedeutet:
- Im exit ds IBAN Feldes platziert, wird der eingetragene Wert einer Variablen zugewiesen. Die benötigst Du, um überhaupt Länge und Substring anwenden zu können.
- Deine geschachtelte IF-Abfrage habe ich mit dem UND (&&) verbunden und zu einer gemacht.
- als vergleichenden Operator benötigst Du 2!! Gleichheitszeichen, 1 dient der Zuweisung.
- Indem Du mit app.alert an jeder Stelle schaust, kannst Du Dein Script ein wenig debuggen, denn Du bekommst nach jedem Schritt zu sehen, ob das Script das macht, was es soll.
substring http://de.selfhtml.org/javascript/objekte/string.htm#substr
length http://de.selfhtml.org/javascript/objekte/string.htm#length
Für Deine doch sehr verworrene

Für die anderen Ländern kannst Du es mit else if ergänzen:
Code: Alles auswählen
if(ibanExtract =="DE" && ibanLaenderKuerzel.length != 22){
//app.alert(ibanLaenderKuerzel.length);
app.alert("IBAN wurde nicht korrekt eingegeben");
this.rawValue = null;
}else if(ibanExtract =="PL" && ibanLaenderKuerzel.length != 26){
//app.alert(ibanLaenderKuerzel.length);
app.alert("IBAN wurde nicht korrekt eingegeben");
this.rawValue = null;
}
LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 2
- Registriert: 22.05.2014, 11:25
IBAN prüfen (international)
Vielen lieben Dank. Ich habe in diesem Forum schon eine Menge von dir gelesen (und ich meine damit nur Positives
- cool das du dich meinem Problem angenommen hast!
Ich bin jetzt für eine Woche im Urlaub und werde mich danach definitiv melden und auch eine Beispiel PDF hochladen.
Also an dieser Stelle noch mals besten Dank!
Gruß,
Daniel

Ich bin jetzt für eine Woche im Urlaub und werde mich danach definitiv melden und auch eine Beispiel PDF hochladen.
Also an dieser Stelle noch mals besten Dank!
Gruß,
Daniel
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
IBAN prüfen (international)
Gerne. 
Viel Spaß und Erholung im Urlaub.
Rückmeldung wäre schön.
LG Mandy
PS. Danke für das Lob.

Viel Spaß und Erholung im Urlaub.
Rückmeldung wäre schön.
LG Mandy
PS. Danke für das Lob.

IBAN prüfen (international)
Hallo zusammen,
ich habe hier ein skript mit dem man die IBAN prüfen kann.
Bei mir fuktioniert das einwand frei.
Ich hoffe es hilft.
Gruß Freudi
ich habe hier ein skript mit dem man die IBAN prüfen kann.
Bei mir fuktioniert das einwand frei.
Code: Alles auswählen
//Prüfen der IBAN:
this.bignumberModulo = function(s, mod)
{
numberOfChars = 5;
var z = new String();
z = s;
var n = "";
var rest = 0;
do {
n = rest + z.substring(0, numberOfChars);
c = z.length;
if (c > numberOfChars)
{z = z.substring(numberOfChars);}
rest = n % mod;
} while (c > numberOfChars);
return rest;
};
function getCODE(letter){
switch(letter){
case "A":
return 10;
case "B":
return 11;
case "C":
return 12;
case "D":
return 13;
case "E":
return 14;
case "F":
return 15;
case "G":
return 16;
case "H":
return 17;
case "I":
return 18;
case "J":
return 19;
case "K":
return 20;
case "L":
return 21;
case "M":
return 22;
case "N":
return 23;
case "O":
return 24;
case "P":
return 25;
case "Q":
return 26;
case "R":
return 27;
case "S":
return 28;
case "T":
return 29;
case "U":
return 30;
case "V":
return 31;
case "W":
return 32;
case "X":
return 33;
case "Y":
return 34;
case "Z":
return 35;
}
}
iban_leerz=this.rawValue.toUpperCase();
iban=iban_leerz.replace(/[^0-9A-Z]/g, "");
this.rawValue=iban;
l1=iban.substring(0,1);
l2=iban.substring(1,2);
pruef=iban.substring(2,4);
bban=iban.substring(4);
lcode1=getCODE(l1);
lcode2=getCODE(l2);
lcode="" + lcode1 + lcode2;
bban_array=bban.split("");
bban_string="";
bban_array.forEach( function(v) {
if (/[A-Z]/.test(v)) {
code=getCODE(v);
bban_string=bban_string + code;
}
else {
bban_string=bban_string + v;
}
});
pruefsumme="" + bban_string + lcode + pruef;
check=bignumberModulo(pruefsumme,97);
//Textfeld1.rawValue= bban_string;
//N2.rawValue=bban_string;
//N1.rawValue=check;
if(check ==1)
{
//xfa.host.messageBox("Die eingegebene IBAN ist korrekt. ", "Error Message", 3);
}
else
{
xfa.host.messageBox("Achtung! Die eingegebene IBAN ist nicht korrekt. Bitte prüfen Sie Ihre IBAN vom Gegenkonto und geben diese erneut ein.", "Error Message", 3);
this.rawValue = "";
xfa.host.setFocus(Bank);
}
Gruß Freudi
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
IBAN prüfen (international)
Hallo Freudi,
danke für Deinen Lösungsansatz!!!
Habe jetzt selbst keine Zeit, ihn mir anzusehen, aber vielleicht schaut ja Daniel und verwendet es für sich.
Code kannst Du zur besseren Kennzeichnung immer zwischen die geschweiften Klammern (siehe Menü im Editor ganz links erste Zeile) schrieben.
LG Mandy
danke für Deinen Lösungsansatz!!!

Code kannst Du zur besseren Kennzeichnung immer zwischen die geschweiften Klammern (siehe Menü im Editor ganz links erste Zeile) schrieben.
LG Mandy
-
- Beiträge: 1
- Registriert: 06.06.2014, 12:10
IBAN prüfen (international)
Hallo zusammen,
ich hab über den Urlaub mein Passwort leider vergessen und beim Versuch das Passwort zurückzusetzen gab es wiederholt Probleme. Ich habe mir deshalb kurzfristig eine neue Identität zugelegt.
@ Mandy: dein Vorschlag funktioniert einwandfrei - wenn ich alle länderspezifischen Längen eingegeben habe werde ich eine Beispiel-PDF hochladen.
@ Freudi: Danke für den Vorschlag, den werde ich mir in der nächsten Woche noch einmal genauer anschauen.
Vielen Dank & Gruß,
Daniel
ich hab über den Urlaub mein Passwort leider vergessen und beim Versuch das Passwort zurückzusetzen gab es wiederholt Probleme. Ich habe mir deshalb kurzfristig eine neue Identität zugelegt.
@ Mandy: dein Vorschlag funktioniert einwandfrei - wenn ich alle länderspezifischen Längen eingegeben habe werde ich eine Beispiel-PDF hochladen.
@ Freudi: Danke für den Vorschlag, den werde ich mir in der nächsten Woche noch einmal genauer anschauen.
Vielen Dank & Gruß,
Daniel