Domino 9 und frühere Versionen > ND8: Entwicklung
Erledigt - Führende Null / 0 vor "Kommazahl"
BMT216A:
Hallo Notesler,
ich steh grad auf dem Schlauch.
Ich möchte in einem Feld (Textfeld) die Möglichkeit haben Kommazahlen einzugeben.
Ich habe die Eingabevalidierung so gemacht: @Right("0000" + SonderKondition025;4).
Demnach steht beim Öffnen des Dokuments 0000 im Feld. (Das gefällt mir auch schon nicht.)
- wenn ich nun 0,25 eingebe, ist die Ausgabe 0,25
- wird in das Feld 0,2 eingegeben, ist die Ausgabe 00,2.
- gebe ich ,2 ein, ist die Ausgabe 00,2
- und wenn ich ,25 eingegeben wird ist die ausgabe 0,25
Wie kann ich es realisieren, dass wenn bei Eingabe die führende Null weggelassen wird, der Wert trotzdem richtig angezeigt wird.
Es sollen nur Werte von 0,01 bis 0,79 eingetragen werden können.
Wenn ich das Feld als Zahl definiere, greifen leider meine weiteren Berechnungen nicht.
Eine der Berechnungen ist ganz einfach und soll nur den eingegebenen Wert mit einem Wert aus einer Berechneten liste vergleichen und dann eine msgbox ausgeben.
Vielen Dank für Eure Hilfe.
Chris
klaussal:
Nimm das Feld als Zahl und mache ein weiteres (verstecktes Feld) als Text mit @Text(deinZahlenfeld).
Thomas Schulte:
Oder, was zwar weniger Zeitsparend als die Lösung von Klaus ist, aber dich hinterher mit deutlich mehr Fähigkeiten in der Entwicklung zurücklässt, schau dir an warum deine Berechnungen nicht funktionieren und korrigiere die Fehler dort.
Übrigens, wenn du nicht die Eingabe Validierung, sondern Eingabe Übersetzung benutzt, bist du für das Umsetzen in einen brauchbaren Wert an der richtigeren Stelle. Und dann kannst du das auch richtig machen ...
"0," + @if(@Contains(@thisvalue;",");@Left(@word(@thisvalue;",";2) + "0000";2);@Right("0000" + @thisvalue;2))
Damit bekommst du, egal was dein Kunde eingibt (solange es Zahlen sind) immer einen Wert raus der die letzen zwei Werte, wenn kein Komma eingegeben wird, oder die ersten zwei Werte nach einem Komma rausfischt.
Und wenn du dann in der Eingabe Validierung noch deine Formel dahingehend änderst, das du
@If(@TextToNumber(@ThisValue) >= @TextToNumber("0,01") & @TextToNumber(@ThisValue) <= @TextToNumber("0,79");@Success;@Failure("Falschen Wert eingegeben"))
überprüfst bekommst du auch eine brauchbare Fehlermeldung.
Diese Kombination gilt jetzt nur für Systeme in denen das Komma tatsächlich Ganze und Kommazahlen trennt. Was, wie wir ja alle wissen bei den Angelsachsen und nicht nur bei denen nicht der Fall ist. Bei einer Anwendung die International eingesetzt wird setzt du dich damit in die Nesseln.
Aber sinnvoller wäre es wie gesagt dir anzuschauen, warum deine restlichen Berechnungen mit einem Zahlenfeld nicht funktionieren.
BMT216A:
Hallo Thomas,
ich meinte schon die Eingabeumsetzung. Hatte es nur versehentlich geschrieben.
Wenn ich nun deine Formel (die ist schöner als meine) reinkopiere klappt es soweit schon.
Nur wenn ich mir jetzt den Inhalt des Feldes anschaue, ist die "Kommazahl" nicht als 0,25 sondern als ,25 im Feld.
Um die Zahl jezt über LS weiter zu verarbeiten müsste ich diese formatieren.
Ich dachte nur, wenn ich schon ein Zahlenfeld nehme, wird der Wert gleich richtig eingetragen.
Viele Grüße
Christian
Tode:
Egal welchen Grund Du zu haben meinst, dass Deine Zahl in einem Textfeld gespeichert werden muss.... Er ist FALSCH.
Zahlen gehören in Zahlenfelder, und nirgends sonst...
Wenn Du dann wirklich irgendwo einen Text brauchst, dann kannst Du die Zahl mit @Text formatieren ( z.B. @Text( DeinZahlenFeld , "C,2" ) für 2 Nachkommastellen.
Du wirst ÜBERALL auf Probleme stossen, wenn Du Zahlen in Textfeldern speicherst... und wenn nicht Du, dann Dein Nachfolger, der sich irgendwann mit dem Mist rumschlagen muss !!!
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln