none
Altura da Tabela Alterada quando os Campos Estão em Branco RRS feed

  • Pergunta

  • Oi Pessoal!!

    Sou iniciante no desenvolvimento de relatórios pelo Reporting Services e estou encontrando um grande problema em relação a altura da tabela.
    Eu estou trabalhando em um subreport onde há uma tabela para indicação dos dados dos produtos de uma invoice e que foi limitada para exibir apenas 17 linhas. Esse subreport também está assoicado a um report.

    Notei durante os testes que fiz, que quando a invoice apresenta as 17 linhas, os campos apresentados abaixo da tabela no relatório são apresentados na localização determinada no subreport. Porém, quando não há o preenchimento dos 17 itens da invoice, as demais linhas "em branco" fazem com que os campos apresentados abaixo da tabela sejam deslocados muito abaixo de onde deveriam ficar.

    Já procurei sobre o assunto e pelo que li, me parece que o Reporting Services coloca a configuração default para as linhas "em branco" de uma tabela fazendo com que a altura das linhas da tela sejam alteradas... Também já segui tentei utilizar a expressão: =IIf(IsDbNull(Fields!field.Value) Or Fields!field.Value="", " ", Fields!field.Value); além de já ter tentado configurar a tabela com a fonte padrão dos itens do relatório... Mas nada adiantou!!

    Eu preciso fazer com que a altura das linhas da tabela, independente do preenchimento das 17 linhas, não interfira na configuração de localização dos campos apresentados após ela.

    Se alguém tiver passado por essa situação ou algo parecido e tiver alguma solução para esse problema, por favor me ajudem!!

    Desde já agradeço a todos,
    Obrigada
    domingo, 1 de março de 2009 03:17

Todas as Respostas

  • Bom dia Juliana,

    Não entendi exatamente o seu problema. Mas imagino que no subreport mesmo quando você não tenha os 17 registros as linhas estão sendo mantidas, o que faria os registros abaixo ficando na mesma distancia de antes, mas com linhas em branco acima.

    Recomendaria tentar ocultar as linhas quando o registro está em branco, você pode fazer isso alterando a expressão 'Visibility/Hidden' da linha  para:

    =IIf(IsDbNull(Fields!field.Value) Or Fields!field.Value="", true, false)

    Você teria que fazer isso para todas as linhas que podem vir em branco.

    Att
    Boreki
    http://www.boreki.eng.br
    segunda-feira, 2 de março de 2009 18:13
  •   Oi Boreki!!

    Vou tentar simplificar a situação do meu problema... Na verdade o que realmente acontece é o seguinte: Imagine uma tabela configurada para exibir no máximo até 17 linhas de registros. Abaixo dessa tabela há outros campos referentes as demais informações a serem impressas no formulário contínuo da invoice, e que não podem ter a sua localização (localização da altura do campo) alterada para não serem impressos incorretamente.

    O que está acontecendo é que quando eu tenho as 17 linhas preenchidas, o relatório da invoice é impresso da forma que eu preciso... Até aí tudo bem. Porém, quando parte dessas linhas não possuem são prenchidas com os registros, a distância que é apresentada entre a tabela e esses campos existentes abaixo dela aumenta muito fazendo com que eles não saiam na posição correta do formulário.


    Não sei se neste caso a alteração da propriedade de visibilidade das linhas da tabela resolveria esse problema...
    De qualquer forma muito obrigada pela ajuda, e caso eu tenha conseguido exemplificar de uma forma mais simples o meu problema e você tiver alguma outra sugestão, por favor post aqui!!

    Att.,
    Juliana
    terça-feira, 3 de março de 2009 01:25
  • Juliana, que recurso você está usando para limitar a tabela a 17 registros? na sua query você pede top 17 ou você usa filtro de tabela?


    Pelo que você falou, se o problema é que quando as linhas estão em branco elas tem o tamanho diferente, usando a expressão que você passou (colocando um espaço em branco) deveria garantir que o tamanho fosse o mesmo. A pergunta é, vc tem certeza que aquela expressão está retornando o espaço em branco e não o Null? Eu recomendaria fazer um teste, alterando aquela expressão por algo assim:


    =IIf(IsDbNull(Fields!field.Value) Or Fields!field.Value="", "TESTE", Fields!field.Value)

    Desta forma, as linhas em branco deverão ter o texto 'Teste' e ter o mesmo tamanho de quando o registro vem preenchido, caso o teste nao apareça então seu iif está caindo sempre no fields!value, que retorna null. Minha outra recomendação é usar a expressão IsNothing e ver se isso resolve o problema:

    =IIf(IsNothing(Fields!field.Value) Or Fields!field.Value="", "TESTE", Fields!field.Value)

    Espero que algum desses testes ajude.

    Att
    Boreki
    http://www.boreki.eng.br
    quarta-feira, 4 de março de 2009 17:48