Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: booltrue am 22.02.19 - 10:41:48

Titel: Berechnete Felder und arithmetische Operationen
Beitrag von: booltrue am 22.02.19 - 10:41:48

 ???
Ich versuche den Wert eines berechneten Feldes durch eine Zahl zu dividieren
und das Ergebnis einem anderen berechneten Feld zuzuweisen.
Wie ist hier die korrekte Vorgehensweise?
Ich versuche das bei Vorgabewert zu machen,  bekomme aber immer eine Fehlermeldung "falscher Datentyp für Operator oder @Funktion: Zahl erwartet", egal was ich auch versuche.







Titel: Re: Berechnete Felder und Division
Beitrag von: Peter Klett am 22.02.19 - 10:47:25
Berechnete Felder haben keinen Vorgabewert.

Feld1, Berechnet, Wert: 5
Feld2, Berechnet, Wert: Feld1 / 2

Feld2 muss unterhalb von Feld 1 stehen (oder rechts daneben)
Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: booltrue am 22.02.19 - 10:54:10

Sorry mein Fehler, hab' etwas ausprobiert und das Feld auf "bearbeitbar" gesetzt.

Ich mache das wie du schon geschrieben hast.
Beide Felder sind in einer Tabelle und Feld2 steht rechts neben Feld1
Beide Felder sind berechnete Felder, Typ:Zahl.
Feld1 hat auch einen Wert.

Bekomme aber immer eine Fehlermeldung "falscher Datentyp für Operator oder @Funktion: Zahl erwartet"



Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: it898ur am 22.02.19 - 11:59:47
Dann ist der Wert im ersten Feld vom Typ "Text" o.ä. und kann daher nicht als zahl verwendet werden (der Feldname steht hoffentlich ohne Anführungsstriche in der Formel?)

Gruß

André
Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: booltrue am 22.02.19 - 12:11:23

Beide Felder sind vom Typ:Zahl
In Feld1 steht auch ein Wert.
Der Feldname steht ohne Anführungszeichen in der Formel.

Code
Feld1, Berechnet, Wert: 5
Feld2, Berechnet, Wert: Feld1 / 2

Feld1, Berechnet, Wert: 5
Feld2, Berechnet, Wert: Feld1

Ohne arithmetische Operation (+,-,*,/) funktioniert es ja.

auch das funktioiniert nicht:
v:= Feld1 / 2;
@TextToNumber(v)

so funktioniert es:
v:= Feld;
@TextToNumber(v)


Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: ronka am 22.02.19 - 13:10:02
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.
Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: booltrue am 22.02.19 - 13:24:29

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;



Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: Peter Klett am 24.02.19 - 20:39:04
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)
Titel: Re: Berechnete Felder und arithmetische Operationen
Beitrag von: booltrue am 25.02.19 - 10:49:04

Ok, danke dir.

Grüße