My Opera is closing 1st of March

Gilmar de Oliveira

Hierarquia com Recursividade em Reporting Services (SSRS)

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;

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.



Importar vários arquivos TXTs para Banco com Integration Services (SSIS)

Write a comment

New comments have been disabled for this post.