Outlook + Perl + Win32 :: Ole: Как выбрать записи календаря, отсортированные по дате? - PullRequest
0 голосов
/ 17 сентября 2008

Текущий код открывает базу данных календаря Outlook следующим образом:

my $outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit');

my $namespace = $outlook->GetNamespace("MAPI");

## only fetch entries from Jan 1, 2007 onwards
my $restrictDates = "[Start] >= '01/01/2007'";  

1 Ответ

1 голос
/ 17 сентября 2008

Поскольку вы не показываете код, который получает дату вашего объекта, на этот вопрос невозможно ответить, не зная об объекте Outlook, к которому вы пытаетесь обратиться.

Если у вас есть массив объектов, вы можете отсортировать их по дате и отфильтровать до определенного.

my $sub = sub {
       my $ad = $a->date_string_accessor;
       my $bd = $b->date_string_accessor;
       $ad =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       $bd =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       return $ad cmp $bd;
};

my @sorted = sort $sub @unsorted;

print join("\n", @sorted);

Но мне кажется, что для этого вам нужно использовать само приложение - предположительно, в Outlook есть какая-то функция запросов / сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...