Como suprimir sub-relatórios vazios no SSRS 2008
-
06-07-2019 - |
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
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!