Domino 9 und frühere Versionen > Entwicklung

Allgem. Verständnisproblem mit der Formelsprache

(1/2) > >>

JoJo:
Kann mir bitte jemand sagen warum man den Wert eines Feldes mit

@text(@if(...))

schon, aber mit

@if(...); @text(...)

nicht berechnen kann?

eknori (retired):
weil im ersten Fall zunächst innerhalb der @If Anweisung gerechnet wird und dann das Ergebnis in TEXT umgewandelt wird und

im zweiten Fall erst alles in Text umgewandelt wird und dann versucht wird zu rechnen.

und von z.B. "10" kann ich nicht "5" abziehen, das geht nur bei 10 - 5

hoffe, das meintest du

eknori

JoJo:
Danke für deine Antwort, Eknori. Leider hab' ich anscheinend missverständlich formuliert. Meine Frage zielt nicht auf die Reihenfolge der Abarbeitung der Anweisungen ab. Die Reihenfolge sollte ja bei meinen beiden Beispielen die selbe sein.

Viel mehr würd' ich gern' wissen, warum die verschachtelte SCHREIBWEISE funktioniert, nicht aber die Schreibweise

1. Anweisung
STRICHPUNKT
2. Anweisung

die ja eigentlich genau zum selben Ergebnis führen müsste. Nur das hier die abzuarbeitenden Routinen eben hintereinander (und nicht verschachtelt) angeschrieben sind.

Rob Green:
hm..kratz..verstehs auch nicht ganz, was Du genau meinst...

etwa daß das nicht geht=

@if(
a="b";"nix gut";
a="c";"nix gut";
a="d";"nix gut";
"alles guT"
)
doch, das geht!

Das geht auf jeden Fall ebenso wie
@if(a="b";"nix gut";@if(a="c";"nix gut";@if(a="d";"nix gut";"alles gut"))))


oder wie meinen?

harkpabst_meliantrop:

--- Zitat ---
Viel mehr würd' ich gern' wissen, warum die verschachtelte SCHREIBWEISE funktioniert, nicht aber die Schreibweise

1. Anweisung
STRICHPUNKT
2. Anweisung

--- Ende Zitat ---

Ich glaube, ich hab dein Problem verstanden. Die Schreibweise funktioniert schon, sie tut nur nicht das, was du erwartest. ;)

Jede Formel muss einen Hauptausdruck haben, das "Ergebnis" sozusagen. In deinem Fall wird Anweisung1 zwar ausgeführt, aber das Ergebnis wird durch Anweisung 2 überschrieben.  Wenn du das Ergebnis von Anweisung1 im weiteren Verlauf verwenden möchtest, dann musst du entweder die Anweisungen Schachteln, oder den Rückgabewert von Anweisung1 einer temporären Variablen zuweisen, auf die du dann Anweisung2 loslassen kannst.

Das Ergebnis eine Formel ist also immer das Ergebnis der allerletzen Anweisung, die darin steht.

War's das?


Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln