Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Demian am 24.11.06 - 07:20:05

Titel: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 07:20:05
Hallo,

gestern habe ich 3 Stunden verzweifelt versucht eine Variable mit folgendem Wert zu füllen:

Formel = command([openview];"Max Mustermann")

Der Name Max Mustermann steht in einer Variable namens Vollname.

Ergo, habe ich folgendes versucht:

Formel = |command([openview];| & |"| & Vollname & |"| & |)|

Habe mir das dann im Debugger angeschaut. Die Variable Formel hatte dort folgenden Wert:

"command([openview];""Max Mustermann"")"

Folglich bin ich davon ausgegangen, irgendwas ist falsch, und habe ungelogen 3 Stunden damit verbracht, irgendwelche Kombination von ", | und { auszuprobieren mit den dollsten Ergebnissen.

Bin dann verzweifelt schlafen gegangen.

Heute morgen dachte ich mir, lass es dir per msgbox anzeigen, damit du nicht jedesmal den Debugger schließen musst usw.

Und siehe da, dort wurde der Wert richtig wiedergegeben (siehe ganz oben).

Ist das jetzt ein Bug? Wenn nicht, kann mir einer erklären, wie sich das logisch zusammensetzt? Die Hilfe widerspricht sich an diesem Punkt selbst.

Gruß
Demian   

Titel: Re: Debugger-Bug?
Beitrag von: klaussal am 24.11.06 - 07:51:42
Manchmal hilft es, Notes zu beenden und wieder zu starten (Reboot tut gut).
Titel: Re: Debugger-Bug?
Beitrag von: dirk_2909 am 24.11.06 - 07:55:03
Zitat
Notes zu beenden und wieder zu starten (Reboot tut gut).

Aber das hat doch mit dem o.g. "Problem" doch nix zu tun  :-:  ??? Oder?
Titel: Re: Debugger-Bug?
Beitrag von: klaussal am 24.11.06 - 07:59:51
Manchmal schon. Ich hatte auch schon mal Änderungen in einem Script gemacht, die erst gezogen haben, als ich LoNo neu gestartet hatte. Das Gedächnis von LoNo ist wohl sehr sehr gross.
Titel: Re: Debugger-Bug?
Beitrag von: dirk_2909 am 24.11.06 - 08:02:39
Zitat
;""Max Mustermann"")"

die Anzeige der doppelten Anführungszeichen hat nicht smit Änderungen im Script zu tun.
Im Debugger wird es immer so angezeigt. In einer Msgbox o.ä. wird es "richtig" angezeigt.

Eine logische Erklärung habe ich dafür nicht.
Ich nehm es einfach so hin.....
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 08:26:35
Gut, jetzt wo ich es weiß, werde ich es mir zukünftig nur noch in msgboxen anzeigen lassen  ;D

Und wie gesagt, die Hilfe widerspricht sich selbst

To include one of the closing delimiter characters  ", |, or } as text within a string delimited by that character, double it.
|A bar string with a bar || in it|
The empty string has no characters at all; it is represented by "".
Titel: Re: Debugger-Bug?
Beitrag von: umi am 24.11.06 - 08:59:35
Eine andere Frage:
Funktionieren die @Commands überhaupt in Evaluate?
Zumindest bei den COM klassen gibts die Beschränkung, dass @Commands nicht funktionieren.
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 09:22:25
Hallo Umi,


Funktionieren die @Commands überhaupt in Evaluate?


Sorry, habe vergessen zu erwähnen, dass es sich um Script handelt. Ich will eine Ansicht per Script erstellen und lege für diese die Selektions-Formel fest. (notesoutlineentry.setaction)
Gruß
Demian
Titel: Re: Debugger-Bug?
Beitrag von: animate am 24.11.06 - 10:14:16
Gut, jetzt wo ich es weiß, werde ich es mir zukünftig nur noch in msgboxen anzeigen lassen  ;D

Und wie gesagt, die Hilfe widerspricht sich selbst

To include one of the closing delimiter characters  ", |, or } as text within a string delimited by that character, double it.
|A bar string with a bar || in it|
The empty string has no characters at all; it is represented by "".

Wo denkst du denn, dass sich die Hilfe widerspricht?

