Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: smokyly am 07.04.11 - 17:19:22
-
Hallo,
gibt es eine Formel, die prüft, ob ein Dokument selektiert ist? Ich möchte damit eine Aktion verbergen, wenn kein Dokument in der Ansicht gewählt ist.
Grüße
-
Ah, selbst was gefunden:
@If(@DocLength=0;@Return(@True);@False)
-
Aber das funktioniert nicht in einer Verbergeformel, oder? Habe das mit 7.03 und 8.5.1 erfolglos getestet
-
Hallo Peter,
hätte es nicht funktioniert, hätte ich es nicht hier eingestellt. Es tut tatsächlich. Hab allerdings 8.5.2.
Beste Grüße
P.S.: Eine Frage - warum muss da @return mal angegeben werden (true) und mal nicht?
-
Keine Ahnung, wer Dir das mit diesem Konstrukt geflüstert hat, Geri. In einer Hid-When-Formel würde
DocLength = 0
vollkommen ausreichen.
By the way: Hide-whens dieser Art sind perfomancetechnisch ziemlich tödlich. Ausserdem ist in einer Ansicht immer ein Dokument gewählt - ausser, man steht gerade auf einer Kategorie oder der Gesamtsummenzeile.
Bernhard
-
Hallo Bernhard,
Keine Ahnung, wer Dir das mit diesem Konstrukt geflüstert hat, Geri.
Die Firma nennt sich IBM, glaube ich. Das wird in der Schablone z.B. bei Aktion "Löschen" verwendet.
In einer Hid-When-Formel würde
DocLength = 0
vollkommen ausreichen.
Danke, umso unverständlicher, warum das im Standard so erweitert hinterlegt ist.
By the way: Hide-whens dieser Art sind perfomancetechnisch ziemlich tödlich. Ausserdem ist in einer Ansicht immer ein Dokument gewählt - ausser, man steht gerade auf einer Kategorie oder der Gesamtsummenzeile.
Bernhard
Es handelt sich um die Kalenderansicht. Da steht man nicht zwingend auf einem Doc.
Gruß
-
Du musst schon die ganze Wahrheit sagen ;)
Die Formel lautet
@If(@DocLength=0; @Return(@True); @False);
REM; "Check for users with read/write public access";
tmpLevel := @TextToNumber(@Subset(@UserAccess(@DbName); 1));
tmpRead := @Subset(@UserAccess(@DbName); -2);
tmpWrite := @Subset(@UserAccess(@DbName); -1);
@If(tmpLevel <=2 & tmpWrite="0";@Return(@True);@False);
Iscancel:=@If(@IsAvailable(CalendarDateTime) & Form = "Notice" & _ViewIcon = 81;@True;@False);
IsNonMeeting:=@If(AppointmentType !="3";@True;@False);
@If(IsNonMeeting=@True | IsCancel = @True; @Return(@False);@True)
und daher macht das erste @Return natürlich Sinn, um aus der Formel auszusteigen, denn es geht ja weiter.
Andreas
-
Mei Andreas,
dummerweise komme ich nicht an die vollständige Hide-When-Formel ran, ich sehe gerade noch die erste REM-Zeile. Weiter läßt man mich nicht scrollen.
JETZT hat das auch einen Sinn, das @Return wollte mir nicht einleuchten.
Vielen Dank!
Wieder was gelernt.