Pergunta

Estou criando um relatório 'mestre' no SSRS 2008, que colabora outros relatórios sobre uma pessoa. Às vezes nem todos os outros relatórios são relevantes e como tal retorno nada. Eu gostaria de ser capaz de excluir esta a partir do relatório mestre para que ele não deixar uma página em branco.

Estou ciente do recurso de 'não-linhas-message', mas uma página inteira com um simples "não aplicável para esta pessoa" não é a melhor solução!

Essencialmente, eu estou procurando uma maneira de determinar se um sub-relatório é 'vazio' e usar isso em uma expressão de visibilidade.

Qualquer ajuda é mais apreciada

Foi útil?

Solução

OK, então eu tenho este descobriu agora. A resposta é colocar o sub-relatório em um retângulo. Em seguida, defina a visibilidade do retângulo para algo como isto:

=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE)

Onde [SOMEDATASET] é um conjunto de dados povoada da mesma forma como a povoar o sub-relatório. Então, se o sub-relatório está vazia, então [SOMEDATASET] também estará vazia, e mais ao ponto, o [SOMEFEILD] campo será igual a NOTHING.

Bada-Bing! Um relatório que não está cheio de páginas vazias-desperdiçar papel.

Nota: Não é um mau efeito colateral dessa abordagem, em que, o servidor SQL estará enviando a mesma informação duas vezes, uma para preencher conjunto de dados do sub-relatório, e novamente para preencher o conjunto de dados duplicados no relatório. Para mim, isso é aceitável, outros podem querer estar ciente disso.

Outras dicas

Esta solução funcionou para mim como esperado, eliminando a hiperligação para a subrepot. Dentro do menu «Acção» na seção onde você especificar o nome do sub-relatório:

=iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)

Uma solução simples e fácil!

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