Da steht, wenn du einen Delimiter in einem String verwenden willst, der von genau diesem Delimiter eingegrenzt ist, dann musst du ihn verdoppeln. Das "" sind nur die Grenzen eines leeren Strings.
ein " würde so aussehen """". Also vier Mal ". Das erste als Start des Strings, die beiden nächsten für das " selbst und das letzte als End des Strings.

Und genauso zeigt es auch der Debugger an

"command([openview];""Max Mustermann"")"

Das erste ist der Anfang des Strings, die nächsten beiden sind das " vor Max Mustermann. Zwei, weil ein " in einem String, der von " begrenzt wird, angezeigt werden soll. Dann wieder zwei für das Ende von Max Mustermann und das letzte schließt den String ab.
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 10:27:19
Hallo Thomas,

für mich war klar double it heißt "". So wie du es jetzt beschreibst ist es logisch. Werde es mir zukünftig aber trotzdem lieber in ner msgbox anzeigen lassen.

Trotzdem ist es im Debugger meines Erachtens nicht richtig. Es sollte der String im Debugger stehen, der auch ausgegeben wird. Gerade weil vor und nach dem String ein " steht, gehe ich davon aus der Text innerhalb dieser beiden " so gezeigt wird, wie er auch ausgegeben wird.

Gruß
Demian
Titel: Re: Debugger-Bug?
Beitrag von: umi am 24.11.06 - 10:29:48
@Demian

Dass Du Skript verwendest ist ja schon klar.
Nur denke ich dass da die @Commands (bzw. alle UI Funktionen ) im Evaluate nicht funktionieren.
Titel: Re: Debugger-Bug?
Beitrag von: koehlerbv am 24.11.06 - 11:05:00
@Commands und UI-lastige @functions können nicht mit Evaluate verwendet werden.

Bernhard
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 11:09:03
So vor meiner Frage erst mal der Hinweis, ich habe keine Notes-Schulung und bin immer noch Laie.

Jetzt die Frage: Was genau meint ihr mit Evaluate?

Gruß
Demian
Titel: Re: Debugger-Bug?
Beitrag von: koehlerbv am 24.11.06 - 11:29:24
Evaluate: Siehe DesignerHelp.

Gegenfrage: Was willst Du denn mit LotusScript mit diem Konstrukt
Formel = |command([openview];| & |"| & Vollname & |"| & |)|
anfangen? Vielleicht übersehe ich ja auch was.

Bernhard
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 11:34:38
Hallo Bernhard,

da gibt es 3 Einträge zu. Also, ich verstehe das so, dass mit evaluate @-Formeln im Script ausgeführt werden können, oder? Das ist natürlich perfekt, habe mich schon oft geärgert, dass es Funktionen in Formeln gibt, die es im Skript nicht gibt.

Formel ist die Variable, die ich in notesoutlineentry.setaction einsetze.
Es wurde mir etwas zu lang, und Trennzeichen-technisch gesehen zu komplex, deswegen habe ich es in Variablen aufgeteilt.

Gruß
Demian
Titel: Re: Debugger-Bug?
Beitrag von: koehlerbv am 24.11.06 - 11:37:15
Ahh. Dann vergiss das mit dem Evaluate (aber nicht, vor Dein Command noch ein "@" zu schreiben).

Bernhard
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 11:51:16
aus deiner Reaktion schließe ich, dass ich mal wieder völlig am Ziel vorbei geschossen bins, oder  ;D

Werde heute abend mal mein schlaues Script-Buch zu Rate ziehen.

Gruß
Demian
Titel: Re: Debugger-Bug?
Beitrag von: koehlerbv am 24.11.06 - 11:52:43
Nein, das siehst Du falsch. Vielmehr habe ich fälschlicherweise angenommen, Du wolltest da was mit Evaluate machen. Auf ein OutlineEntry bin ich nicht gekommen.

Bernhard
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 11:57:59
Zitat
Nein, das siehst Du falsch.

Bezieht sich das jetzt darauf, dass ich das mit evaluate so verstehe, dass man damit @-Formeln ausführen kann?

Titel: Re: Debugger-Bug?
Beitrag von: koehlerbv am 24.11.06 - 12:02:44
Nein.
Titel: Re: Debugger-Bug?
Beitrag von: Demian am 24.11.06 - 12:18:22
Gut  ;D

Danke an alle.

Gruß
Demian