Compartilhar via


Funções do Construtor de Relatórios – função Previous em um relatório paginado (Construtor de Relatórios)

Aplica-se a: SSRS (Construtor de Relatórios da Microsoft) Power BI Report Builder Report Designer no SQL Server Data Tools

Retorna o valor ou o valor de agregação especificado para a instância anterior de um item do escopo especificado em um relatório paginado.

Observação

Você pode criar e modificar arquivos de definição de relatório paginado (.rdl) no Construtor de Relatórios da Microsoft, Construtor de Relatórios do Power BI e no Designer de Relatórios no SQL Server Data Tools.

Sintaxe

  
Previous(expression, scope)  

Parâmetros

expressão
(Variant ou Binary) A expressão a ser usada para identificar os dados para os quais o valor anterior deve ser recuperado, por exemplo, Fields!Fieldname.Value ou Sum(Fields!Fieldname.Value).

escopo
(String) Opcional. O nome de um grupo ou uma região de dados, ou nulo (Nothing em Visual Basic), que especifica o escopo do qual o valor anterior especificado pela expressão deve ser recuperado.

Tipo de retorno

Retorna uma Variant ou um Binary.

Comentários

A função Previous retorna o valor anterior para a expressão avaliada no escopo especificado depois que toda a classificação e filtragem tiverem sido aplicadas.

Se a expression não contiver uma agregação, a função Previous será padronizada como o escopo atual para o item de relatório.

Em um grupo de detalhes, use Previous para especificar o valor de uma referência de campo na instância anterior da linha de detalhes.

Observação

A função Anterior somente dá suporte a referências de campo no grupo de detalhes. Por exemplo, em uma caixa de texto no grupo de detalhes, =Previous(Fields!Quantity.Value) retorna os dados para o campo Quantity da linha anterior. Na primeira linha, esta expressão retorna um nulo (Nothing em Visual Basic).

Se expression contiver uma função de agregação que use um escopo padrão, Previous agregará os dados dentro da instância anterior do escopo especificado na chamada da função de agregação.

Se expression contiver uma função de agregação que especifique um escopo diferente do padrão, o parâmetro scope da função Previous deverá ser um escopo contentor para o escopo especificado na chamada da função de agregação.

As funções Level, InScope, Aggregate e Previous não podem ser usadas no parâmetro expression. Não há suporte para a especificação do parâmetro recursive para qualquer função de agregação.

Para obter mais informações, confira Referência de funções de agregação (Construtor de Relatórios e SSRS) e Escopo das expressões para totais, agregações e coleções internas (Construtor de Relatórios e SSRS).

Exemplos

Descrição

O exemplo de código a seguir, quando colocado na linha de dados padrão de uma região de dados, fornece o valor do campo LineTotal na linha anterior.

Código

=Previous(Fields!LineTotal.Value)  

Descrição

O exemplo a seguir mostra uma expressão que calcula a soma das vendas em um dia específico do mês e o valor anterior para esse dia do mês em um ano anterior. A expressão é adicionada a uma célula em uma linha que pertence ao GroupbyDaydo grupo filho. Seu grupo pai é GroupbyMonth, que tem um grupo pai GroupbyYear. A expressão exibe os resultados de GroupbyDay (o escopo padrão) e de GroupbyYear (o pai do grupo pai GroupbyMonth).

Por exemplo, para uma região de dados com um grupo pai chamado Year, seu grupo filho chamado Monthe seu grupo filho chamado Day (3 níveis aninhados). A expressão =Previous(Sum(Fields!Sales.Value,"Day"),"Year") em uma linha associada ao grupo Day retorna o valor das vendas para o mesmo dia e mês do ano anterior.

Código

=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")