Autor Thema: per OnChange Feldinhalt eines anderen Feldes löschen  (Gelesen 2424 mal)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
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
« Letzte Änderung: 24.02.05 - 13:01:09 von SKL74 »
Domino, Notes, Sametime

Axel Janssen temp

  • Gast
Re:per OnChange Feldinhalt eines anderen Feldes löschen
« Antwort #1 am: 13.04.04 - 12:05:25 »
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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:per OnChange Feldinhalt eines anderen Feldes löschen
« Antwort #2 am: 13.04.04 - 12:09:41 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re:per OnChange Feldinhalt eines anderen Feldes löschen
« Antwort #3 am: 13.04.04 - 12:26:23 »
@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.  ???
Domino, Notes, Sametime

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re:per OnChange Feldinhalt eines anderen Feldes löschen
« Antwort #4 am: 14.04.04 - 08:19:03 »
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
Domino, Notes, Sametime

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz