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
Das sollte mit
entry.Form="blabla"
gehen.
Thomas
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 😦
Dann versuch mal
entry.ReplaceItemValue("Form", "BlaBla");
"BlaBla" muß in der NotesDatabase existieren.
Thomas
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 😉