Domino 9 und frühere Versionen > Entwicklung

finde den fehler nicht

(1/2) > >>

Silent_Bob:
hallo zusammen,

in einem formular in einer datenbank wird bei lieferanten auf inland oder ausland geprüft.
befindet sich der lieferan im ausland, muß im feld "land" das entsprechende land angewählt werden und bei der bankverbindung die gültige IBAN nummer angegeben werden. Dabei prüfe ich ja nach land auf die anzahl der eingegebenen stellen im feld "iban". im prinzip klappt das auch, aber ich schaffe es nicht im feld der IBAN nummer die ganzen formeln unterzubringen.

im moment sieht die eingabevalidierung so aus:


@If(
(ausland="Ausland" & land="Belgien" & @length(iban) <> 16);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für Belgien muss die IBAN exakt 16 Stellen lang sein");
@Success);
@If(
(ausland="Ausland" & land="Dänemark" & @length(iban) <> 18);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für Dänemark muss die IBAN exakt 18 Stellen lang sein");
@Success);
@If(
(ausland="Ausland" & land="England" & @length(iban) <> 22);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für England muss die IBAN exakt 22 Stellen lang sein");
@Success);

das klappt aber nicht. in diesem fall kann ich trotzdem bei "belgien" und "dänemark" falsche nummern eingeben. die formel ignoriert das. im fall von "england" klappt das aber.

was mache ich falsch?

danke im voraus

Jörg Barth:
Deine letzte IF-Anweisung (die mit Land "England") liefert, wenn Land Dänemark oder Belgien ist, als letzte Anweisung ein @Success zurück. Du solltest die IF-Anweisungen schachteln.

Gruß Jörg

Silent_Bob:
wie meinst du das?
kannst du mir ein beispiel geben?

Doc Torte:
so ists geschachtelt...


@If(
(ausland="Ausland" & land="Belgien" & @length(iban) <> 16);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für Belgien muss die IBAN exakt 16 Stellen lang sein");
(ausland="Ausland" & land="Dänemark" & @length(iban) <> 18);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für Dänemark muss die IBAN exakt 18 Stellen lang sein");
(ausland="Ausland" & land="England" & @length(iban) <> 22);
@Failure("Die Länge der IBAN Nummer stimmt nicht. Für England muss die IBAN exakt 22 Stellen lang sein");
@Success)

Jörg Barth:
@if(ausland="Ausland";
@if(land="Belgien"&@length(iban)<>16;@failure("...");
@if(land="Dänemark"&@length(iban)<>18;@failure("...");
@if(land="England"&@length(iban)<>22;@failure("...");
@success)))
;@success)

So ungefähr (hab jetzt nicht alle Klammern am Ende gezählt).
Auf jeden Fall siehst Du, daß die Prüfung für Dänemark im Else-Teil der IF-Anweisung für Belgien steht.
So "überschreibt" die Überprüfung für England nicht mehr den Fehler für Belgien...

Gruß Jörg

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln