Manchmal möchte man eine Teilmaske in eine Maske nur einfügen, wenn eine
Bedingung erfüllt ist, z. B. wenn ein bestimmter Status im Workflow erreicht
wurde. Gegenüber dem Verstecken mit "Hide-When"-Formeln hat das
den Vorteil, dass der Notes-Client entsprechend weniger berechnen muss
(Hide-When-Formeln selbst, aber ggf.auch viele @DbLookups, Werte-Formeln,
usw.) und das Dokument von unnötigen Items verschont bleibt. Dafür gibt
es bei Notes die Möglichkeit der Berechneten Teilmaske.
Für eine Anpassung der Mail-Datenbank
hatte ich kürzlich wieder mal diesen Fall. Nur wenn in den Mail-Vorgaben
die Funktion "Zentrale Ablage" aktiviert wurde, sollte die Teilmaske
zur Auswahl der zentralen Ablage und zur Verschlagwortung des Dokuments
angezeigt werden. Die Formel der Berechneten Teilmaske in der Memo- und
den beiden Reply-Masken sah dann (vereinfacht) so aus:
@If(
@GetProfileField("CalendarProfile"; "CentralFilingStatus") = "1";
"CentralFiling";
""
)
Das funktioniert auch wunderbar.
Einige Tage später kam dann ein Kollege
auf mich zu und machte mich darauf aufmerksam, dass in der Statuszeile
immer wieder die Meldung "Element des Dokuments nicht gefunden"
erschien. Nach kurzer Analyse konnte ich die Meldung mit der Berechneten
Teilmaske in Verbindung bringen.
Meine erste Lösung:
Eine leere Teilmaske z. B. "EmptySubform"
- erstellen und deren Name (oder Alias) in die Formel einfügen:
@If(
@GetProfileField("CalendarProfile"; "CentralFilingStatus") = "1";
"CentralFiling";
"EmptySubform"
)
Die zweite, etwas elegantere Lösung:
Statt des leeren Strings @Nothing zurück
geben:
@If(
@GetProfileField("CalendarProfile"; "CentralFilingStatus") = "1";
"CentralFiling";
@Nothing
)