1

Outlookフォルダーで並べ替えを呼び出し、受信した時間で並べ替えようとしています。ただし、フォルダに電子メール以外のアイテム(aTaskReceivedTime )が含まれていると、プロパティが存在しない というエラーが表示されます。

oFolderItems := oFolder.Items;
oFolderItems.sort('ReceivedTime',2);  //2 = Descending

並べ替えの理由は、一部のユーザーの場合、アクセスしているフォルダーに数千の電子メールがあり、最新の電子メールのx個だけを表示したいためです。

メール以外のアイテムを回避するためのヒントはありますか?

4

1 に答える 1

2

DASL フィルターを使用して、特定のコレクションViewまたはコレクションに表示されるアイテムを制限できますItems。メール メッセージのみにフィルター処理するには、メッセージ クラスプロパティ ( MAPI 名PR_MESSAGE_CLASS) を使用して、 のみに制限することができIPM.Noteます。この_Items.Restrictメソッドは、DASL フィルターを適用するのに役立ちます。

string messageClassFilter = "@SQL=" + "\"" + "http://schemas.microsoft.com/mapi/proptag/0x001a001e" + "\"" + " LIKE 'IPM.Note%'";
oFolderItems := oFolder.Items.Restrict(messageClassFilter); // filter by Message Class
oFolderItems.sort('ReceivedTime',2);  //2 = Descending
于 2012-10-18T16:18:37.230 に答える