C#을 통해 Lotus Notes에서 현재 열려있는 문서를 가져 오는 방법을 알아 내려고하고 있지만 그럴 수 없습니다. 나는 구글에서 반나절을 연구했지만 유용한 것을 찾을 수 없었다.현재 열려있는 문서 가져 오기
필자가 작성한 코드를 사용하면 원하는 데이터베이스, 원하는 데이터베이스 등을 얻을 수 있지만 열린 문서를 얻고 싶습니다. 나는 IsUIDocOpen과 같은 것을 시도했지만, 전체 콜렉션 중 어느 것도 사실이 아니다.
열린 문서와 열린 문서 트로프 Domino API간에 다른 것이 있는지 아는 사람이 있습니까? 내 해결 방법은 이메일 제목과 이메일 크기를 비교하고 각각을 비교하여 일치 할 때 항목 ID를 얻고 필요한 정보를 얻는 것입니다.하지만 너무 길어집니다. 특히받은 편지함이 클 때 특히 그렇습니다.
제안 사항?
NotesSession session = new NotesSession();
session.Initialize(sPassword);
notedb = session.GetDatabase(server, filename, false);
if (notedb.IsOpen)
{
mailView = notedb.GetView("$Inbox");
mailDoc = mailView.GetLastDocument();
//mailDoc = mailView.GetDocumentByKey();
try
{
while (mailDoc != null)
{
NotesItem item = mailDoc.GetFirstItem("From");
if (item != null)
{
MessageBox.Show("From = " + item.Text);
}
}
}
}
해결 방법 : 다음
내 코드입니다mailDoc = mailView.GetCurrentDocument();
그러나 분명히이 방법은 존재하지 않습니다 // : 같은 것을해야한다 D
=========== ========================================================================================================== ======================== 솔루션 코드 :
Type NotesUIWorkspaceType = Type.GetTypeFromProgID("Notes.NotesUIWorkspace", true);
object workspace = Activator.CreateInstance(NotesUIWorkspaceType);
object uiDoc = NotesUIWorkspaceType.InvokeMember("CurrentDocument", BindingFlags.GetProperty, null, workspace, null);
Type NotesUIDocument = uiDoc.GetType();
object Subject = NotesUIDocument.InvokeMember("FieldGetText", BindingFlags.InvokeMethod, null, uiDoc, new Object[] { "Subject" });
string subject = "test";
NotesUIDocument.InvokeMember("FieldSetText", BindingFlags.InvokeMethod, null, uiDoc, new Object[] { "Subject", subject });
object Body = NotesUIDocument.InvokeMember("FieldGetText", BindingFlags.InvokeMethod, null, uiDoc, new Object[] { "Body" });
Domino API 또는 Lotus Notes Interop COM 클래스를 사용하고 있습니까? Domino를 사용 중이라면 Lotus Notes 프로그램이 아닌 Domino 서버의 데이터베이스에 액세스 할 수 있습니다. –
Lotus Notes Interop COM 클래스는 어디에서 찾을 수 있습니까? 감사합니다. – peterpeterson
여기를보십시오. http://www.ibm.com/developerworks/lotus/library/domino-msnet/index.html. VB.Net 용이지만, C#에서는 올바르게 기억하면 클래스를 만들 수있는 네임 스페이스의 래퍼 클래스에 액세스 할 수 있습니다. –