Compartilhar via


Filtrar e exibir itens da Caixa de entrada modificados no último mês

Este exemplo mostra como filtrar e exibir os itens de caixa de entrada que foram modificados no mês passado.

Exemplo

Observação

O exemplo de código a seguir é um trecho de Programar aplicativos para o Microsoft Office Outlook 2007.

A linguagem de consulta DAV Searching and Locating (DASL) se baseia na implementação do Microsoft Exchange do DASL no Outlook. Pode ser usada para retornar resultados com base em propriedades para pesquisas em nível de item nos dados de pastas, como os representados por um objeto Table. Os filtros DASL suportam comparações de cadeias de caracteres, incluindo equivalência, prefixo, frase e correspondência de subcadeias, usando o operado igual (=). É possível usar consultas DASL para executar comparações e filtragens de data-hora.

Como as consultas DASL sempre executam comparações DateTime em Tempo Universal Coordenado (UTC), é necessário converter o valor da hora local para UTC para que a consulta funcione corretamente. Você também deve converter o valor de DateTime em uma representação de cadeia de caracteres, pois os filtros DASL suportam comparações de cadeias. Você pode fazer a conversão Date Time de duas maneiras: usando o método LocalTimeToUTC(Object) do objeto Row, ou usando as macros DateTimedo Outlook para fazer a conversão.

A seguinte linha de código mostra como usar o métodoLocalTimeToUTC para converter o valor da propriedade LastModificationTime (que é uma coluna padrão em todos os objetos Item) para UTC.

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

A tabela seguinte lista as macros DateTime que você pode usar para retornar cadeias de caracteres filtradas que comparam o valor de uma propriedade DateTime determinada com uma data relativa especificada ou com um intervalo de datas em UTC. O valor de propriedade SchemaName representa um qualquer propriedade DateTime válida referenciada por namespace.

Macro

Sintaxe

Descrição

today

%today(“SchemaName”)%

Restringe aos itens com valor de propriedade SchemaName igual a hoje.

tomorrow

%tomorrow(“SchemaName”)%

Restringe aos itens com valor de propriedade SchemaName igual a amanhã.

yesterday

%yesterday(“SchemaName”)%

Restringe aos itens com valor de propriedade SchemaName igual a ontem.

next7days

%next7days(“SchemaName”)%

Restringir aos itens com valores de propriedade SchemaName em um intervalo equivalente aos próximos sete dias.

last7days

%last7days(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente aos últimos sete dias.

nextweek

%nextweek(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente à próxima semana.

thisweek

%thisweek(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente a esta semana.

lastweek

%lastweek(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente à última semana.

nextmonth

%nextmonth(“SchemaName”)%

Restringe aos itens com valores de propriedade em um intervalo equivalente ao próximo mês.

thismonth

%thismonth(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente a este mês.

lastmonth

%lastmonth(“SchemaName”)%

Restringe aos itens com valores de propriedade SchemaName em um intervalo equivalente ao último mês.

No exemplo a seguir DemoDASLDateMacro cria uma consulta DASL que usa a macro lastmonthDateTime para filtrar os itens na caixa de entrada do usuário que foram modificados no mês passado. Em seguida, cria um objeto Table com esse filtro, e enumera e exibe as linhas no objeto Table restrito.

Se usar o Visual Studio para testar este exemplo de código, adicione primeiro uma referência ao componente da biblioteca de objetos do Microsoft Outlook 15.0 e especifique a variável do Outlook quando importar o namespace Microsoft.Office.Interop.Outlook. A instruçãousing não deve ocorrer diretamente antes das funções no exemplo de código, mas deve ser adicionada antes da declaração de classe pública. The following line of code shows how to do the import and assignment in 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"]);
    }
}

Confira também