Autor Thema: Dialogbox mit eigenen Buttons läßt sich nicht schließen.  (Gelesen 4202 mal)

Offline Ralph_

  • Frischling
  • *
  • Beiträge: 6
Hallo.

In einer Ansicht habe ich eine Aktion, die eine Dialogbox aufruft.

Zitat
vRet = oUIWorkspace.DialogBox("(mToolboxUnterlagen)", True , True, True , False, True, False, "Toolbox", oTempDoc, True, True , True)

In der Dialogbox hab ich zwei eigene Buttons für OK (Typ OK) und Abbruch (Typ Abbrechen).
Zusätzlich habe ich ein Hilfsfeld, in der ein Wert reingeschrieben wird, jenachdem, welcher der beiden Buttons gedrückt wird. Das Hilffeld enthält dann den Wert "OK" oder "CANCEL".

In der Dialogbox selber können Werte in diverse Felder (numerisch, Text) eingetragen werden. Im QueryClose prüfe ich nun, ob die eingegebenen numerischen Werte innerhalb eines zulässigen Wertebereichs liegen. Wenn nicht, erscheint eine Msgbox-Fehlermeldung und die weitere Verarbeitung wird mit Continue=false abgebrochen.
Ansonsten ist alles ok und im aufrufenden Script geht's dann weiter.

Zitat
vWert=Source.FieldGetText("hf_Button")
Continue=True
If ("OK"=vWert) Then
   vWert=Source.FieldGetText("f_Gli_Wert")
   If((vWert<1) Or (vWert>999)) Then
      Msgbox "Der Wert muss zwischen 1 und 999 liegen (inklusive 1 und 999)."
      Continue=False
   End If

Das Problem: Wenn alle Werte richtig eingegeben wurden und keine Fehlermeldung erscheint, läuft alles so wie es soll (Dialogbox wird geschlossen und das aufrufende Script läuft weiter)
Liegt ein Eingabefehler vor kann man diesen zwar nach wegklicken der Msxbox korrigieren, aber mit Klick auf den eigenen "OK"-Button läßt sich die Dialogbox nun nicht mehr schließen. Das QueryClose wird nicht mehr aufgerufen.

In den Buttons selber wird nur das Hilfsfeld bestückt. Ich habe auch testweise ein RefreshParentNote() eingebaut, die Dialogbox läßt sich beim zweiten Versuch einfach nicht schließen.

Verwende ich die fest eingebauten OK/Cancel-Buttons, funktionierts.

Ich würde aber gerne die eigenen Buttons verwenden. Nur, warum läßt sich die Dialogbox nicht schließen?

Danke im Voraus,
Grüße
Ralph
« Letzte Änderung: 21.02.17 - 12:22:25 von Ralph_ »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.873
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #1 am: 20.02.17 - 09:55:56 »
Das ist ein -seit langer Zeit- bekannter Bug in der Art und Weise, wie die Buttons mit den Events zusammenspielen. Da Du die Prüfung, ob OK oder Abbrechen gedrückt wurde sowieso mit einem anderen Feld machst, ändere den Typ der Buttons von "Abbrechen" auf "Normal", dann klappt es auch mit den Events.
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 Ralph_

  • Frischling
  • *
  • Beiträge: 6
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #2 am: 20.02.17 - 10:21:40 »
Danke, jetzt funktionierts.

OK-Button:
Zitat
FIELD hf_Button:="OK";
@Command( [RefreshParentNote] );
@Success;
@PostedCommand([FileCloseWindow])

Abbrechen-Button:
Zitat
FIELD hf_Button:="CANCEL";
@Command( [RefreshParentNote] )
@Success;
@PostedCommand([FileCloseWindow])

Ich hatte schon letzte Woche mit Script und @ und Button-Typ "OK"/"Normal" probiert, irgendwas fehlte da. Jetzt, wo das "@Success" mit drin ist klappts.
Und die Validierung im QueryClose wird bei OK auch immer aufgerufen.
So wie ich das gerne hätte.

Nochmals Danke,
Grüße und ne schöne Woche.
Ralph
« Letzte Änderung: 20.02.17 - 11:07:33 von Ralph_ »

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #3 am: 20.02.17 - 11:03:30 »
Ich nutze für sowas im queryclose-Event der Dialogbox

die Property "DialogBoxCanceled"

der "notesUIDocument"-Class.

Die gibt einem den gedrückten Knopf zurück, danach kann man machen was man will.

Gruß
Sebastian
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #4 am: 12.03.17 - 21:52:33 »
Hallo Bastel123,

funktioniert das mit dem "DialogBoxCanceled" auch bei eigenen Buttons (Typ "Normal") wirklich?

Bei mir leider nicht (oder mache ich was falsch?).

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #5 am: 13.03.17 - 16:23:11 »
Aus der Hilfe:

Legal values:
- True indicates that the user exited the dialog by clicking Cancel or pressing ESC.
- False indicates that the user exited the dialog by clicking OK.

Daher vermute ich, dass nur die "Normal" Button nicht gehen.

Wenn Du aber nur zwei Schaltflächen hast, so nimm doch die orginalen.

Dann kannst Du alles an einer Stelle abfrühstücken und musst nicht an verschiedenen Stellen suchen.

Sebastian
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #6 am: 13.03.17 - 18:52:28 »
Um Sebastians Beitrag zu bestätigen: NotesUIDocument.DialogBoxCanceled gilt nur für den Standard-Cancel-Buhtong. Wie sollte es auch anders gehen - in eigenprogrammierten Buttons kann ja sonstwas stehen und eine Codeauswertung für die NotesUIDocument-Property findet natürlich nicht statt.

Bernhard

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Dialogbox mit eigenen Buttons läßt sich nicht schließen.
« Antwort #7 am: 14.03.17 - 08:35:21 »
Hallo zusammen,

vielen Dank.

Ich habe natürlich nicht nur die zwei Buttons, die anderen trage aber nichts zu meinem Problem bei.
Nun weiß ich aber dass ich es irgendwie anders lösen muss.

Entweder die Validierung in den Speichern-Butten mit rein, oder ein Flag setzten, dass ich dann im Queryclose auswerte.

Grüße
Martin

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz