Laden...

[gelöst] Lotus Notes COM CreateDocument mit Vorlagenmaske?

Erstellt von Tehdny vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.240 Views
T
Tehdny Themenstarter:in
3 Beiträge seit 2010
vor 13 Jahren
[gelöst] Lotus Notes COM CreateDocument mit Vorlagenmaske?

Hallihallo zusammen,

ich habe ein Problem mit meinem C# Tool, welches auf eine Lotus Notesdatenbank zugreifen soll.

Zunächst habe ich es mit NotesSQL als ODBCTreiber versucht, was auch wunderbar funktionierte - bis auf die Tatsache das 32Bit Treiber unter 64Bit Windows 7 Probleme machen für die Microsoft keine Lösung anbietet...

Also habe ich weitergesucht und bin auf den Weg über COM gestolpert - nach ein wenig Recherche kam auch folgender Code zustande:



                NotesSession session = new Domino.NotesSessionClass();

                session.Initialize("pw");

                NotesDatabase db = session.GetDatabase("srv/xxx", "bla.nsf", false);
                NotesDocument entry = db.CreateDocument();

                entry.ReplaceItemValue("Notiz", "test567");
                entry.ReplaceItemValue("Dienst", "Mobiltelefon");

                entry.Save(true, false, false);   

Die beiden Felder Notiz und Dienst sind bereits angelegt. Das Dokument legt er auch sauber an - nur ohne Vorgabenmaske und hier kommt das Problem ins Spiel - in meinen Ansichten filtere ich nach verwendeten Masken, sodass die Dokumente in der richtigen Kategorie erscheinen. Die von dem C# Tool angelegten Dokumente haben aber keine Vorlagenmaske, d.h. ich kann sie weder öffnen noch entsprechend einsortieren. D.h. sie sind nur in einer Ansicht sichtbar die ALLE Dokumente anzeigt, auch die anderer Masken die nicht zu dem Tool gehören.

Nun die Frage - kann ich , und wenn wie, dem mit CreateDocument() erstellten Dokument eine Vorlagenmaske verpassen innerhalb des C# Programmes?

Ich bin für jede Hilfe dankbar

Liebe Grüße

Tehdny

T
219 Beiträge seit 2006
vor 13 Jahren

Das sollte mit

entry.Form="blabla" 

gehen.

Thomas

T
Tehdny Themenstarter:in
3 Beiträge seit 2010
vor 13 Jahren

Domino.NotesDocument enthält keine Definition für "Form", und es konnte keine Erweiterungsmehtode "Form" gefunden werden, die ein erstes Argument vom Typ "Domino.NotesDocument" akzeptiert".

Scheint leider nicht zu gehen 😦

T
219 Beiträge seit 2006
vor 13 Jahren

Dann versuch mal

entry.ReplaceItemValue("Form", "BlaBla");

"BlaBla" muß in der NotesDatabase existieren.

Thomas

T
Tehdny Themenstarter:in
3 Beiträge seit 2010
vor 13 Jahren

Jap, das hat funktioniert.

Besten Dank 😃

Gruß

Tehdny

P.S. auch hier gab es mit dem fertigen Programm Probleme mit 64 Bit, die Interop.Domino.dll muss von Hand in die Registry eingetragen werden (einfach mal googlen) und das Programm mit corflag.exe im PE-Header als 32 Bit manipuliert werden - falls jemand auf dem selben Weg ist wie ich 😉