Autor Thema: Dialogboxen schliessen?  (Gelesen 1837 mal)

Offline Maverick

  • Aktives Mitglied
  • ***
  • Beiträge: 150
  • Geschlecht: Männlich
  • New day - same shit
Dialogboxen schliessen?
« am: 24.02.05 - 08:18:52 »
Hallo zusammen,

ich würde mal gerne Eure Meinung hören, wie ich in folgender Sache weiterkommen könnte.

Es geht darum, dass ich in aus einer Maske heraus per Schaltfläche eine weitere Maske mittels @Dialogbox öffne. In dieser wird ein dynamisches Feld als Optionsschaltfläche berechnet, der Anwender wählt einen Eintrag aus und startet mittels Schaltfläche ein Script, welches daraufhin eine Suche veranstaltet.

Am Ende der Suche werden die Ergebnisse in einen Ordner gepackt. Um diesen sofort anzeigen zu lassen, bediene ich mich UIws.OpenDatabase, was auch den gewünschten Erfolg bringt.

Was nicht klappt ist, dass ich mit uidoc.Close die Dialogbox schliessen kann. Im Hintergrund poppt der Ordner auf, die Box bleibt im Vordergrund.

Hmmmm?

Dank Euch
Paul
eben war's noch da

Paul    (Server: ja, Clients: zu viele)

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: Dialogboxen schliessen?
« Antwort #1 am: 24.02.05 - 12:26:55 »
Hi,

das sollte eigentlich funktionieren.

Kannst du mal das entsprechende Stück Code posten?

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: Dialogboxen schliessen?
« Antwort #2 am: 24.02.05 - 23:23:24 »
Code wäre sicherlich nicht schlecht. Meine Befürchtung: Der Focus (des aktiven Fensters) steht zur Ausführung des entsprechenden Codes an einer ganz dummen Stelle. Genau da dürfte das Problem liegen: Welche Instanz will welches Fenster schliessen ? Ggf. könnten LS und die Notes-Klassen  da sogar an ihre Grenzen stossen.

Bernhard

Offline Maverick

  • Aktives Mitglied
  • ***
  • Beiträge: 150
  • Geschlecht: Männlich
  • New day - same shit
Re: Dialogboxen schliessen?
« Antwort #3 am: 25.02.05 - 09:31:58 »
Moin,

das Stück Code sieht im Grund genommen so aus. Ich habe mal alles dringelassen.

Geschlossen wird das uidoc. Wenn ich am Anfang des Codes, ein Feld daraus lesen kann, bleibt IMHO innerhalb des Scripts das uidoc doch das uidoc.

Was haltet ihr von @Command([FileClosewindow])?

Nicht, dass ich zu faul bin es selbst zu probieren, komme halt vor dem Wochenende nicht dazu.

Habt Dank :-)

Paul


Zitat


Sub Click(Source As Button)
   
   On Error Goto ErrorHandler
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim ProduktColl As NotesDocumentCollection
   Dim TempColl  As NotesDocumentCollection
   Dim KundenColl As NotesDocumentCollection
   Dim DokumentenDoc As NotesDocument
   Dim ProduktDoc As NotesDocument
   Dim SearchDoc As NotesDocument
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set uidoc = workspace.CurrentDocument
   
   
     'Deklariere und hole Daten aus Such-Dokument
   Set searchdoc = uidoc.Document
   Set SearchDoks = searchdoc.GetFirstItem( "DokSearch" )
   
   If (searchdoc.DokSearch(0) = "") Then
      Failure=Messagebox("Daten sind nicht vollständig !" &Chr(10) ,0+32,"Hinweis")
      Exit Sub
   End If
   
   success=Messagebox("Die Suche kann mehrere Minuten dauern !" &Chr(10)& "Sind Sie sicher ?",4+32,"Hinweis")
   If success =6 Then
      
         'lösche ein altes Suchergebniss
      Print "altes Suchergebniss wird gelöscht ..."
      Set TempColl = db.Search("Form=""Kunde""",Nothing,0)
      If TempColl.Count <> 0 Then  Call TempColl.RemoveAllFromFolder( "Export" )
      
          'SuchParameter als Text
      SearchDoktemp$=SearchDoks.Text
      
      
      'Print "Suche Dokumente"
      searchFormula$ = "Form=""Produkt"" & @IsMember(@explode(""" & SearchDoktemp$ & """ ; "";"");Produkt)"
      Set ProduktColl = db.Search(searchFormula$, Nothing, 0 )
      
      If  ProduktColl.count = 0 Then
         Success= Messagebox ("Es wurden keine Dokumente gefunden",0+16,"Hinweis")
         Exit Sub
      Else
         Success=   Messagebox("Es wurden " & ProduktColl.Count & " Produkte gefunden" &Chr(10)& "",0+64,"Hinweis")
      End If
      
      'Vorbereiten der ErgebnisCollection damit sie vor dem Hinzufügen des ersten Kunden instanziert ist.
      searchFormula$ = "Form=""dummy"""
      Set KundenColl = db.Search(searchFormula$, Nothing, 0 )
      
      'Renne durch alle Produktdokumente
      Set ProduktDoc = ProduktColl.GetFirstDocument
      'Solange es welche gibt
      While Not (ProduktDoc Is Nothing)
         'Und da eine HKT drin ist
         If ProduktDoc.HKT(0)<>"" Then
            'Hol mal die Kundennummer
            Set HKT = ProduktDoc.GetFirstItem( "HKT" )
            'und mach daraus nen string
            hktTemp$ = HKT.Text
            'baue einen Suchstring aus Kunde und HKT
            searchFormula$ = "Form=""Kunde"" & HKT = """ & hktTemp$ & """"
            'Suche alle Kunden mit dieser HKT. Es sollte nur einer sein.
            Set TempColl = db.Search(searchFormula$, Nothing, 0 )
            'Hole das erste Kundendokument. Falls es zwei sind, wird der kunde trotzdem nur einmal gelistet
            Print "Hole Kundendokument dazu."
            Set KundenDoc = TempColl.GetFirstDocument
            'Stecke den Kunde in die KundenColl
            Call KundenColl.AddDocument(KundenDoc)
            Print "Kunde in Ergebniscollection"
         End If
         Print "Hole das nächste Produktdokument."
         Set ProduktDoc = ProduktColl.GetNextDocument(ProduktDoc)
      Wend
      'Stecke die Kunden in den Ordner
      Print "Stecke die Kunden in den Ordner."
      Call KundenColl.PutAllInFolder("Export")
   End If
   'Schliesse das uidoc
   Call uidoc.Close
   'Öffne den Ordner Export
   server$=db.Server
   pfad$=db.FilePath
   Call workspace.OpenDatabase(server$, pfad$, "Export", "", False, False)
   Success = Messagebox("Sie sehen alle Kunden zum Softwareprodukt: " & SearchDoktemp$,0+16,"Ablaufmeldung")
   
ExitScript:
   Exit Sub
   
ErrorHandler:
   Msgbox "Error: " & Err & " - " & Error$ & Chr(10) & Chr(10)_
   & "Line: " & Erl & Chr(10)_
   ,48,"An error occured"
   Resume ExitScript
   
End Sub



eben war's noch da

Paul    (Server: ja, Clients: zu viele)

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: Dialogboxen schliessen?
« Antwort #4 am: 25.02.05 - 09:48:57 »
Hi,

auf den ersten Blick sehe ich nicht auffälliges.

Wo willst du denn @Command([FileClosewindow]) einsetzen?. In Script (über Evaluate) geht das nicht.


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

Offline Maverick

  • Aktives Mitglied
  • ***
  • Beiträge: 150
  • Geschlecht: Männlich
  • New day - same shit
Re: Dialogboxen schliessen?
« Antwort #5 am: 25.02.05 - 10:05:47 »
Siehste,

so gehts mir auch. Ich probier jetzt die Sache mal ganz klein in ner neuen DB.

Hab gestern mit Daniel Nashed gesprochen, der mich auf die Sache mit dem @Command gebracht hat. Seine andere Lösung ist, das Fenster mittels Windowsmitteln (handle auf das window ermitteln, um dem dann die Füsse wegzuziehen) Mal sehen.

Ich melde mich, sobald ich näheres weiss.

Paul
eben war's noch da

Paul    (Server: ja, Clients: zu viele)

Offline Maverick

  • Aktives Mitglied
  • ***
  • Beiträge: 150
  • Geschlecht: Männlich
  • New day - same shit
Re: Dialogboxen schliessen?
« Antwort #6 am: 25.02.05 - 11:02:46 »
Ich brauch euch nicht zu erzählen, dass dieser code funzt.

Raaaahh


Zitat

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set uidoc = workspace.CurrentDocument
   
   Call uidoc.Close
End Sub


eben war's noch da

Paul    (Server: ja, Clients: zu viele)

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: Dialogboxen schliessen?
« Antwort #7 am: 25.02.05 - 18:46:15 »
Hi,

hatte ich auch nicht anders erwartet. Es steht ja auch kein Code zwischendrin, der unter Umständen den Fokus verschieben könnte.

Bernhard hat ja sowas schon angedeutet.

Ich würde jetzt häppchenweise dein Code einfügen und immer wieder testen.


Axel

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz