Autor Thema: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!  (Gelesen 2424 mal)

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Ich möchte eine Schaltfläche in Abhängigkeit zweier Feldwerte A und B ein-/ausblenden.

Feld B ist ‚bearbeitbar‘ und ein Optionsfeld. Hier kann ich „Felder bei Schlüsselwortänderung aktualisieren“ aktivieren.

Feld A ist ebenfalls ‚bearbeitbar‘, aber ein Datumsfeld. Hier kann ich „Felder bei Schlüsselwortänderung aktualisieren“ nicht aktivieren.

Die Maske habe ich auf ‚Felder automatisch aktualisieren‘ gesetzt.

Die Abhängigkeit zu Feld B funktioniert, zu Feld A leider nicht bzw. nur bei ‚F9‘-Aktion.

Wie kann ich das lösen?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
- OnChange-Event
- Exiting-Event
- Timer (letzte Wahl!) zum Triggern von PostRecalc
- Maske bei Feldänderung aktualisieren (Achtung - Performance! Das musst Du situativ einschätzen und später mögliche Erweiterungen berücksichtigen).
- ... Da geht noch mehr, wird aber sehr viel komplexer ...

Bernhard

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Danke, Bernhard!

Habe folgenden Script...

Sub Exiting(Source As Field)
   Dim uiws As New NotesUIWorkspace
   Call uiws.ViewRefresh
End Sub

...im Exiting-Event versucht bei zusätzlicher Option "Exiting/OnChange-Event bei jeder Änderung ausführen" im Datenfeld. Hat aber nicht die gewünschte Wirkung. Habe mir das aus anderen Forumsbeiträgen geholt, besitze jedoch keine Script-Kenntnisse!


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
"Ohne Script geht nix" ist hier zwar falsch (wenn Du alle Punkte meiner Antwort betrachtest), aber es wird zumindest schwer. Warum sollten wir jetzt was in LS aufmalen, was Du dann (immer noch) nicht verstehst? Das geht nicht gegen Dich, wirklich nicht (wenn Du denn damit leben kannst), aber gegen Deinen Arbeitgeber. Wir arbeiten nicht unbezahlt für ihn.

Bernhard

PS: Nochmals - lies alle Punkte auf, die ich aufgemalt habe.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Viewrefresh ist die falsche Methode der falschen Klasse. In der NotesUiDocument- Klasse wirst Du fündig...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
ViewRefresh ist schon in der richtigen Klasse angesiedelt und tut häufig (aber nicht immer - es kommt auf den Kontext an!) das, was man mit F9 mit den Wurstfingern macht, Torsten  ;)
Hier braucht es aber wohl wirklich die NotesUIDocument class, aber das nun einem LS-Nichtkenner verklickern ...

Bernhard

Glombi

  • Gast
Folgendes sollte es tun denke ich. Ist keine Atomwissenschaft.

Sub Exiting(Source As Field)
   Dim uiws As New NotesUIWorkspace
dim uidoc as NotesUIDocument
set uidoc =uiws.CurrentDocument
   Call uidoc.Refresh
End Sub

Achtung: NICHT ViewRefresh

Wenn es aber "nur" darum geht, die Verbergenformeln neu zu berechnen, dann reicht anstelle von
   Call uidoc.Refresh
ein
   Call uidoc.RefreshHideFormulas



Andreas

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Aber bei dem Exiting-Event ist zu beachten, dass er nur ausgeführt wird wenn das Feld auch wirklich verlassen wird.

Es sein denn man hat in den Feldeigenschaften den OS-Style und die Option "Run Exiting/Onchange events after value change" gesetzt.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Glombi

  • Gast
Das hat er wenn ich das richtig gelesen habe.

Andreas

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
@Bernhard
Deine Anmerkung zu LS kann ich voll nachvollziehen, insbesondere „wir arbeiten nicht unbezahlt für Deinen Arbeitgeber“.
Aber zum Thema „..lies alle Punkte“: Ich habe die Maske auf „Felder automatisch aktualisieren“ gesetzt (siehe Posting 1), Du schreibst „Maske bei Feldänderung aktualisieren“. Ich dachte schon wir reden von verschiedenen Einträgen.
Tatsächlich ist es aber ganz einfach: Ich hatte das Datumsfeld beim Testen nicht verlassen und so wurden die Berechnungen (noch) nicht angestoßen ;-(
So reicht es mir im Prinzip schon aus.

@Glombi & Axel
Habe das Script mit den entsprechenden Feldeigenschaften ausprobiert: es wird auch nur nach Verlassen umgesetzt. Außerdem möchte ich gerne das Kalender-Steuerelement beibehalten.

@Alle
Vielen Dank!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz