Domino 9 und frühere Versionen > ND8: Entwicklung
Profildokument - erstmaliges öffnen/anlegen
magic_halli:
Hi,
ich habe eine Aktionsschaltfläche 'Optionen' im Posteingang. Wenn der User diese klickt, geht eine Maske auf, wo er Daten eingeben kann. Gleichzeitig wird beim Klick ein userspez. Profildokument angelegt, in welches die Maskeneingaben nachher gespeichert werden.
Code hinter dieser Aktionsschaltfläche 'Optionen':
--- Code: ---REM {öffnet Maske "AFPS-ExportOptionen" und legt gleichzeitig userspezifisches Profildokument an};
@Command([EditProfileDocument]; "AFPS-ExportOptionen"; @UserName)
--- Ende Code ---
In der Maske selbst, wird im QueryOpen auf das Profildokument zugegriffen und verschiedene Werte ausgelesen und verarbeitet.
--- Code: ---Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim item As NotesItem
Dim views As Variant
Set db = session.CurrentDatabase
Set doc = db.GetProfileDocument("AFPS-ExportOptionen", session.UserName)
' doc verwende ich dann weiter, um auf Items etc. zuzugreifen
--- Ende Code ---
Ich erhalte beim erstmaligen Aufruf der Maske jedoch eine Mitteilung: "Object variable not set."
Danach geht die Maske trotzdem auf. Wenn ich dann in der Maske auf 'Speichern und Schließen' gehe, wird das Profildokument ja erst gespeichert und ist somit immer existent... die Mitteilung erscheint nie wieder.
Wenn ich jedoch 'Abbrechen' klicke, wird ohne speichern die Maske geschlossen und die Mitteilung erscheint beim nächsten Aufruf wieder.
Wie kann ich diesen Effekt umgehen? ...ich dachte mir vielleicht sowas wie 'if doc.exist' oder ähnlich. Was gibts da?
Danke und Gruß
Rico.
DAU-in:
Ich denke, das Dokument wird erst als Frontenddokument angelegt, daher ist beim ersten Zugriff das Backenddokument noch nicht vorhanden.
wenn du mit 'IsNewdoc' abfragst, hilft das dann?
edith:
Read-only. Indicates whether a document is new. A new document is one that hasn't been saved.
Defined in
NotesUIDocument
Data type
Boolean
Syntax
To get: flag = notesUIDocument.IsNewDoc
muenzpraeger:
Hi!
Poste doch mal Dein Script bis zur Fehlerstelle. Weiter wäre dann noch die Info gut, welchen Wert die einzelnen Objekte der Fehlerzeile haben...
HTH
René
Thomas Schulte:
Nicht ganz richtig, Xanthi.
Das Problem liegt wohl eher da drin, das Rico sofort versucht auf das Profildokument zuzugreifen und das Doc zu nutzen.
Wenn es aber noch kein Profildokument gibt, dann liefert das hier
--- Code: ---Set doc = db.GetProfileDocument("AFPS-ExportOptionen", session.UserName)
--- Ende Code ---
Nothing zurück. Und dann MUSS es bei seinem ersten Zugriff auf zum Beispiel ein Item zwangsläufig scheppern. Das er das ja tut hat er im letzten Teil seines Codes erwähnt.
Das die Maske trotzdem aufgeht scheint an Notes 8 zu liegen. In mancher Beziehung ist es, was so etwas angeht, scheinbar fehlertoleranter als vorhergehende Versionen.
koehlerbv:
Die Maske des ProfileDocs wurde unter diesen Umständen schon unter R4 geöffnet, Thomas. Das QueryOpen meckert (siehe hierzu auch diesen Thread von heute http://atnotes.de/index.php?topic=43613.msg280031#msg280031) und ohne Continue = False werden dann auch die nächsten Events ausgeführt.
Rico, wollt Ihr Euch nicht mal professionelle Hilfe für den Start ins Haus holen? Ihr wollt ja auch offensichtlich ein professionelles Produkt auf die Beine stellen. Du stocherst aber immer nur herum, scheinbar findest Du dann auch eine Lösung - aber Du kannst immer noch Meilen davon entfernt sein, wie man sowas jeweils am besten bzw. überhaupt richtig in Notes angeht. Ein Forum ist bei dieser Sache überfordert (weswegen ich mich hier auch meistens heraus halte).
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln