Domino 9 und frühere Versionen > ND7: Entwicklung

Optionsschaltfläche und Kontrollkästchen

<< < (3/4) > >>

jan2k:
Ich hab jetzt doch eine Schaltfläche gemacht. Es ging irgendwie nicht eine Schaltfläche auszuschalten, wenn ich eine andere anschalte. Da gab es immerzu einen Konflikt und entweder haben sich beide aus oder angeschaltet.

Jetzt stecke ich schon wieder in einem Problem... Man kann zu einem Feld eine Auswahl auch mit Formel definieren. Ich verwende verkürzte Zeichen - also

Wohnzimmer | 1
Küche | 2
Lampe | 3   
Stuhl | 4

Wenn ich das mit einer @ Formel mache, passt das irgendwie nicht...

@If(Raum = "Wohnzimmer | 1";"Lampe | 3":"Küche | 2"; Raum="Küche | 2";"Stuhl | 4":"Wohnzimmer | 1";"")


Wo ist mein Fehler?

koehlerbv:
Jan, Dein Posting wirft sehr viele Fragen auf. Du musst das wohl nochmals neu formulieren müssen.

Zunächst:
Deine "verkürzte Schreibweise" beschreibt (offensichtlich) den Gebrauch von Aliases. Das bedeutet, dass im Frontend "Wohnzimmer" angezeigt wird, im Backend aber "1" gespeichert wird. Du kannst also nicht auf beide Werte zugreifen - siehe Dokumentation.

Weiters:
Bitte erkläre, was Du mit der Formel erreichen willst und wo Du diese verwendest.  Wenn ich mal den Fehler mit dem missverstandenen Alias heraus lasse, ergibt sich daraus folgendes Konstrukt:

Wenn Raum = Wohnzimmer, dann
Lampe
Küche;
Wenn Raum = Küche, dann
Stuhl
Wohnzimmer
sonst
nix.

Das ist irgendwie gaga.

Bernhard

WildVirus:
Moinsen,

wenn ich Jan richtig interpretiere, dann möchte er die Auswahl eines Feldes (egal ob mit Kästchen oder Radiobuttons) abhängig vom Feld Raum machen.

D.h. die Formel sollte so sein:

@If(Raum = "1";"Lampe | 3":"Küche | 2"; Raum="2";"Stuhl | 4":"Wohnzimmer | 1";"")

Das Problem dabei ist der letzte Wert, d.h. es gibt keine Option. Das ist nur dann sinnvoll, wenn das Feld gleichzeitig über eine Hide-When-Formel ausgeblendet wird. Eine leere Auswahlmöglichkeit macht bei beiden Formatierungen keinen Sinn.

Alternative um alles über einen Button zu regeln, zeig das Feld nur als berechnet an, lass die Anwender auf den Button drücken, dann kommt via Prompt etc. eine Liste der aktuell möglichen Optionen und der Anwender kann 1 auswählen. Und das Ergebnis (wenn es denn eines gibt [ESC abfangen]) wird dann in das Feld geschrieben. Und eine Option ist eben "kein Eintrag", der löscht dann das Feld.

CU,
Axel

jan2k:

--- Zitat von: WildVirus am 03.07.11 - 10:36:05 ---Moinsen,

wenn ich Jan richtig interpretiere, dann möchte er die Auswahl eines Feldes (egal ob mit Kästchen oder Radiobuttons) abhängig vom Feld Raum machen.

D.h. die Formel sollte so sein:

@If(Raum = "1";"Lampe | 3":"Küche | 2"; Raum="2";"Stuhl | 4":"Wohnzimmer | 1";"")

Das Problem dabei ist der letzte Wert, d.h. es gibt keine Option. Das ist nur dann sinnvoll, wenn das Feld gleichzeitig über eine Hide-When-Formel ausgeblendet wird. Eine leere Auswahlmöglichkeit macht bei beiden Formatierungen keinen Sinn.

Alternative um alles über einen Button zu regeln, zeig das Feld nur als berechnet an, lass die Anwender auf den Button drücken, dann kommt via Prompt etc. eine Liste der aktuell möglichen Optionen und der Anwender kann 1 auswählen. Und das Ergebnis (wenn es denn eines gibt [ESC abfangen]) wird dann in das Feld geschrieben. Und eine Option ist eben "kein Eintrag", der löscht dann das Feld.

CU,
Axel

--- Ende Zitat ---

Statt "" könnte ich ja auch eine Auswahl wiederholen bzw. eine andere Auswahl definieren. Ich guck nachher mal nach... Meine DB macht übrigens Fortschritte :) Und eine Woche habe ich ja noch Zeit...

cebolina:
Was ich in diesem Zusammenhang ab und zu anwende ist folgendes Konstrukt:

Für jede mögliche Auswahl gibt es ein Kontrollfeld mit nur einem Wert
Beispiel:
"Kontrollfeld1" mit  "> | 1"
"Kontrollfeld2" mit  "> | 1"
"Kontrollfeld3" mit  "> | 1"
Bei jedem Feld ist in den Feldeigenschaften (3. Reiter) "Exiting/OnChange-Ereignisse nach jeder Wertänd. ausführen" angehakt.

Im OnBlur-Event steht im Kontrollfeld1 dann dieser Code:

--- Code: ---Sub Onblur(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
If uidoc.FieldGetText("Kontrollfeld1") <> "" Then
doc.Kontrollfeld2 = ""
doc.Kontrollfeld3 = ""
End If
End Sub

--- Ende Code ---

im Kontrollfeld2 steht:

--- Code: ---Sub Onblur(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
If uidoc.FieldGetText("Kontrollfeld2") <> "" Then
doc.Kontrollfeld1 = ""
doc.Kontrollfeld3 = ""
End If
End Sub

--- Ende Code ---

und im Kontrollfeld3 steht:

--- Code: ---Sub Onblur(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
If uidoc.FieldGetText("Kontrollfeld3") <> "" Then
doc.Kontrollfeld2 = ""
doc.Kontrollfeld1 = ""
End If
End Sub

--- Ende Code ---

Damit kann man auch Pseudo-Optionsschaltflächen nachbilden.
Ich mache das eigentlich immer dann, wenn die beschreibenden Texte sehr lang sind.

Gruß
Stefan

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln