Tablix: Repita as linhas do cabeçalho em cada página que não está funcionando - Report Builder 3.0


163

Eu tenho um tablix com muitas linhas que se estendem por várias páginas. Eu configurei a propriedade Tablix Repetir linhas de cabeçalho em cada página, mas isso não funciona. Li em algum lugar que esse é um bug conhecido no Report Builder 3.0. Isso é verdade? Caso contrário, há algo mais que precisa ser feito?

Respostas:


426

Depende da estrutura tablix que você está usando. Em uma tabela, por exemplo, você não possui grupos de colunas; portanto, o Reporting Services não reconhece quais caixas de texto são os cabeçalhos das colunas e a configuração da propriedade RepeatColumnHeaders como True não funciona.

Em vez disso, você precisa:

  1. Abra o Modo Avançado no painel Agrupamentos. (Clique na seta à direita dos Grupos de colunas e selecione Modo avançado.)
    • Captura de tela
  2. Na área Grupos de Linhas (não Grupos de Colunas), clique em um grupo Estático, que destaca a caixa de texto correspondente no tablix. Clique em cada grupo estático até destacar o cabeçalho da coluna mais à esquerda. Este é geralmente o primeiro grupo estático listado.
  3. Na janela Propriedades, defina a RepeatOnNewPagepropriedade como True.
    • Captura de tela
  4. Verifique se a KeepWithGrouppropriedade está definida como After.

A KeepWithGrouppropriedade especifica qual grupo ao qual o membro estático precisa se ater. Se definido como Afterentão, o membro estático permanece com o grupo depois ou abaixo dele, atuando como um cabeçalho do grupo. Se definido como Before, o membro estático permanece com o grupo antes ou acima dele, atuando como rodapé do grupo. Se definido como None, o Reporting Services decide onde colocar o membro estático.

Agora, quando você exibe o relatório, os cabeçalhos das colunas se repetem em cada página do tablix.

Este vídeo mostra como configurá-lo exatamente como a resposta descrita.


1
Stacia, quando seleciono KeepWithGroup e tento salvar, recebo "O tablix 'DetailTablix' tem um TablixMember inválido. Todos os elementos TablixMember em um TablixColumnHierarchy devem ter a propriedade RepeatOnNewPage definida como false.". Alguma ideia?
Moodboom 19/11/12

24
Eu descobri o meu problema. Stacia, sua resposta está absolutamente correta, é apenas uma coisa complicada de acertar. Observe que o Stacia diz para alterar a área ROW Groups ao definir a propriedade RepeatOnNewPage. Todo o resto desta solução lida com colunas, mas você precisa escolher os grupos de linhas (à esquerda), não os grupos de colunas (à direita), mesmo que comece clicando no menu suspenso em Colunas. Obrigado Stacia, brilhante.
Moodboom 20/11/12

5
+1 - Acabei de ler cerca de uma dúzia de orientações sobre isso em toda a Internet, e esta é a melhor solução mais direta para o problema - você também explica POR QUE as opções são importantes, o que é fantástico. Obrigado!
JNK

3
Este vídeo mostra como configurá-lo exatamente como a resposta descrito: youtube.com/watch?v=WAO819-gkKw
camarão arroz

8
KeepWithGroup = Depois foi a chave para mim. Como muitas coisas da Microsoft, esse é um truque não óbvio necessário para que um recurso funcione. Obrigado!
Leqid

17

Eu tenho 2.0 e encontrei o acima para ajudar; no entanto, a seleção de uma estática não destacou a célula por algum motivo. Eu segui estes passos:

  1. Em grupos de colunas, selecione o avançado e a estática será exibida
  2. Clique na estática que aparece nos grupos de linhas
  3. Defina KeepWithGroup como After e RepeatOnNewPage como true

Agora, os cabeçalhos das colunas devem ser repetidos em cada página.


Isso funcionou perfeitamente .... muito mais simples do que a resposta acima, que não funcionou para mim.
R_Avery_17

infelizmente, isso me fez começar a receber páginas em branco novamente.
1955 Mike

10

Como corrigi esse problema, alterei manualmente o código para trás (no menu Exibir / código). A seção abaixo deve ter o número de pares <TablixMember> </TablixMember>que o número de linhas estiver no tablix. No meu caso, eu tinha mais pares do <TablixMember> </TablixMember>que o número de linhas no tablix. Além disso, se você for para o "Modo avançado" (à direita de "Grupos de colunas"), o número de linhas estáticas atrás dos "Grupos de linhas" deve ser igual ao número de linhas no tablix. A maneira de torná-lo igual é mudar o código.

<TablixRowHierarchy>
      <TablixMembers>
        <TablixMember>
          <KeepWithGroup>After</KeepWithGroup>
          <RepeatOnNewPage>true</RepeatOnNewPage>
        </TablixMember>
        <TablixMember>
          <Group Name="Detail" />
        </TablixMember>
      </TablixMembers>
    </TablixRowHierarchy>

Para minha surpresa, fazer isso resolveu o problema. Eu tinha um tablix com 6 linhas (3 linhas de cabeçalho mais um grupo com uma linha de cabeçalho, detalhe e rodapé). Observando a fonte, foram mostrados 6 <TablixRow> s, mas 7 <TablixMember> s na <TablixRowHierarchy>. Peguei meu palpite sobre qual era o extra (que envolveu o grupo) e o removi. Esta versão falhou ao renderizar, mas a mensagem de erro indicava que uma linha precisava ter suas configurações <Repeat ...> e <KeepWith ...> alteradas para corresponder às anteriores; Eu mudei para "true" e "After" na terceira linha (estática) e pronto! Eu gostaria de realmente entender;)!
GISmatters 4/16

Obrigado por isso. Estou usando o SSRS há mais de 10 anos e acabei encontrando esse problema - de fato, havia um invólucro extra do TablixMember ao redor do grupo (sem dúvida, de experimentos com adição e remoção de grupos). A limpeza da lista de membros resolveu o misterioso cabeçalho não repetitivo.
Carl Daniel

Obrigado, tive que excluir duas linhas em excesso do TablixMember agrupadas e sem dados. O sinal disso para mim no meu relatório foi que havia dois grupos de linhas estáticas em vez de um. Depois que eu removi o excesso de XML aninhado, as linhas repetidas começaram a funcionar.
Noppadet

1
Obrigado. Somente essa solução funcionou no meu relatório, onde eu estava enfrentando o problema semelhante.
Syed

aparentemente, a configuração correta está ausente no Visual Studio. Portanto, as dicas de "configurações avançadas" que se referem ao ReportBuilder não ajudaram. A edição manual do arquivo funcionou como um encanto. Obrigado!
MovGP0

9

Abra Advanced Modeno painel Agrupamentos. (Clique na seta à direita dos Grupos de colunas e selecione Modo avançado.)

Na área Grupos de Linhas (não Grupos de Colunas), clique em um grupo Estático, que destaca a caixa de texto correspondente no tablix.

Clique em cada grupo estático até destacar o cabeçalho da coluna mais à esquerda. Este é geralmente o primeiro grupo estático listado.

Na grade de propriedades:

  • definido KeepWithGroupcomoAfter
  • definido RepeatOnNewPagecomo Truepara repetir cabeçalhos
  • definido FixedDatacomo Truepara manter os cabeçalhos visíveis

5

Outra maneira de fazer isso se você ainda tiver esse problema é fazendo o seguinte:

  • Limpe todo o texto do cabeçalho da tabela e deixe em branco.
  • Na seção "Cabeçalho" dos relatórios, adicione caixas de texto dentro de um retângulo, cada caixa de texto representará um cabeçalho de coluna para a tabela.
  • Como esse retângulo está na seção Cabeçalho dos relatórios, ele será exibido em todas as páginas do relatório.

Obrigado, Sufian.


2

O que funcionou para mim foi criar um novo relatório do zero.

Feito isso e com o novo relatório funcionando, compararei os 2 arquivos .rdl no Visual Studio. Eles estão no formato XML e espero que um WindDiff rápido ou algo assim revele qual foi o problema.

Uma aparência inicial mostra que existem 700 linhas de código ou um pouco mais de diferença entre os dois arquivos, com o maior dos dois sendo o arquivo defeituoso. Um rápido olhar para as tags TablixHeader não revelou nada óbvio.

Mas no meu caso, era um arquivo .rdl corrompido. Isso foi originalmente copiado de um relatório de trabalho, portanto, no processo de remoção do que não foi reutilizado, isso pode ter corrompido. No entanto, em outros relatórios em que esse mesmo processo foi realizado, os cabeçalhos podem ser repetidos quando as configurações corretas forem feitas em Propriedades.

Espero que isto ajude. Se você possui um relatório complexo, essa não é a solução rápida, mas funciona.

Talvez comparar arquivos XML bons e conhecidos com erros do seu lado seja uma boa postagem no fórum. Vou tentar isso do meu lado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.