Domino 9 und frühere Versionen > ND6: Entwicklung
per OnChange Feldinhalt eines anderen Feldes löschen
(1/1)
theBastian:
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
Axel Janssen temp:
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
Semeaphoros:
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.
theBastian:
@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. ???
theBastian:
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
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln