Autor Thema: Dialogbox via Button beenden  (Gelesen 7752 mal)

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Dialogbox via Button beenden
« am: 11.10.04 - 11:14:54 »
Griaß eich!

Gibt es eine Möglichkeit aus einem selbstgebastelten Button in einer Dialogbox diese zu schließen ohne zusätzlich auf den OK Button der Dialogbox klicken zu müssen?

lG
« Letzte Änderung: 12.10.04 - 08:40:25 von rar »
†090620141300

klaussal

  • Gast
Re: Dialogbox via Button beenden
« Antwort #1 am: 11.10.04 - 11:35:07 »
... mir ist da nix bekannt.  :'(

klaus

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Dialogbox via Button beenden
« Antwort #2 am: 11.10.04 - 11:41:39 »
Schon probiert mit NotesUIDocument.Close?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dialogbox via Button beenden
« Antwort #3 am: 11.10.04 - 12:16:17 »
Oder:
@Command([FileCloseWindow])

(evtl. davor noch speichern falls man das muss....)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Dialogbox via Button beenden
« Antwort #4 am: 11.10.04 - 12:26:15 »
Das Close geht leider nicht so wie ich will...
Meine Aktion schaut so aus:
Ich erstelle im Backend ein Dokument. Das Dok öffne ich erst mal mit einer Dialogbox, in der sich u.a. der Button befindet. Über den Button kann man mit einer PickListCollection Werte aus einem anderen Dok übernehmen und dann in das neu erstellte Dok schreiben. Dann hol ich mir das neue Dok mit EditDocument ins Frontend
Mit dem uidoc.Close() wird zwar die Dialogbox beendet, aber das EditDocument funktioniert dann auch nicht.
Leider.
†090620141300

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Dialogbox via Button beenden
« Antwort #5 am: 11.10.04 - 12:38:33 »
aber das EditDocument funktioniert dann auch nicht.

was bedeutet das?
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Dialogbox via Button beenden
« Antwort #6 am: 11.10.04 - 13:02:34 »
Der Code, mit dem ich das Dok erstelle und befülle schaut ungefähr so aus:
Set doc = db.CreateDocument()
doc.Form = "mTicket"
Dim resp As Integer
resp = ws.DialogBox( "Dialogmaske", True, True, False, False, False, False, "Titel", doc, True, False)   
If resp = False Then Exit Sub   
Call doc.ComputeWithForm(True,True)
Call ws.EditDocument(True, doc, False)

In der Dialogmaske sind dann ein paar Eingabefelder und der Button mit dem Code:
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set db = session.CurrentDatabase
Set coll = ws.PickListCollection(1,False, db.Server, db.FilePath, "aViewName",_
"Auswahl","Wähl ein Dokument aus" )
Set docWP = coll.GetFirstDocument()
If Not docWP Is Nothing Then
   doc.Wknr = docWP.Wknr
   ..... (Felder übernehmen)
   Call uidoc.Refresh()
   Call uidoc.close()
End If

Ohne das uidoc.Close() (ganz unten) drück ich in der Pickliste auf den OK Button und dann muß ich in der Dialogbox nochmal drauf drücken.
Mit dem uidoc.Close() wird zwar die Dialogbox geschlossen, aber das uidoc.Edit greift nicht weil die Dialogbox nach dem Close ein False (=Abbruch) zurückgibt.
†090620141300

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: Dialogbox via Button beenden
« Antwort #7 am: 11.10.04 - 18:41:53 »
Hi,

ich glaube da wirst du Pech haben, das geht nicht so einfach. Ich habe mal in der Gestaltung einer prof. Anwendung gestöbert. Dort haben die Dialogboxen auch eigenprogrammierte OK- und Cancel-Buttons gehabt. Das war ein ziemlicher Aufstand, den die Programmierer damals gedreht hatten. Da war ein zusätzliches Feld in der Maske, ein User-Profildokument und was weiss ich noch alles (kann mich an die Einzelheiten nicht mehr genau erinnern, ist schon etwas länger her und man wird halt alt  ;) :-\) im Spiel.

Kannst du deinen Dialog nicht etwas umgestalten, z.B. die Auswahl nicht über eine Picklist, sondern über eine Listenfeld, die mit @DbLookup gefüllt wird, machen. so könntest du dann die eigentlichen OK- und Cancel- Buttons benutzen.

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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #8 am: 11.10.04 - 18:45:36 »
Ich denke, das Hauptproblem liegt darin, dass nur der OK-Buhtong die in der Dialogbox gemachten Änderungen davor bewahrt, wegworfen zu werden.
Das mit dem erforderlichen "Aufstand" kann ich bestätigen, Axel  ;D

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Dialogbox via Button beenden
« Antwort #9 am: 11.10.04 - 21:15:03 »
rar: Wie rufst Du denn die Diabox auf? Wenn Du das aus dem PostOpen des Dokumentes machst, also das Dokument im normalen Fenster bereits offen ist, dann dürfte das doch funktionieren, dann musst Du nach dem Close ja keinen weiteren Code mehr ausführen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #10 am: 11.10.04 - 23:07:33 »
rar: Wie rufst Du denn die Diabox auf? Wenn Du das aus dem PostOpen des Dokumentes machst, also das Dokument im normalen Fenster bereits offen ist, dann dürfte das doch funktionieren, dann musst Du nach dem Close ja keinen weiteren Code mehr ausführen.

Das bewahrt ihn nicht vor seinem Problem, Jens: Er will nicht zweimal OK (Picklist und Diabox) klicken lassen, was durchaus nachvollziehbar ist.

Nochmal aber das eigentliche Problem: Das in der Diabox verwendete Box wird im Ur-(Aufruf-)Zustand belassen, wenn nicht die Diabox mit OK geschlossen wird. Das ist zumindest meine Erfahrung (und erscheint mir auch sinnig), aber ich lasse mich da (sehr !) gerne eines Besseren belehren.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dialogbox via Button beenden
« Antwort #11 am: 11.10.04 - 23:39:40 »
Zitat
aber das uidoc.Edit greift nicht weil die Dialogbox nach dem Close ein False (=Abbruch) zurückgibt.

Nur eine Idee: Evtl. könnte man über Property notesUIDocument.DialogBoxCanceled tricksen im QueryClose der Dialogbox und so rausfinden was passiert ist.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #12 am: 11.10.04 - 23:41:45 »
Probier's aus, Matthias: Nur der Click auf "OK" ergibt NotesUIDocument.DialogBoxCanceled = True.

Nochmal: Es würde mich freuen, wenn ich mich irre.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dialogbox via Button beenden
« Antwort #13 am: 11.10.04 - 23:52:26 »
Probier's aus, Matthias: Nur der Click auf "OK" ergibt NotesUIDocument.DialogBoxCanceled = True.

Stimmt.

Andere (wohl bessere) Idee:

RefreshParentNote.

Ich öffne per Script eine Dialogbox, die Dialogbox schließe ich via Button:
@Command( [RefreshParentNote] );
@PostedCommand([FileCloseWindow])

Als Rückgabewert bekomme ich True wenn ich auf den Buthong klicke.

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #14 am: 12.10.04 - 00:03:37 »
Aua - was habe ich da übersehen !

Die gelobte DesignerHelp:
Zitat
Usage
This method is used mainly to create your own buttons to dismiss a dialog box. Mostly used in the QueryClose event.

DANKE, Matthias !!!

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dialogbox via Button beenden
« Antwort #15 am: 12.10.04 - 00:16:03 »
Gern geschehen.
Ich hatte mich mal mit der Thematik hinreichend beschäftigt (OK-Button simulieren, Prüfung ob OK geklickt wurde, etc. etc.).
Gerade auf RefreshParentNote muss man erstmal kommen, da man da - bedingt durch den Namen - erstmal was anderes erwartet.

Habe unten noch ein Beispiel angehängt, weil es mich es interessiert.
Da wird in einer Dialogbox eine Msgbox (Yes / Cancel) aufgerufen. Durch Klick auf "Yes" wird alles geschlossen und Rückgabewert = True.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #16 am: 12.10.04 - 00:20:15 »
DANKE, Matthias.

Ich ziehe mir das morgen früh gleich rein. Ich habe gerade die tage ein Konstrukt "Per Dialogbox eine Options-Möglichkeit auswählen und mit der Auswahl diese übernehmen und Dialogbox schliessen".Klappt natürlich - aber offensichtlich viel zu kompliziert abgefackelt.

Wenn das übertragbar ist, stelle ich das Resultat auch sofort hier wieder zur Verfügung !

Gute Nacht !

Bernhard

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Dialogbox via Button beenden
« Antwort #17 am: 12.10.04 - 08:38:56 »
Als ich den Fred vorhin gelesen habe, wollte ich gleich schreiben, daß ihr euch doch nicht bis Mitternacht damit rumschlagen musstet.
Jetzt hab ich aber Matthias' DB angeschaut und bin sehr froh daß ihr das gemacht habt.
Mit Call ws.RefreshParentNote im Button gehts wie es sollte.  :D

Vielen, vielen Dank euch allen (insbesondere TMC).

lG aus IBK
-daniel
†090620141300

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dialogbox via Button beenden
« Antwort #18 am: 27.10.04 - 16:51:32 »
Ich hatte ja versprochen, hier noch mein "Studienergebnis" kund zu tun. Natürlich funktioniert das von Matthias genannte RefreshParentNote - nur nicht bei mir  ;D
Aber hier ist der Kontext ein anderer: In einer Diabox will ich vom User eine Auswahl (Optionsschaltfläche). Wenn er ausgewählt hat, soll er nicht noch extra auf OK klicken müssen, sondern die Diabox soll gleich zufallen - ich weiss ja, was ich will (bzw. der Nutzer will). Im PostRecalc prüfe ich daher, ob mein Optionsfeld einen Wert hat.
Hier kann ich RefreshParentNote nun nicht einsetzen - das ruft ja selber erstmal PostRecalc auf, und die Katze beisst sich in den Schwanz.

Man kann halt nicht alles haben ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Dialogbox via Button beenden
« Antwort #19 am: 27.10.04 - 20:10:24 »
Hm, schonmal probiert, ob ein Reentry-Flag hilft?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz