Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: SaSaWu am 06.11.12 - 16:43:27

Titel: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: SaSaWu am 06.11.12 - 16:43:27
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?
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: koehlerbv am 06.11.12 - 17:55:50
- 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
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: SaSaWu am 06.11.12 - 18:11:00
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!

Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: koehlerbv am 06.11.12 - 18:43:55
"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.
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: Tode am 06.11.12 - 19:10:58
Viewrefresh ist die falsche Methode der falschen Klasse. In der NotesUiDocument- Klasse wirst Du fündig...
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: koehlerbv am 06.11.12 - 21:38:39
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
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: Glombi am 07.11.12 - 08:06:06
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
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: Axel am 07.11.12 - 09:01:30
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
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: Glombi am 07.11.12 - 09:13:16
Das hat er wenn ich das richtig gelesen habe.

Andreas
Titel: Re: Schaltfläche in Abhängigkeit von Datumsfeld ein-/ausblenden!
Beitrag von: SaSaWu am 07.11.12 - 10:23:06
@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!