Autor Thema: Problem mit DialogBox  (Gelesen 1476 mal)

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Problem mit DialogBox
« am: 06.04.05 - 11:49:39 »
Mahlzeit zusammen,

- Der Benutzer klickt einen button und über
    Call gworkspace.DialogBox("frmTeilnehmer2",True,True,True,False,False,False,"Teilnehmer auswählen",,True)
   wird eine DialogBox aufgerufen. Ich habe nun das Problem, daß ich nicht weiß, ob innerhalb der aufgerufenen DialogBox Änderungen vorgenommen wurde oder nicht. Und deshalb erscheint z.Z. immer der Dialog "Do you want to save your changes?". Weiß jemand wie ich im aufrufenden Dokument ein Flag setzen kann, falls in der DialogBox etwas geändert wurde?

Hier etwas code:

Sub Click(Source As Button)
   
  On Error Goto myerrhandle
   
  If guidoc.EditMode Then
    Call gworkspace.DialogBox("frmTeilnehmer2",True,True,True,False,False,False,"Teilnehmer auswählen",,True)
    guidoc.Refresh
    //...
    gdoc.SaveOptions = "1"
    gdoc.TerminTeilnOK = "1"
  else
     Call gworkspace.DialogBox("frmTeilnehmer2",False,False,False,False,False,True,"Teilnehmer auswählen")
  end if

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit DialogBox
« Antwort #1 am: 06.04.05 - 12:21:57 »
Hi,

wenn ich das richtig sehe, werden die Werte in das darunterliegende geöffnete Dokument übernommen. Wenn das Dokument dann geschlossen wird, kommt,wenn über den Dialog was gändert wurde, die Speicheraufforderung. Wenn nichts geändert wurde, dann kommt diese Aufforderung auch nicht. Oder sehe ich da was falsch.


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

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: Problem mit DialogBox
« Antwort #2 am: 06.04.05 - 13:06:19 »
Hi,

in einem Kalender Doppelklicke ich auf einen Termin. In der Terminmaske
klicke ich dann auf den Button zur Teilnehmerauswahl.
Also nach dem Klick auf den Button und folgender Aktion:

                          DialogBox
                                  |         Terminmaske
                                  |              |
1) keine Änderung, <ESC>, <ESC>    -> "Do you want to save.."-Dialog (falsches Verhalten, da ja nichts geändert wurde)
2) keine Änderung, <OK>,   <ESC>    -> ...-Dialog (ebenfalls falsch)
3) Änderung,          <ESC>,  <ESC>    -> ...-Dialog (korrektes Verhalten)
4) Änderung,          <OK>,    <ESC>    -> ...-Dialog (korrektes Verhalten)


s.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit DialogBox
« Antwort #3 am: 06.04.05 - 13:41:58 »
Hi,

ich denke mal, dass irgendwas in dem Dokument, durch den Aufruf der Dialogbox geändert wird.

Du könntest bei Öffnen des Dokumentes alle Feldinhalte auslesen und beim Beenden einen Vergleich durchführen. Wenn Unterschiede sind, dann wurde das Dokument geändert, sonst setzt du SaveOptions auf "0".


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

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: Problem mit DialogBox
« Antwort #4 am: 06.04.05 - 15:03:31 »
Hi,

Call workspace.DialogBox(...) liefert ja "TRUE" zurück, wenn die Dialogbox beendet wurde, gibt es denn auch eine Möglichkeit einen Wert zurückzugeben in Abhängigkeit, ob innerhalb der Dialogbox etwas geändert wurde?

In dem aufrufenden Dokument wird immer etwas geändert so wie es aussieht, ich möchte allerdings "gdoc.SaveOptions" setzen, je nachdem, ob in der aufgerufenen DialogBox Änderungen durchgeführt wurden oder nicht.


s.

Glombi

  • Gast
Re: Problem mit DialogBox
« Antwort #5 am: 06.04.05 - 15:06:06 »
Du musst die Werte beim Öffnen der Dialogbox 
speichern und dann mit denen beim Verlassen vergleichen.

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
Re: Problem mit DialogBox
« Antwort #6 am: 06.04.05 - 15:11:00 »
Call workspace.DialogBox(...) liefert ja "TRUE" zurück, wenn die Dialogbox beendet wurde, gibt es denn auch eine Möglichkeit einen Wert zurückzugeben in Abhängigkeit, ob innerhalb der Dialogbox etwas geändert wurde?

Nein, True wird zurückgegeben wenn der Dialog mit OK beendet wurde. Bei Abbrechen ist der Rückgabewert False.

Was du versuchen könntest ist folgendes.

Im QueryOpen-Event weist du alle Feldinhalte Variablen zu. Im QueryClose-Event vergleichst du dann die aktuellen Feldinhalte und die Variablen miteinander. Wenn Unterschiede sind setzt du dann ein Feld. Diese Feld kannst du dann auswerten.


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

Offline littleS

  • Junior Mitglied
  • **
  • Beiträge: 78
Re: Problem mit DialogBox
« Antwort #7 am: 06.04.05 - 15:12:41 »
hi,

ja ich werde das so mal probieren.
Danke erstmal, mehr dazu morgen früh :)

s.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz