Pergunta

Os relatórios SSRS prontos para uso não podem ter dados expostos no cabeçalho da página.Existe uma maneira de mostrar esses dados?

Foi útil?

Solução

Uma das coisas que quero em meus relatórios é ter cabeçalhos bonitos para eles.Gosto de ter um logotipo e os parâmetros do relatório do usuário junto com outros dados para mostrar e fornecer mais informações para as necessidades de negócios que o relatório precisa esclarecer.Uma das coisas que o Microsoft SQL Server 2005 Reporting Services não pode fazer nativamente é mostrar dados de um conjunto de dados no cabeçalho.Esta postagem explicará como contornar isso e como é fácil.

Crie o projeto do Report Server na seção Projetos de Business Intelligence e chame-o de AdventureWorksLTReports.Eu uso o banco de dados de exemplo AdventureWorksLT do CodePlex.

texto alternativo http://www.cloudsocket.com/images/image-thumb.png

Em seguida, mostre o cabeçalho da página clicando com o botão direito na área do relatório com o designer.

texto alternativo http://www.cloudsocket.com/images/image-thumb1.png

O cabeçalho da página aparecerá.Se você quiser mostrar o rodapé da página, ele pode ser acessado no mesmo menu do cabeçalho da página.

texto alternativo http://www.cloudsocket.com/images/image-thumb2.png

Criei um procedimento armazenado que retorna dados do Pedido de Venda para serem apresentados no Page Header.Mostrarei as seguintes informações sobre o pedido de venda no cabeçalho da página:

  • Data do pedido
  • Número do pedido de vendas
  • Empresa
  • Vendedor
  • Total devido

Eu crio um TextBox para cada um dos meus campos de dados no cabeçalho da página junto com um TextBox para o rótulo correspondente.Não altere a Expressão nas TextBoxes em que você deseja os dados do Pedido de Vendas.

texto alternativo http://www.cloudsocket.com/images/image-thumb3.png

No corpo do relatório, coloque um TextBox para cada campo de dados necessário no cabeçalho da página.Na Visibilidade de cada TextBox, selecione Verdadeiro para Oculto.Este será o espaço reservado para os dados necessários no cabeçalho da página.

texto alternativo http://www.cloudsocket.com/images/image-thumb4.png

Seu relatório deve ser semelhante à captura de tela mostrada abaixo.

texto alternativo http://www.cloudsocket.com/images/image-thumb5.png

O último passo e o mais importante é referenciar o Hidden TextBox nos TextBoxes localizados no Page Header.Usamos a seguinte expressão para referenciar os TextBoxes necessários:

=RelatórioItens!.Valor

Seu relatório agora deve ser semelhante ao seguinte:

texto alternativo http://www.cloudsocket.com/images/image-thumb6.png

A visualização do seu relatório agora deve ter os dados do cabeçalho do pedido de vendas no cabeçalho do relatório.

texto alternativo http://www.cloudsocket.com/images/image-thumb7.png

Outras dicas

Você tem que fazer isso através de Parâmetros.Adicione um parâmetro para cada dado que você deseja exibir e defina o parâmetro como Oculto.Em seguida, defina o valor padrão como "Da consulta" e defina o campo Conjunto de dados e Valor com os valores apropriados.

Acho que a melhor opção é criar um parâmetro interno, tendo como valor padrão o campo do conjunto de dados que você deseja mostrar.

Aqui estão duas possíveis soluções alternativas:

  1. Você pode colocar o campo vinculado a dados no corpo do relatório como uma caixa de texto oculta e, em seguida, no cabeçalho, colocar outra caixa de texto com seu valor apontado para aquele oculto no corpo.

  2. Tente usar parâmetros de relatório para armazenar os dados e use esses parâmetros para acessar os dados no cabeçalho.

Essa técnica não funcionaria se o seu relatório abrangesse várias páginas, usasse parâmetros consultados e definisse o valor da caixa de texto como =Parameters!Name.Value conforme Este artigo.

Estou com Orion Adrian aqui.Os parâmetros do relatório são o caminho a percorrer.

Queria mostrar um campo, comum a todas as linhas retornadas, no cabeçalho, e para esse cenário optei pela solução de tabela vinculada (colocar uma tabela contendo o campo no corpo e vincular uma caixa de texto no cabeçalho a esta tabela).

Fiz isso porque se você estiver usando a solução de parâmetro e nenhum dado for retornado para o campo em questão, o texto "Parâmetro está faltando um valor" será mostrado em vez de apenas uma tabela em branco.Achei que este texto confundiria os usuários (já que o parâmetro nem é visível).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top