Compartir a través de


Filtrar y mostrar los elementos de la bandeja de entrada modificados en el último mes

En este ejemplo, se muestra cómo filtrar y mostrar elementos de la Bandeja de entrada modificados en el último mes.

Ejemplo

Nota:

El siguiente ejemplo de código es un fragmento de Aplicaciones de programación para Microsoft Office Outlook 2007.

El lenguaje de consulta búsqueda y ubicación DAV (DASL) se basa en la implementación de este lenguaje por parte de Microsoft Exchange en Outlook. Se puede usar para devolver resultados basados en la propiedad para búsquedas de nivel de elemento en los datos de carpeta, como los representados por un objeto Table. Los filtros DASL admiten comparaciones de cadenas, como equivalencias, prefijos, frases y coincidencias de subcadenas, mediante el operador igual (=). Puede usar las consultas DASL para realizar la comparación y filtrado de fecha y hora.

Puesto que las consultas DASL siempre realizan comparaciones DateTime en hora universal coordinada (UTC), debe convertir el valor de hora local a UTC si quiere que la consulta funcione correctamente. También es necesario convertir el valor DateTime a representación de cadena porque los filtros DASL filtros soportan la comparación de cadenas. Puede hacer la conversión de DateTime de dos maneras: utilizando el método LocalTimeToUTC(Object) del objeto Row, o usando las macros DateTime de Outlook para realizar la conversión.

La línea de código siguiente muestra cómo usar el método LocalTimeToUTC para convertir el valor de la propiedad LastModificationTime (que es una columna predeterminada de todos los objetos Item) a la hora UTC.

DateTime modified = nextRow.LocalTimeUTC(“LastModificationTime”);

En la tabla siguiente se enumeran las macros DateTime que puede usar para devolver cadenas filtradas que comparan el valor de una propiedad DateTime determinada con una fecha relativa especificada o un intervalo de fechas en UTC. El valor de la propiedad SchemaName representa cualquier propiedad DateTime válida a la que hace referencia un espacio de nombres.

Macro

Sintaxis

Descripción

hoy

%today(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName son equivalentes a hoy.

tomorrow

%tomorrow(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName son equivalentes a mañana.

yesterday

%yesterday(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName son equivalentes a ayer.

next7days

%next7days(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente a los próximos siete días.

last7days

%last7days(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente a los últimos siete días.

nextweek

%nextweek(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente a la semana próxima.

thisweek

%thisweek(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente a la semana actual.

lastweek

%lastweek(“SchemaName”)%

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente a la semana pasada.

nextmonth

% nextmonth("SchemaName") %

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente al mes próximo.

thismonth

% thismonth("SchemaName") %

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente al mes actual.

lastmonth

% lastmonth("SchemaName") %

Restringe los elementos cuyos valores de la propiedad SchemaName están en un intervalo equivalente al mes pasado.

En el siguiente ejemplo, DemoDASLDateMacro crea una consulta DASL que usa la macro lastmonthDateTime para filtrar los elementos de la bandeja de entrada del usuario modificados en el último mes. A continuación crea un objeto Table con el filtro, y enumera y muestra las filas en el objeto restringido Table.

Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en C#.

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"]);
    }
}

Vea también