AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
25.05.12 - 20:35:37
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 8
| |-+  ND8: Entwicklung (Moderatoren: Axel, Thomas Schulte, koehlerbv)
| | |-+  Profildokument - erstmaliges öffnen/anlegen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Profildokument - erstmaliges öffnen/anlegen  (Gelesen 1560 mal)
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« am: 17.12.08 - 16:51:27 »

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)

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
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.
Gespeichert

Lotus Notes 8.0.2
DAU-in
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Weiblich
Beiträge: 1066


- unterwegs -


« Antworten #1 am: 17.12.08 - 17:19:07 »

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
Gespeichert

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse
Münzpräger
Junior Mitglied
**
Offline Offline

Geschlecht: Männlich
Beiträge: 58

all about lotus stuff


« Antworten #2 am: 17.12.08 - 21:13:41 »

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é
Gespeichert

Domino-Server 8.0.2
Notes-Clients 8.0.2 auf WinXP
Sametime 8.0.2
BlackBerry Enterprise Server 4.1.6 MR2
Thomas Schulte
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 4176


Ich glaub mich tritt ein Pferd


WWW
« Antworten #3 am: 17.12.08 - 21:15:34 »

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)
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.
Gespeichert

Thomas Schulte

Lotus Domino V7.0.2/V6.5.3 Server + Clients, Server OS Linux, Win2000/2003, Clients 2000/XP Linux
PCLP R4, R5
Websphere Application Server, Quickplace, Sametime

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19053



« Antworten #4 am: 17.12.08 - 23:22:45 »

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
Gespeichert
lildjäiy
Frischling
*
Offline Offline

Beiträge: 9


« Antworten #5 am: 07.09.10 - 17:00:25 »

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)
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.


Bei mir erzeugt der genannte Code ein Profildokument auch wenn es nicht existiert hat zuvor.

Die Hilfe sagt dazu:
"Retrieves or creates a Profile document."

Wie kann man in einer DB prüfen, ob ein Profildokument existiert ohne es automatisch dabei anlegen zu müssen?
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19053



« Antworten #6 am: 07.09.10 - 18:13:38 »

NotesDatabase.GetProfileDocCollection

HTH,
Bernhard
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig