Tôi đã viết mã này để tìm ra tổng thời gian của tất cả các cuộc hẹn của một thể loại nào đó trong một phạm vi thời gian quy định:hẹn Lọc Outlook theo thể loại
private readonly MAPIFolder _timing;
private int CalculateTotalDuration(DateTime start, DateTime end, string category)
{
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Categories] = '{2}')",
start, end, category);
return _timing.Items.Restrict(filter).Cast<AppointmentItem>().
Sum(appt => appt.Duration);
}
Mã này kết quả trong ngoại lệ sau khi được sử dụng với phiên bản tiếng Nga của Outlook (tôi không thử nghiệm nó với phiên bản tiếng Anh mặc dù):
System.Runtime.InteropServices.COMException was unhandled
Message=Условие неверно.
Source=Microsoft Outlook
ErrorCode=-2147352567
StackTrace:
at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
...
Khi tôi thay [Categories]
với [Категории]
, tức là
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Категории] = '{2}')",
start, end, category);
nó hoạt động với phiên bản Outlook của Nga. Nhưng rõ ràng nó sẽ không hoạt động với các ngôn ngữ khác.
Cách lọc các cuộc hẹn Outlook theo danh mục theo cách đa ngôn ngữ?