Autor Thema: Problem mit Validierung bei eigenen Schaltflächen in DialogBox  (Gelesen 3950 mal)

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Ich habe ein kleines Problem mit eigenen Schaltflächen in einer Dialogbox. Beim Aufruf der Funktion blende ich die Standards OK und Abbrechen aus. Stattdessen habe ich drei eigene Schaltflächen in den Dialog eingebaut. Eine ist vom Typ OK, eine vom Typ Normal und eine vom Typ Abbrechen. Was mir nun aufgefallen ist, dass die Feld-Validierungen zwar beispielsweise bei der Schaltfläche vom Typ OK ordnungsgemäß überprüft werden, wenn allerdings die Validierung einen Fehler gemeldet hat weil beispielsweise ein Pflichtfeld noch nicht gefüllt war und der Benutzer das Feld anschließend füllt und wiederum auf die Schaltfläche klickt wird der Dialog nicht wie gewünscht geschlossen, sondern bleibt dauerhaft offen. Der einzige Weg in Dialog dann zu zu bekommen ist über das X oben rechts in der Ecke. Das kann ja so eigentlich nicht richtig sein!? Hat jemand eine Idee, wie ich veranlassen kann, dass nach der Bereinigung der Dateneingabe die Schaltflächen dennoch ordnungsgemäß arbeiten, also erneut eine Validierung durchgeführt wird und anschließend der Dialog sich wie gewünscht schließt?

Bisher umschiffe ich das Problem, indem ich die Feldüberprüfung direkt in die Schaltfläche mit einbaue und stattdessen die Feld Validierungen weglasse. Dennoch bin ich der Meinung, dass das doch eigentlich auch funktionieren müsste.

An dieser Stelle schon einmal herzlichen Dank für ein paar Denkanstöße
« Letzte Änderung: 14.05.13 - 14:57:48 von Alexander 28 »

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Hallo !

Also bei mir funzts mit eigenen Schaltflächen:

Call wes.RefreshParentNote()
Call uidoc.Close

Gruss
Udo

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Nein, bei mir nicht. Hast Du den Code auf die Schalfläche gelegt? Ich will ja kein manuelles Close einbauen. Genau das soll der Button ja von allein wissen. Weis er ja auch, wenn die Valis alle in Ordnung sind  ???

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Das ist ein Bug, den ich schon seit mindestens Version 6 kenne... Nimm ausschliesslich Schaltflächen vom Typ "Normal", dann hast Du das Problem nicht, musst aber halt die "Funktion", die ja im Typ mit drin steckt leider manuell mit reinprogrammieren.

Schön ist es, wenn Du z.B. per "NoOKCancel" das "x" rechts oben ausgeschaltet hast, dann kannst Du nämlich den Client nur noch abschiessen...
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 Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
dachte ich es mir doch. na dann validiere ich weiter im queryclose.
danke

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Hallo !

Die von mir verwendeten Schaltflächen sind auch vom Typ "Normal" und der Code liegt direkt auf der Schaltfläche.

Gruss Udo

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Ja, schon. Aber wie kriege ich die Dialogbox dazu einmal True und einmal False zurückzugeben, wenn beide Buttons vom Typ 'Normal' sind?

Mitch

  • Gast
Mit NotesUiWorkspace.RefreshParentNote vor dem Close. Das simuliert in Dialogen den OK-Button. Ohne das käme "false" zurück.

Aus der Hilfe:

Zitat
If your button calls this method and then closes the dialog (e.g. with NotesUIDocument.Close), the NotesUIWorkspace.DialogBox method in the caller will return True, as if the user had clicked OK.

Beste Grüße,

Mitch

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
ahh ja, prima. das war mal ein guter tipp ...
danke

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
ahh ja, prima. das war mal ein guter tipp ...

Das heisst im Gegenzug, die anderen Tipps hier sind eher Quatsch und wertlos. Wirklich?

Bernhard

Mitch

  • Gast
Das heisst im Gegenzug, die anderen Tipps hier sind eher Quatsch und wertlos. Wirklich?

Das hätte ich nicht so interpretiert, dafür hätte das "das" groß und fett sein müssen.

Schade ist nur, dass Udo den gleichen Tipp direkt zu Anfang gegeben hat und der aber nicht erkannt wurde. ;)

Gruß,

Mitch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Hi, Mitch,

nein, natürlich sehe ich das nicht in diesem Sinne so ernst. Die gedankenlose Worte wie diese oder "funktioniert schon ganz gut" oder in dieser Art stören mich. Das ist nicht wesentlich und verursacht auch keinen Groll, ist aber irgendwie schade, wenn man simple Fakten nicht auch klar ausdrücken kann und sinnfrei Raum für Interpretationen gibt.

Vulgo: Danke, xy, das war jetzt genau der richtige Hinweis, weil ...
Oder: Funktioniert = Ich habe es auch hinbekommen.
Oder: Genau das war mein Fehler, nach er Korrektur funktioniert es natürlich.
Oder: Das ist eine Lösung, die das Problem erstmal löst, aber mich / meine User stört noch ... was könnte man da noch machen ... ?

Bernhard

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Danke Mitch  ;D

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
daaaaaaanke Tode !!!
daaaaaaanke udo187 !!!
nochmal daaaaaaanke Mitch!

 :love:

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz