Domino 9 und frühere Versionen > ND8: Entwicklung

Set view = uiview.View (object variable not set)

(1/2) > >>

booltrue:

Wenn ich den folgenden Code im Queryopen Event oder Queryclose Event aufrufe, bekomme ich immer
die Fehlermeldung "object variable not set", d.h. uiview ist null.
Die Fehlermeldung kommt immer, wenn zwischen Views gewechselt wird.

Im Postopen Event kommt die Fehlermeldung nur ab und zu, dann aber beim Starten der DB.

In einem dieser Events benötige ich aber den Code.
Wo kann uiview noch initialisiert werden, oder woran liegt es?


Dim view As NotesView
Dim uiview As NotesUIView
Set uiview = uiworkspace.CurrentView
Set view = uiview.View

Klafu:
Wenn du beim öffnen einer Datenbak schon die CurrentView willst, dann ist die ja sicher bekannt, welche Notes öffnen wird.
Hol sie doch lieber gleich direkt.


--- Code: ---Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Set db = session.CurrentDatabase
Set view = db.GetView( "Authors" )
--- Ende Code ---


P.S. Ist es Absicht, dass in deinem Codeschnippsel das Dim uiworkspace As New NotesUIWorkspace fehlt?

Chris

booltrue:

Ja, da hast du ganz recht.
Ich mach' das immer ziemlich generisch, ist aber nicht immer angebracht bei Notes  :)
Die View ist ja schon bekannt, habe das nun auch so umgesetzt.

Dim uiworkspace As New NotesUIWorkspace hat es wohl nicht mitkopiert  :-:
das sollte da aber schon stehen.

Der Code steht im Queryopen event.
Am Schluß rufe ich Call uiworkspace.ViewRebuild auf.
Bekomme hier aber immer beim Öffnen(und nur beim Öffnen) der Datenbank folgenden Fehler:
"Der angegebene Befehl ist vom Arbeitsbereich aus nicht verfügbar"

Woran liegt das?

Peter Klett:
Das ist vermutlich zu früh, ist ja QueryOpen, also vor dem Öffnen. Prüfe mal, ob Du das Rebuild überhaupt brauchst, ansonsten ins PostOpen verlagern

EDIT: ist vermutlich Quatsch. Im welches QueryOpen handelt es sich? Das der Ansicht oder des Dokuments?

booltrue:

Es handelt sich um das QueryOpen Event der Ansicht und ja, es scheint dafür zu früh zu sein.
Ich habe den Code nun ins QueryClose Event verschoben, sollte aber auch im Postopen Event laufen, ja

Was ich mache:
Ich habe im View 3 Buttons zum Filtern der Ansicht,
dort wird folgender Code ausgeführt, der die Ansichtsauswahl-Formel ändert:
NewViewFormula = |SELECT Form = "form" & Spalte1 = "x" & Spalte2 ="y"|
view.SelectionFormula = NewViewFormula
Call uiworkspace.ViewRebuild

Der gleiche Code wird im QueryClose Event aufgerufen, um die Ansichtsauswahl-Formel wieder in den Ursprungszustand zu ändern.
Wenn ich dort kein .ViewRebuild mache, dann bleibt der Filter beim Wechsel der Ansicht und beim Neustart der Datenbank erhalten.


Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln