Feldvalidierung mit @IsNumber

  • Hi,


    ich versuche unseren Usern abzugewöhnen, in Feldern einzutragen was Sie wollen :) Ein recht aufwendiges unterfangen wie mir scheint. Klappt aber doch ganz gut, es werden nur immer neue Wege gefunden :D


    Im Moment versuche ich bei einem Dialoglistenfeld (greift per Formel auf eine Ansicht in einer anderen DB zu und holt sich dort eine 5 stellige Nummer) mit einer Validierungsformel zu prüfen ob es sich beim eingegebenen Wert um Zahlen handelt. Dafür wollte ich @IsNumber verwenden. Bei der unten stehenden Formel macht es leider keinen Unterschied ob Text oder Zahlen eingegeben werden, die Failure Meldung bekomme ich immer. Hier die 3 Varianten die obiges Verhalten hervorrufen:
    1.

    Code
    @If( @IsNumber(FELDNAME) ; @Success ; @Failure("Im Projektfeld dürfen NUR Jubnummer eingetragen werden...Buchstaben oder ähnliches sind nicht zulässig !") )


    2.

    Code
    @If( @IsNumber(FELDNAME) = 1 ; @Success ; @Failure("Im Projektfeld dürfen NUR Jubnummer eingetragen werden...Buchstaben oder ähnliches sind nicht zulässig !") )


    3.

    Code
    @If( @IsNumber = 1 ; @Success ; @Failure("Im Projektfeld dürfen NUR Jubnummer eingetragen werden...Buchstaben oder ähnliches sind nicht zulässig !") )


    Was mache ich hier falsch ?


    Danke
    Jörg

    Domino Server 8.0.2 mit BES / Clients 7.0.* und 8.0.2 Basic
    Test: Domino 8.5 (linux) mit ASSP und 8.5er Client

  • Ganz einfach:


    @IsNumber prüft ob der angegebene Wert eine Zahl ist.
    Bei einem Dialoglistenfeld ist der aber immer ein Text.


    Wenn dann musst du den Wert versuchen in eine Zahl umzuwandeln und wenn das nicht geht einen Fehler werfen:


    Code
    _VALUE := @TextToNumber(FELDNAME);
    @If( @IsError(_VALUE) ; @Failure("Im Projektfeld dürfen NUR Jubnummer eingetragen werden...Buchstaben oder ähnliches sind nicht zulässig !") ; @Success )
  • Da fällt es einem wie Schuppen von den Augen....ist ja eigentlich logisch *schäm* :wuet:


    Funktioniert nun wie ich das eigentlich bei meiner Formel schon erwartet hatte..... danke



    Jörg

    Domino Server 8.0.2 mit BES / Clients 7.0.* und 8.0.2 Basic
    Test: Domino 8.5 (linux) mit ASSP und 8.5er Client

    • Offizieller Beitrag

    oder mit @ToNumber arbeiten.


    @if( FELDNAME = @Text(@ToNumber(FELDNAME)); "i.O."; "Fehler)


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein