Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: botschi am 09.10.06 - 15:32:15

Titel: EditDocument sehr langsam
Beitrag von: botschi am 09.10.06 - 15:32:15
Hallo,

ich bastel mir ein Dokument zusammen und will es über einen Knopf in einer Ansicht anzeigen. Das Dok wird nicht gespeichert, sondern soll lediglich zur Anzeige gebracht werden.
Das geht auch.

Wenn ich das Dokument mit
dialogbox = ws.DialogBox("frm_Stundenuebersicht",True,True,False,True,True,True,"Meine Stundenübersicht", curdoc,True)   öffnen will, dauert es sehr lange. Bis zu 3 Minuten. Alle vorherigen Zeilen werden sehr schnell abgearbeitet, aber die Dialogbox ist sehr langsam.
Auch wenn ich das Dokument über
Call ws.EditDocument(False,curdoc, True)
öffne, dauert es sehr lange.
Kennt jemand einen Rat, wie ich das schneller öffnen kann? Liegt es am Workspace?
Mittlerweile interessiert mich nur, wie ich es schneller machen kann und nicht die Ursache... Die User beschweren sich bei mir und ich muss gestehen auch nicht zu unrecht >:(

Danke für Rat!

Gruss, Matthias
Titel: Re: EditDocument sehr langsam
Beitrag von: Lossa am 09.10.06 - 15:39:16
Hi,

um mehr sagen zu können müssen wir schon wissen was du in dem Dokument machst?
Wenn du z.B. viele viele Lookups machst dann dauern die auch entsprechend lange. Das oder aber auch etwas ganz anderes könnte das Problem sein.

Bitte  beschreibe mehr.
Titel: Re: EditDocument sehr langsam
Beitrag von: klaussal am 09.10.06 - 15:59:40
Die Kristallkugel ist leider etwas beschlagen.... :-:

Mehr Input = mehr Output !
Titel: Re: EditDocument sehr langsam
Beitrag von: umi am 09.10.06 - 16:37:26
Hat Dein Form evtl. viele @Dblookup/@DBColumn Felder drin (z.B. in Auswahllisten oder Dialogboxen?)
Wenn Du das Form nicht in der Dialogbox öffnest, wie siehts da aus?
Titel: Re: EditDocument sehr langsam
Beitrag von: botschi am 09.10.06 - 17:03:41
Das ist mein Code:

Dim ws As New NotesUIworkspace
   Dim s As New NotesSession
   Dim curdoc As notesdocument
   Dim db As notesdatabase
   Dim dialogbox As Variant
   Set db = s.CurrentDatabase
   
   Set curdoc = db.CreateDocument
   curdoc.form = "frm_Button_Stundenuebersicht"
   
   Dim Arbeitsmonat As notesdocument
   Dim ArbeitsmonatView As NotesView
   Dim Monat As String
   
   Call monat_ermitteln(Monat)
   
   Set ArbeitsmonatView = db.GetView("viwArbeitsmonat_alle")
   Set Arbeitsmonat = ArbeitsmonatView.GetDocumentByKey(s.CommonUserName & Monat & Cstr(Year(Today)), True)
   
   Call Arbeitsmonat.CopyAllItems(curdoc, True)
   curdoc.Sollbisgestern = curdoc.arbeitstagebisheute(0) * curdoc.stundenkraft(0)
   curdoc.StundenMonat =    curdoc.Iststunden(0) - curdoc.Sollbisgestern(0)
   curdoc.Gleitzeitsaldo = curdoc.StundenBeginnMonat(0) + curdoc.StundenMonat(0)
   
   dialogbox = ws.DialogBox("frm_Arbeitsmonat_Stundenuebersicht",True,True,False,True,True,False,"Meine Stundenübersicht", curdoc,True)   

Über einen Knopf in der Ansicht wird dieser Code ausgeführt. Die DB ist relativ gross (ca 5 GB).
Die Maske hat nur Felder, die berechnet zur Anzeige sind.
Titel: Re: EditDocument sehr langsam
Beitrag von: Lossa am 09.10.06 - 17:05:31
Hi,

und die Felder berechnen was???
Sich selber?!
Titel: Re: EditDocument sehr langsam
Beitrag von: botschi am 09.10.06 - 17:06:32
Ja, die berechnen sich selber.
Ich kann da aber auch bearbeitbare Felder draus machen, da das Dok eh nicht bearbeitbar sein soll.
Titel: Re: EditDocument sehr langsam
Beitrag von: Lossa am 09.10.06 - 17:23:46
Hi,

wenn du debuggst, dann habe ich das richtig verstanden, das alles in einem Rutsch durchläuft bis zum Codeteil wo der Dialog aufgerufen wird!?

Oder hängt das an der Ansicht?
Warum kannst du nicht die Bezugsdatenbank verkleinern 5GB ist ja schon ein ganzer Haufen, können dort nicht auch Dokumente weg archiviert werden?
Titel: Re: EditDocument sehr langsam
Beitrag von: botschi am 10.10.06 - 10:37:02
Richtig, beim debuggen läüft alles zügig, bis zum Aufruf der Dialogbox.
Die Ansicht ist so eingestellt, dass der Index sich manuell aufbaut. Aber auch aus anderen Ansichten heraus dauert es lange.

Ende des Jahres wird ein Grossteil der Dokumente archiviert, vielleicht geht es dann ja etwas schneller...
Titel: Re: EditDocument sehr langsam
Beitrag von: botschi am 26.10.06 - 08:59:50
Wir haben die Ursache gefunden, warum sich die Dialogbox so schleppend öffnet.

Es gab eine relativ grosse Hide-When-Formel mit @DBLookup, die aber NICHT aktiviert war. Wir haben sie damals extra nicht entfernt, sondern nur den Haken, falls sie doch noch relevant wird irgendwann.

Ich habe nicht gewusst, dass Hide-When-Formeln auch ausgeführt werden, wenn sie deaktiviert sind!
Jedenfalls rennt das Ding jetzt  ;D