我正在寫一個程序,檢查預約的前景,基本上我只需要當前的任命 - 如果當前沒有預約,然後就在旁邊,甚至以前的預約。檢索當前Outlook約會
我想這樣做我需要使用[restrict method] [1]來限制約會集合,然後根據restrict參數選擇第一個或最後一個約會(例如,僅限於約會結束在當前時間之後,或者僅在當前時間之前開始約會)。 我在作爲參數需要的字符串過濾器方面遇到了很多麻煩。
一個簡單的例子VB(代碼殘端)如下([源] [2])
myStart = Format(Date, "mm/dd/yyyy hh:mm AMPM")
strRestriction = "[Start] <= '" & myStart & "'"
'Restrict the Items collection
Set oResItems = oItems.Restrict(strRestriction)
'Sort
oResItems.Sort "[Start]"
但是,試圖做同樣在C#似乎並不奏效。
// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace and Logon information.
// Outlook.NameSpace oNS = (Outlook.NameSpace)oApp.GetNamespace("mapi");
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
//Log on by using a dialog box to choose the profile.
oNS.Logon(Missing.Value, Missing.Value, true, true);
// Get the Calendar folder.
Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
// Get the Items (Appointments) collection from the Calendar folder.
oItems = oCalendar.Items;
oItems.IncludeRecurrences = true;
// THIS IS THE PROBLEM AREA
String filter = "[Start] <= '" + DateTime.Now.ToString("MM/dd/yyyy hh:mm AMPM") + "'";
Outlook.Items restrictedItems = oItems.Restrict(filter);
// Take the last item on the list - should be current or next appointment
restrictedItems.Sort("[Start]");
Outlook.AppointmentItem oAppt = restrictedItems.GetLast();
// Done. Log off.
oNS.Logoff();
首先,我想,因爲所述過濾器是一個字符串,日期格式必須是YYYY/MM/DD hh:mm:ss的?我似乎無法找到如何操作[開始],喜歡它解析爲一個日期或東西的任何文檔(我嘗試了各種各樣的事情,但沒有任何工程)。根據我使用的日期格式,我將在得到錯誤的約會,否則程序將無法使用GetLast由於不包括所有約會的過濾器。我已經看到幾個人聲稱他們已經開始工作的例子,但他們要麼循環約會(效率太低),要麼日期格式看起來像他們不能被信任返回正確的任命(好像是這個傢伙social.msdn.microsoft.com/Forums/en-US/vsto/thread/c6a8bd21-6534-43be-b23e-1068651da92e,誰也似乎如果使用已經硬編碼的日期,而不是DateTime.Now ..)
更新:我決定我不想浪費更多時間來嘗試工作的限制角度,所以我目前只是循環如下所示,但任何建議更有效的代碼非常歡迎。
DateTime currentTime = DateTime.Now;
foreach (Outlook.AppointmentItem item in oItems)
{
if (item.Start <= currentTime && item.End.Subtract(new TimeSpan(0, 10, 0)) > currentTime)
{
appointmentArrayList.Add(item);
}
}
非常感謝!一切似乎都像現在一樣工作。似乎我忘記了M的月份:S – Madsn 2011-02-19 23:54:16