Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: magic_halli am 26.11.08 - 09:15:15
-
Hi,
ich habe eine Maske, die gleichzeitig als userspezifisches Profildokument gespeichert wird.
In der Maske sind eine Menge Kontrollkästchen die untereinander, mittels Hide-When-Formeln, quasi interaggieren sollen.
Ich hänge gleichmal nen Screenshot der Maske aus der Designersicht mit an!
Nun wollte ich zum Einstieg erstmal eine Checkbox ausblenden, wenn eine andere aktiviert wird (d.h. der Wert auf "1" gesetzt wird).
Ziel:
Checkbox "Msg_Datei_anhaengen" soll ausgeblendet werden, wenn Checkbox "Anlage_exportieren" auf "1" (angehakt) wird! Das ganze aber zur Laufzeit!
Besser wäre eigentlich, wenn "Msg_Datei_anhaengen" einfach nicht mehr bearbeitbar, aber dennoch sichtbar ist.
Vorarbeiten:
Beide Checkboxen haben als Vorgabewert erstmal "0".
Bei beiden Checkboxen in den Eigenschaften (2.Reiter-->Auswahl) steht außerdem '<Checkbox-Beschriftung> | 0' drin. Ansonsten ist jeweils alles auf den Defaulteinstellungen.
Vorgehen:
1. Checkbox "Anlage_exportieren" --> Eigenschaften/Optionen(2.Reiter) --> "Felder bei Schlüsselwortänderung aktualisieren" Haken rein
2. Checkbox "Msg_Datei_anhaengen" --> Eigenschaften --> Formelreiter: "Absatz verbergen, wenn Formel wahr ist" Haken rein; Formelfenster: Anlage_exportieren = "1"
3. Speichern und Test in Notes
Es passiert einfach gar nichts von dem gewünschten - alles bleibt wie gehabt! Ich kann klicken soviel ich will, die Checkbox "Msg_Datei_anhaengen" bleibt sichtbar!
Was hab ich falsch gemacht?
Danke und Gruß
-
@refreshHideFormulas oder so ähnlich
bei Schlüsselwortänderung werden nur die Felder berechnet, nicht die Hide-When formeln
da musst du extra einen Refresh triggern
-
@Command( [RefreshHideFormulas] )
-
@Command( [RefreshHideFormulas] )
...aber wo kommt das hin?
-
probier mal exiting vom Feld:
Call notesUIDocument.RefreshHideFormulas
da geht ja nur LS
wenn du in der Hilfe nachsiehst, da steht in der Regel immer der Verweis auf Formelsprache oder LS, wenn es dort einen ähnlichen Befehl gibt
ist aber dann nicht sehr performant
-
Beide Checkboxen haben als Vorgabewert erstmal "0".
Bei beiden Checkboxen in den Eigenschaften (2.Reiter-->Auswahl) steht außerdem '<Checkbox-Beschriftung> | 0' drin. Ansonsten ist jeweils alles auf den Defaulteinstellungen.
Wenn du das so gemacht hast, dann ist der Feldinhalt auch bei markierter Checkbox "0" und dann kann deine HideWhen - Formel nicht greifen.
Normalerweise braucht's @Command( [RefreshHideFormulas] ) nicht, wenn du in den Feldeigenschaften die Option "Felder bei Schlüsselwortänderung aktualisieren" markiert hast.
Axel
-
Hallo magic_halli
Versuch mal folgendes:
Vorgabe: "" (leer)
Auswahl: "<Checkbox-Beschriftung> | 1"
Du willst ja als Vorgabe nichts angehakt haben. Wählt der User die Checkbox an, wird Wert "1" gespeichert.
Dann noch in den Feldeigenschaften die Option "Felder bei Schlüsselwortänderung aktualisieren" markieren (wie Axel schon geschrieben hat) und schon sollte es funktionieren.
Gruß
Stefan
-
Hallo magic_halli
Versuch mal folgendes:
Vorgabe: "" (leer)
Auswahl: "<Checkbox-Beschriftung> | 1"
Du willst ja als Vorgabe nichts angehakt haben. Wählt der User die Checkbox an, wird Wert "1" gespeichert.
Dann noch in den Feldeigenschaften die Option "Felder bei Schlüsselwortänderung aktualisieren" markieren (wie Axel schon geschrieben hat) und schon sollte es funktionieren.
JAAAA... das wars gewesen!!! Danke ;D
Noch ne Frage: Kann man die Checkbox, die jetzt ausgeblendet wird, auch irgendwie sichtbar lassen, jedoch quasi deaktiviert? ...also bspw. so leicht gräulich und nicht mehr bearbeitbar (wie´s bei Windows mit Checkboxen in irgendwelchen Optionsmenüs ist).
-
In dem Fall musst du eine zweite Checkbox mit der gleichen Auswahlliste erstellen. Die stellst du dann von Bearbeitbar auf Berechent und als Werteformel gibt's du den Feldnamen der bearbeitbaren Checkbox ein. Die berechnete blendest du dann ein, wenn die bearbeitbare ausgeblendet wird. So leicht gräulich wie in Windows geht's nicht.
Axel
-
ein zweites Computed for Display Feld, das den Wert anzeigt und die Hide-when Formel genau anders rum hat?
-
In dem Fall musst du eine zweite Checkbox mit der gleichen Auswahlliste erstellen. Die stellst du dann von Bearbeitbar auf Berechent und als Werteformel gibt's du den Feldnamen der bearbeitbaren Checkbox ein.
Soweit, sogut...
Die berechnete blendest du dann ein, wenn die bearbeitbare ausgeblendet wird.
Wie fange ich das "Checkbox XY ist ausgeblendet" in einer Formel ab?
-
In der einen Checkbox als HideWhen-Formel Anlage_exportieren = "1" und in der anderen Anlage_exportieren != "1"
Axel
-
In der einen Checkbox als HideWhen-Formel Anlage_exportieren = "1" und in der anderen Anlage_exportieren != "1"
Jo, hab ich auch grad ausprobiert ::)
Funktioniert. Danke sehr.
-
Mal noch schnell eine Frage hintenran...
Wenn ich nun die Checkbox-Werte auslese (programmatisch), sind diese entweder "1" oder "" (StringValues)! Is ja eigentlich blöd.
Kann man das nicht so einstellen, dass diese entweder true/false (Boolean) oder 0/1 (String oder auch Integer) sind, anstatt 1/""?
Einstellungen bei mir:
Vorgabe: "" oder nichts eingetragen
Auswahl: "<Checkbox-Beschriftung> | 1"
-
Kann man das nicht so einstellen, dass diese entweder true/false (Boolean) oder 0/1 (String oder auch Integer) sind, anstatt 1/""?
Nein.
Axel
-
:-\ Na jut...
Gruß