Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: theBastian am 13.04.04 - 11:31:49
-
Hi,
ich sitze mal wieder über einem kleinen Problem, dessen Lösung ich zwar gedanklich vor mir habe, dessen Umsetzung aber leider nicht funktioniert. :(
Habe einen RadioButton (Feld1) und eine Dialogliste (Feld2). Beide editable. Wenn sich die Auswahl des Radiobuttons ändert, soll der Inhalt des 2. Feldes gelöscht werden, damit eine neue Auswahl aus der Liste erfolgen muss.
Habe also im OnChange des Feld1 Client und LS ausgewählt und folgenden Code gesetzt:
Sub Onchange(Source As Field)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
If ( uidoc.FieldGetText( "Feld2" ) <> "" ) Then
Call uidoc.SelectAll
Call uidoc.Clear
End If
End Sub
Leider wird der Feldinhalt nicht wie gewünscht gelöscht. Hat da jemand eine Idee?
cu
Sebastian
-
Hallo,
onChange ist ein JavaScript Event. Da kannst du nicht einfach LotusScript code reinschreiben.
Ich würde das lösen über:
+ 1 globale Variable (globale Sektion in Designer. String Variable deklarieren)
+ Aktiviere für die Radio-Buttons "Refresh fields on keyword change" --> 2ter Reiter.
+ QueryRecalc-Event
- du vergleichst den Wert der globalen Variable mit dem Wert des SelectBox-Felds.
- [Falls sie unterschiedlich sind] {
- setze den Wert der globalen Variable auf den neuen Wert des Selectbox-Feldes
- setze das SelectBox-Feld auf leer.
} [else] {
- doNothing
}
Tipp: Falls du Probleme mit diesen Angaben hast, frag noch mal nach.
Tipp1: Schalte den Debugger an, wenn du das entwickelst.
Tipp2: Falls das Selectbox Feld ein Mehrfachwerte-Feld ist, mußt du noch ein paar zusätzliche Purzelbäume schlagen.
Tipp3: Vielleicht hat noch jemand eine einfachere und GUI-responsivere Formelsprachenlösung. Mir ist jetzt keine eingefallen.
Gruß Axel
Gruß Axel
-
Axel:
OnChange gibt es seit ND6, wenn man "Client" anwählt, auch mit LotusScript und soll das Exiting-Event ersetzen.
All:
A-Bär, auf dem 3ten Tab der Feldeigenschaften ist zuunterst ein Häkchen zu setzen, wenn man will, dass OnChange bei RadioButtons sofort ausgeführt wird und nicht erst zeitversetzt.
-
@Axel
Diese Möglichkeit geht natürlich auch, ist aber etwas umständlicher.
@Semeaphoros
Der Haken hat gefehlt. Jetzt funktioniert das Ganze, wenn nichts im 2. Feld steht. Ist das Feld nicht leer, erhalte ich die Fehlermeldung:
Document command is not aviable.
Hat schon mit dem Debugger durchlaufen lassen, der meldet sich aber nicht. Habe auch die Auswahlformel aus der Dialogliste entfernt. Nichts. ???
-
Guten Morgen,
und da soll noch mal einer sagen, Lesen bildet nicht: in der Designer Hilfe steht alles drin.
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
If ( uidoc.FieldGetText( "Feld2" ) <> "" ) Then
Call uidoc.FieldSetText ("Feld2", "")
End If
Hatte doch glatt vergessen, das richtige Feld auszuwählen.
cu
Sebastian