Hierarquia com Recursividade em Reporting Services (SSRS)
Monday, February 21, 2011 2:54:00 PM
Para darmos inicio ao tutorial de como fazer a recursividade no report. vamos primeiro
criar o cenário para o exemplo.
1º Criar uma tabela que tenha auto-referencia;
2º Com o Report Builder listar os dados em forma de tabela;
3º Adicionar funções de soma recursiva;
4º Executar o relatório;
criar o cenário para o exemplo.
1º Criar uma tabela que tenha auto-referencia;
2º Com o Report Builder listar os dados em forma de tabela;
3º Adicionar funções de soma recursiva;
4º Executar o relatório;
Tenho instado no meu computador o SQL Server Express 2008 R2 disponível no site da microsoft.
Criando tabela para exemplo:

Após criada a tabela, inserimos manualmente alguns dados;
Ok, cenário completo.
agora vamos o Report Builder para construção do relatório:
criamos a conexão com banco, e depois uma consulta completa na nossa tabela.
O detalhe da recursividade está nas propriedades de grupo de dados.
Vamos na seção de grupos, clicamos com botão direito->propriedades.
e adicionamos o Groups Expressions, a coluna "ID", conforme a imagem.
Depois na mesma janela alteramos a seção "Visibility", alterando a propriedade para "Hide" para esconder todas as linhas, e marcamos a caixa "Diplay" selecionando a coluna Descrição, com essas opções alteradas faz com que o relatório escondas os registros filhos exibindo somente os pais, quando expande o pai mostra-se os filhos.
conforme imagem:
Ainda na mesma janela de configuração alteramos a seção "Advanced" adicionando a coluna de auto-referencia "IDPAI"
conforme imagem:
ok, após as alterações vamos fazer nossas linhas aparecer identadas, vamos na "Text properties" da caixa Descrição,
conforme imagem:
e alteramos a seção "Alignment" na propriedade "Left", colocando a seguinte função
=10 * level() & "pt"
conforme imagem:
feito isso, executamos o relatório. pressionado o botão 'Run"
e temos o seguinte resultado:
podemos observar que a recursividade aconteceu, mostrando os itens filhos abaixo dos pais.
Mais e os valores?, como colocar a soma dos filhos sendo o valor do pai?.
simples alteramos uma simples função, segue a função de soma recursiva:
=Sum(Fields!valor.Value,"Details",Recursive)
conforme a imagem:

agora executamos novamente nosso relatório...
Pronto !!!
Feito nosso relatório com recursividade.
espero que gostem.



