Filtern und Anzeigen der im letzten Monat geänderten Posteingangselemente
In diesem Beispiel wird veranschaulicht, wie Posteingangselemente gefiltert und angezeigt werden, die im letzten Monat geändert wurden.
Beispiel
Hinweis
Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.
Die Abfragesprache DAV Search and Locating (DASL) basiert auf der Microsoft Exchange-Implementierung von DASL in Outlook. Sie kann verwendet werden, um eigenschaftsbasierte Ergebnisse für Suchvorgänge auf Elementebene in Ordnerdaten zurückzugeben, z. B. die von einem Table-Objekt dargestellten Daten. DASL-Filter unterstützen Zeichenfolgenvergleiche unter Verwendung des Gleichheitszeichens (=), einschließlich Äquivalenz, Präfix-, Ausdrucks- und Teilzeichenfolgenübereinstimmung. DASL-Abfragen können für einen Datums-/Uhrzeitvergleich und zum Filtern verwendet werden.
Da DASL-Abfragen DateTime-Vergleiche stets in koordinierter Weltzeit (Coordinated Universal Time, UTC) ausführen, müssen Sie den lokalen Zeitwert in UTC konvertieren, damit die Abfrage fehlerfrei funktioniert. Außerdem müssen Sie den DateTime-Wert in eine Zeichenfolgendarstellung umwandeln, weil DASL-Filter Zeichenfolgenvergleiche unterstützen. Sie haben zwei Möglichkeiten, die DateTime-Konvertierung durchzuführen: mithilfe der LocalTimeToUTC(Object) -Methode des Row -Objekts oder mithilfe von Outlook- DateTime-Makros.
In der folgenden Codezeile wird die Verwendung der LocalTimeToUTC-Methode zum Konvertieren des Werts der LastModificationTime-Eigenschaft in UTC gezeigt (diese ist in allen Item-Objekten eine Standardspalte).
DateTime modified = nextRow.LocalTimeUTC(“LastModificationTime”);
In der folgenden Tabelle werden die DateTime-Makros aufgelistet, mit denen Sie gefilterte Zeichenfolgen zurückgeben können, die den Wert einer gegebenen DateTime-Eigenschaft mit einem angegebenen relativen Datum oder Datumsbereich in UTC vergleichen. Die SchemaName-Eigenschaft stellt eine beliebige gültige DateTime-Eigenschaft dar, auf die anhand des Namespace verwiesen wird.
Makro |
Syntax |
Beschreibung |
---|---|---|
heute |
%today(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren Wert der SchemaName-Eigenschaft „heute“ lautet. |
morgen |
%tomorrow(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren Wert der SchemaName-Eigenschaft „morgen“ lautet. |
gestern |
%yesterday(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren Wert der SchemaName-Eigenschaft „gestern“ lautet. |
next7days |
%next7days(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der den nächsten sieben Tagen entspricht. |
last7days |
%last7days(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der den letzten sieben Tagen entspricht. |
nextweek |
%nextweek(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der der nächsten Woche entspricht. |
thisweek |
%thisweek(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der dieser Woche entspricht. |
lastweek |
%lastweek(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der der letzten Woche entspricht. |
nextmonth |
%nextmonth(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte in einem Bereich hat, der dem nächsten Monat entspricht. |
thismonth |
%thismonth(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte im Bereich dieses Monats hat. |
lastmonth |
%lastmonth(“SchemaName”)% |
Legt eine Beschränkung auf Elemente fest, deren SchemaName-Eigenschaft Werte im Bereich des letzten Monats hat. |
Im folgenden Beispiel erstellt DemoDASLDateMacro eine DASL-Abfrage, in der mit dem lastmonthDateTime-Makro Elemente aus dem Posteingang des Benutzers herausgefiltert werden, die im vergangenen Monat geändert wurden. Dann wird ein Table-Objekt mit diesen Filter erstellt die Zeilen in dem eingeschränkten Table-Objekt aufgezählt und angezeigt.
Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.
using Outlook = Microsoft.Office.Interop.Outlook;
private void DemoDASLDateMacro()
{
string filter = "@SQL=" + "%lastmonth(" + "\"" +
"DAV:getlastmodified" + "\"" + ")%";
Outlook.Table table = Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderInbox).GetTable(
filter, Outlook.OlTableContents.olUserItems);
while (!table.EndOfTable)
{
Outlook.Row row = table.GetNextRow();
Debug.WriteLine(row["Subject"]);
}
}