整合議題是必須的再出現Google日曆之後常常會有高層主管想要做整個,那我們就來看看如果用CSharp日如何將資料寫入Notes日曆.
我們測試一下跟Notes日曆的互通性,測試成功就可做同步整合的方案囉.
Step01:執行測試程式
Step02:成功寫入訊息
Step03: 查看Notes日曆資料
using System;
using System.Windows.Forms;
//This DLL you've got to add under Projekt-> Add Reference --> COM Tab --> Lotus Domino Objects
//Standard Path for this DLL is: "C:\Program Files\Notes\domobj.tlb"
using Domino; //domobj.tlb*
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//try&catch
try
{
//-------------------------------------------
//!!Important!!
//Befor you start, you have to check 2 things
//1.) Lotus Notes has to run when you start this application
//2.)The files "notes.ini" and "user.id"
//("user" stands for your username) have to be in the folder
// "C:\Program Files\Notes" or "C:\Program Files\IBM\Notes"
//--------------------------------------------
//First, create a new Lotus Notes Session Object
Domino.NotesSession LNSession = new Domino.NotesSession();
//Next add a Database and a Document Object (not new)
Domino.NotesDatabase LNDatabase;
Domino.NotesDocument LNDocument;
//Initialize your Session with your Password
//LNSession.Initialize("password");
LNSession.Initialize("");
//Connect to your Notes Server and the path of your
//.nsf File (in my case its in a subfolder 'mail').
//LNDatabase = LNSession.GetDatabase("Notes-Server", "mail\\user.nsf", false);
//Create an in memory document in the server database
LNDocument = LNDatabase.CreateDocument();
//-------Assign Field Values-------
//Define Start&End Date+Time of your appointment
//Year, Month, Day, Hour, Minute and Second
System.DateTime StartDate = new DateTime(2011, 11, 23, 8, 2, 0);
System.DateTime EndDate = new DateTime(2011, 11, 24, 8, 5, 0);
//This Defines that it is an Calendar Entry
LNDocument.ReplaceItemValue("Form", "Appointment");
//Type of the appointment, means:
LNDocument.ReplaceItemValue("AppointmentType", "0");
//0 = Date, Appointment
//1 = Anniversary
//2 = All Day Event (Do Not Set Time Here!)
//3 = Meeting
//4 = Reminder
//5 = Date (Special, experimental!)
// Title of your entry
LNDocument.ReplaceItemValue("Subject", "hello KAKASHI");
// Set Confidential Level (Public=1 or Private=0)
LNDocument.ReplaceItemValue("$PublicAccess","1");
//Add Start&End Time of your event
LNDocument.ReplaceItemValue("CALENDARDATETIME", StartDate);
LNDocument.ReplaceItemValue("StartDateTime", StartDate);
LNDocument.ReplaceItemValue("EndDateTime", EndDate);
LNDocument.ReplaceItemValue("StartDate", StartDate);
LNDocument.ReplaceItemValue("MeetingType", "1");
//Infos in The Body
LNDocument.ReplaceItemValue("Body", "Body Text Body Text ...");
//Add an alarm to your appointment
LNDocument.ReplaceItemValue("$Alarm", 1);
LNDocument.ReplaceItemValue("$AlarmDescription", "hello KAKASHI (alarm)");
LNDocument.ReplaceItemValue("$AlarmMemoOptions", "" );
//5 = Time (in minutes) before alarm goes on
LNDocument.ReplaceItemValue("$AlarmOffset", 5);
LNDocument.ReplaceItemValue("$AlarmSound", "tada");
LNDocument.ReplaceItemValue("$AlarmUnit", "M");
//This saves your Document in the Notes Calendar
LNDocument.ComputeWithForm(true, false);
LNDocument.Save(true, false, false);
//On success, you'll see an info message;
MessageBox.Show("Calendar Entry Successfully Added!", "Info",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception e1)
{
//On error you'll see an error message
MessageBox.Show(e1.Message);
}
}
}
}
資料來源
http://stackoverflow.com/questions/9058478/access-calendar-data-lotus-notes-c-sharp