Autor Thema: OnChange Event Feld  (Gelesen 2663 mal)

Offline MrXYZ

  • Aktives Mitglied
  • ***
  • Beiträge: 100
  • never touch a running system!
OnChange Event Feld
« am: 15.04.08 - 15:53:59 »
Hi @ALL

... folgende Quiz-Frage:

1) Habe einen RadioButton mit yes und no - Feld RADIO
2) Ein Feld namens ABC

1. Fall: wenn ich den Radiobutton von yes -> no setze, soll das Feld ABC gelöscht werden.
2. Fall: Der Radiobutton bleibt stdmäßig auf no stehen, aber das Feld ABC wird vom Anwender mit einem Wert gefüllt (soll natürlich nicht gelöscht werden)

Meine Überlegung:

Im OnChange Event des Feld RADIO:

                Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument

   Call uidoc.RefreshHideFormulas

   if uidoc.FieldGetText( "radio") = "no" then

                         Call uidoc.FieldSetText("abc","")

                End If


   Klappt aber leider nicht  ???


P.S. Da komplex -> geht leider nicht über Default Value von ABC nach dem Motto @If(radio="no";"";....)

klaussal

  • Gast
Re: OnChange Event Feld
« Antwort #1 am: 15.04.08 - 16:04:37 »
Das sagt ja schon die Hilfe:

Zitat
This event occurs when the field loses focus and its value has been modified since gaining focus.

Offline MrXYZ

  • Aktives Mitglied
  • ***
  • Beiträge: 100
  • never touch a running system!
Re: OnChange Event Feld
« Antwort #2 am: 15.04.08 - 16:28:07 »
Ok, wie kriege ich jetzt hin, dass ich beim aktiven Ändern des Radiobuttons ein Feld löschen kann ?

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: OnChange Event Feld
« Antwort #3 am: 15.04.08 - 18:18:46 »
... Feld initialisieren => notesDocument.GetFirstItem( sFeldname ) und dann NotesItem.Remove und einen Save auf das Dokument

Toni
Grüßle Toni :)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: OnChange Event Feld
« Antwort #4 am: 15.04.08 - 20:19:51 »
Also ich würde mit dem NotesTimer arbeiten, und damit periodisch aller 1 bis 2 Sekunden den Wert im Radiobutton prüfen.

Bubble
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

klaussal

  • Gast
Re: OnChange Event Feld
« Antwort #5 am: 15.04.08 - 20:43:32 »
.... oder zwei Schaltflächen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: OnChange Event Feld
« Antwort #6 am: 15.04.08 - 23:17:14 »
NotesTimer - Finger weg, wenn man sich nicht aller Konsequenzen klar ist - das Teil läuft dann permanent und kann wirklich unerwartete Resultate zeitigen (okay, die sind dann auch erklärbar, aber daran hat man vorher nicht gedacht!).

Ich mag die Lösung nun nicht vorkauen, werfe aber mal folgende Begriffe ein:
- Masken-globale Variable zur Speichrung des aktuellen Zustandes des Items "RadioButton" (RB)
- Im PostOpen aktuellen Zustand merken, im PostRecalc dito
- Property von RB "Aktualisierung bei Schlüsselwortaktualisierung" nutzen und daher
- das Event PostRecalc nutzen.

Bernhard

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: OnChange Event Feld
« Antwort #7 am: 16.04.08 - 12:51:39 »
Hmm,
ich weiss nicht, bei mir funktioniert das genau mit dem oben angegebenen Code so wie du es willst. Hast du in den Eigenschaften des Radiobuttons im dritten Reiter unten das Häkchen gesetzt?
(EXciting/Onchange Änderungen nach jeder Wertänderung ausführen)

Oder kapier ich das Problem  nicht?

Ciao
Thomas
« Letzte Änderung: 16.04.08 - 13:04:42 von iukhdh »
Thomas von der IuK

Offline MrXYZ

  • Aktives Mitglied
  • ***
  • Beiträge: 100
  • never touch a running system!
Re: OnChange Event Feld
« Antwort #8 am: 16.04.08 - 14:31:35 »
ok, Problem dank Bernhards Ansatz gelöst.

Im PostRecalc Event wird folgender Code eingebunden und das klappt prima (Postopen Aktionen werden für mein Problem nicht benötigt):

   
   Dim ABC As String
      
   ABC = source.Document.abc(0)
      
   If ABC ="hallo" And source.Document.radio(0)="no" Then
      Call source.FieldClear("abc")
   End If
« Letzte Änderung: 16.04.08 - 14:33:07 von MrXYZ »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz