Domino 9 und frühere Versionen > ND8: Entwicklung

Berechnete Felder und arithmetische Operationen

<< < (2/2)

ronka:
Wenn das feld im bearbeitungsmodus ist, ist dessen inhalt IMMER Text, egal von welches Typ der ist.

Wenn ich also in BEARBEITUNGSMODUS damit arbeiten möchte und etwas berechnen, muss es umgewandelt werden in ein Zahl

@TextToNumber kann das machen.

Berechnete Felder (oder aktionen die ein feld füllen), sollten damit IMMER kontrollieren ob das Feld was heran gezogen wird ein Text oder ein Zahl beinhaltet.

Sehe die funktionalität von @IsNumber und @IsError mal genauer an, das könnte helfen. @If ist hier auch sehr sinnvoll einzusetzen.

booltrue:

Danke, das hat zur Lösung geführt!

Hab' nur auf den Output geschaut, der dem Feld2 zugewiesen wir, daß dieser eine Zahl ist,
nicht jedoch auf Feld1, das, wie du schon sagtest, tatsächlich keine Zahl ist, trotz des Feldtyps:Zahl,
sondern ein Text.

So geht es:
Feld1, Berechnet, Wert: 5
Feld2, Berechnet, Wert:  @TextToNumber( Feld1 )/2;

Danke!

Das stimmt aber anscheinend nicht für alle Feldtypen.
Ich habe jetzt ein weiteres Feld3, Typ:Zahl und Bearbeitbar hinzugenommen.
Folglich sollte diese Anweisung dann richtig sein:

Feld0, Bearbeitbar, Typ:Zahl, Wert 3
Feld1, Berechnet, Typ:Zahl, Wert: 5
Feld2, Berechnet,  Typ:Zahl, Wert:  (@TextToNumber( Feld1 )/2)*@TextToNumber(Feld0);
funktioniert aber nicht.

so geht es aber:
Feld2, Berechnet,  Typ:Zahl, Wert:  (@TextToNumber( Feld1 )/2)*Feld0;



Peter Klett:
Du kannst auch @TextToNumber (@Text (Feld)) nehmen, dann wird Feld immer erst in Text umgewandelt wird, bevor es zurück zu einer Zahl wird.

Alternativ geht auch dieses, dann fackelst Du auch leere Werte ab:

_tmp := @TextToNumber (@Text (Feld));
_zahl := @If (@IsError (_tmp); 0; _tmp)

booltrue:

Ok, danke dir.

Grüße

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln