Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ThomasM am 29.07.04 - 13:21:42
-
Hallo,
ich habe folgendes problem:
Im Initialize des ersten Feldes im Form werden einige Verarbeitungen durchgeführt.
Unter Notes 5 ist es kein Problem, mit Notes 6 wird das currentdocument vom uiws nicht gefüllt.
Anbei einen Teil des scripts.
Sub Initialize
Dim nss As New NotesSession
Const NotesMacro$ = |@IsMember("[Test]";@UserRoles)|
Dim uiws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim Result As Variant, vaList As Variant
Set ndb = nss.currentdatabase
Set doc= uiws.currentDocument.Document
In der zip Datei seht Ihr den Debugger vom Notes 6 und vom Notes 5.
Ich hoffe Ihr habt eine Lösung.
Thomas
-
... und wo ist der Dim für "ndb".....?
-
evtl hilft ein zwischenschritt über das Notesuidocument anstatt direkt von der session das dokument zu holen.
-
... und wo ist der Dim für "ndb".....?
Global definiert !
-
evtl hilft ein zwischenschritt über das Notesuidocument anstatt direkt von der session das dokument zu holen.
Wie komme ich auf das uidoc ? über uiws.CurrentDocument !
-
... das läuft hier unter LoNo6 + R5 :
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = ws.currentDocument
Set doc = uidoc.document
Set db = session.currentDatabase
-
... das läuft hier unter LoNo6 + R5 :
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = ws.currentDocument
Set doc = uidoc.document
Set db = session.currentDatabase
Hallo Klaus,
vielen Dank für Deine rasche Antwort, leider funktioniert
es bei mir nicht mit Deinem Code (N6 6.5.2)
(siehe attachment)
Thomas
-
Ich kann es reproduzieren, allerdings funktioniert es in R5 nur, wenn ich auch im Event Initialize oder Queryopen der Maske Scriptcode habe.
Habe ich in diesen Events keinen Code, erhalte ich auch in R5 einen Fehler - Object variable not set.
Unter R6 bekomme ich immer einen Fehler.
Das ganze ich schon merkwürdig.
Das Initialize eines Feldes wird zwischen QueryOpen und PostOpen der Maske ausgeführt.
Folgender Workaround:
In den (Globals) der Maske unter
(Declarations)
dim uidoc as NotesUIDocument
Im Queryopen der Maske
set uidoc = Source
Dann im Initialize des Feldes:
Sub Initialize
Dim nss As New NotesSession
Const NotesMacro$ = |@IsMember("[Test]";@UserRoles)|
Dim doc As NotesDocument
Dim Result As Variant, vaList As Variant
Set doc= uidoc.Document
...
Ich nutze die Initialize Events fast nie. Nur in Script-Libraries, um "variable Konstanten" zu setzen.
Andreas
-
Hallo Andreas,
danke für Deinen Tip, es funktioniert.
Ist natürlich schon komisch. Wir Haben noch
zusätzlich einen PMR aufgemacht, mal schauen was Lotus
dazu sagt.
Thomas
-
Wir Haben noch
zusätzlich einen PMR aufgemacht, mal schauen was Lotus
dazu sagt.
Mal in die Kristallkugel schauen.... "Work's as designed" ;D
Andreas
-
Hallo Andreas,
"Work's as designed"
Nicht ganz, aber eine schnelle Lösung ist abhängig vom Bussiness Impact für meine Firma.
Also je grösser desto besser !
Thomas