Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: JoJo am 25.09.02 - 13:09:57

Titel: Allgem. Verständnisproblem mit der Formelsprache
Beitrag von: JoJo am 25.09.02 - 13:09:57
Kann mir bitte jemand sagen warum man den Wert eines Feldes mit

@text(@if(...))

schon, aber mit

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

nicht berechnen kann?
Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: eknori am 25.09.02 - 13:16:51
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
Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: JoJo am 25.09.02 - 14:30:32
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.
Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: Rob Green am 25.09.02 - 14:45:26
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?
Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: harkpabst_meliantrop am 25.09.02 - 14:55:47
Zitat

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

1. Anweisung
STRICHPUNKT
2. Anweisung

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?


Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: JoJo am 25.09.02 - 15:50:21
Zitat
Das Ergebnis eine Formel ist also immer das Ergebnis der allerletzen Anweisung, die darin steht.

War's das?


Das war's!    :D
Glaub' ich halt - aber wenn du es sagst...     ;D

Dank an alle, die sich bemühten meine Frage zu beantworten!

War anscheinend wirklich missverständlich formuliert, darum versuch' ich's anhand des folgenden Beispiels zur Errechnung des Wertes von FELDb noch mal (quasi für's Archiv):

@Text(@If(FELDa="";47;11)) --> funktioniert

@If(FELDa="";47;11);
@Text(FELDb)                         --> funktioniert nicht


Bzw. ganz konkret hab' ich folgendes vergeblich versucht:

@If(Soll1=""|Soll2=""|Soll3=""; ""; Soll1+Soll2+Soll3);
@If(Summe_Soll != "" & Summe_Soll < 100000; Summe_Soll * 10; Summe_Soll)
Titel: Re: Allgem. Verständnisproblem mit der Formelsprac
Beitrag von: harkpabst_meliantrop am 25.09.02 - 16:12:08
Und noch der Vollständigkeit halber: So ginge es eben auch:
Code

_temp := @If(Soll1=""|Soll2=""|Soll3=""; ""; Soll1+Soll2+Soll3);
@If(_temp != "" & _temp < 100000; _temp * 10; _temp)


(Auch wenn ich die Formel lustig finde. Wenn der Jahresumsatz kleiner als 100000 ist, wird einfach mit 10 multipliziert, damit es besser aussieht??  ) :D

Temporäre Variablen mit einem Unterstrich beginnen zu lassen ist keine ganz schlechte Konvention für längere Formeln, damit man sie von Feldnamen unterscheiden kann. Muss man aber nicht machen.