Domino 9 und frühere Versionen > ND7: Entwicklung

EditDocument sehr langsam

(1/2) > >>

botschi:
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

Lossa:
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.

klaussal:
Die Kristallkugel ist leider etwas beschlagen.... :-:

Mehr Input = mehr Output !

umi:
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?

botschi:
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.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln