none
Suppress do Crystal no Reporting Server RRS feed

  • Pergunta

  •  

    Boa tarde pessoal,

     

    Eu antes usava o Crystal e agora estou usando o RS na empresa onde trabalho.

     

    Estou com uma dúvida referente à função Hidden do RS.

     

    Exemplo:

     

    Tenho o seguinte relatporio agrupado por Empresa e Filial:

     

    Empresa

    Filial

    Details

     

    Existem algumas empresa que não possuem filial, daí fui no grupo filial e na opção visibility/expression, coloquei a seguinte empressão: =IsNothing(Fields!Filial.Value). Até aí tudo bem.

    No entanto, caso eu tenho 100 empresas e só uma delas não possui filial, o grupo filial Desaparece para todas.

    Existe alguma forma de se fazer ele desaparecer apenas para as Empresa que não possuem filial?

     

    Para o relatório ficar +- dessa forma?

     

    Empresa 1 ( empresa que possui filial )

    Filial da empresa 1

    detalhes da empresa 1

     

     

    Empresa 2 ( sem filial )

    detalhes da empresa 2

     

     

    No Crystal, existem duas funções desse tipo:

    Suppress: suprime apenas os registros das empresas sem filial

    Hidden: Esconde o grupo para todas as empresas

     

    Pelo que vi o RS só possui a função de Hidden.

     

    Obrigado a todos

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    quinta-feira, 14 de agosto de 2008 19:06

Respostas

  • Demeterio,

     

    Para ter o resultado da forma que você quer adicione uma table, crie um parent group por Empresa, adicione o campo empresa na linha cabeçalho desse grupo.

    Crie um segundo grupo (filho do primeiro) com a group expression no campo Filial, adicione o campo filial na linha cabeçalho do grupo. Ao invez de usar a expressao de visibilidade no grupo, use nessa linha de cabeçalho do grupo (se voce ocultar o grupo, ele deve ocultar as linhas dos grupos filhos também, e nao é o que voce deseja).

    E na linha de detalhe coloque as observacoes da empresa.

     

    Isso deve dar exatamente o resultado que voce colocou no post, se voce está tendo as linhas de todos os registros ocultados pode ser que a expressão esteja em um escopo diferente no seu relatório.

     

    Att

    Boreki

    quarta-feira, 20 de agosto de 2008 16:32

Todas as Respostas

  • Demetrio,

     

    Neste caso, no altere a expressão

     

    Code Snippet

    =IsNothing(Fields!Filial.Value).

     

     

    para

     

    Code Snippet
    =Count(Fields!Filial.Value, "dsEmpresas") > 0

     

     

    dsEmpresas = nome do seu dataset utilizado para fazer o designer do relatório.

     

    Ou seja, exibir o grupo de empresa somente se exibir alguma filial associada.

     

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

    sexta-feira, 15 de agosto de 2008 03:00
  • Oi Laércio,

     

    Obrigado pela atenção.

     

    Troquei =IsNothing(Fields!Filial.Value) por =Count(Fields!Filial.Value, "dsEmpresas") > 0, no entanto,

    ele faz a mesma coisa. Caso exista alguma empresa que não tenha filial, o detail desaparece para todas as empresas.

    É como se esconde-se o detail de todo o relatório. Mas o que eu quero é suprimir apenas os details das empresas que não possuem filial.

     

    E o que eu quero é exibir sim a empresa. tipo quando a empresa tiver filial exibir assim:

     

    Empresa

    Filial

    detail

     

    e quando não tiver filial exibir assim:

     

    Empresa

    detail

     

     

    Entendeu?

     

    No Crystal faço isso através da opção suppress.

     

    Quanto ao que você disse:

     

    "Ou seja, exibir o grupo de empresa somente se exibir alguma filial associada"

     

    Eu quero sim exibir todas as emrpesas independente de existir filial ou não quero mostrar as empresas e os details.

     

    Grato

     

     

     

     

     

     

    sexta-feira, 15 de agosto de 2008 11:21
  • Demeterio,

     

    Acho que você deve tentar fazer algo como recomendado pelo Laercio, só precisa alterar duas coisinhas:

    • A ordem da equação tem que ser invertida, você quer 'esconder' o agrupamento quando o número de filiais for zero. E não quando for maior que zero.
    • E o Escopo do Count não deve ser o DataSet, mas sim o nome do grupo de empresas para considerar somente as filiais da empresa agrupada

    Att

    Boreki

     

    sexta-feira, 15 de agosto de 2008 17:30
  • Boreki,

     

    Obrigado pela atenção. No entanto, a solução que você propôs não resolve.

     

    No grupo filiais Troquei =Count(Fields!Filial.Value, "dsEmpresas") > 0 por =Count(Fields!Filial.Value, "nomeGrupoEmpresa") = 0

     

    Ele 'esconde', mas se houver alguma empresa qua não tenha filial ( satisfazendo a cláusula acima ), ele esconde o grupo para todas as empresas. e não exibe os details das empresas que possuem filiais.

     

    Exemplo

    É como se ele fizesse assim: Se no meio de 100 empresas houver apenas uma que não tenha filial, ele esconde o grupo filial para todas elas.

     

    Eu queria mesmo era mostrar assim ( para as empresas que possuem filial ):

    Empresa

    Filial

    Details

     

    E assim para as que não possuem:

    Empresa

    Filial

     

    Vale lembrar que empresa é o group 1, filial o group 2 e detail é o group details

     

    Ou seja, eu queria que quando existisse filial ele exeibisse a empresa, a filial e os detalhes, e quando não existisse filial ele exibisse a empresa, ocultasse a filial mas exibisse os details.

     

    Eu consigo fazer isso no Crystal Reports através da opção Suppress. Só não sei se isso é possível no RS

     

    Fico muito agradecido com a atenção de vocês dois.

     

    Abraços

     

     

     

     

    sexta-feira, 15 de agosto de 2008 19:31
  •  

    Demetério,

     

    Pode colocar aqui +- como está vindo o seu data set para termos uma ideia de como devem ficar os seus grupos?

     

    Att

    Boreki

    sexta-feira, 15 de agosto de 2008 19:57
  • Oi Boreki,

     

    Desculpa pela demora. É que estou sem internet em casa. Segue abaixo como os dados estão vindo do dataset:

     

    Nome da empresa   Filial         Detalhe
    Empresa1                 NULL         Observações sobre a empresa 
    Empresa2                 NULL         Observações sobre a empresa 
    Empresa3                 Filial1        Observações sobre a empresa 
    Empresa4                 NULL         Observações sobre a empresa 
    Empresa5                 Filial3        Observações sobre a empresa

     

    Não existe problema quanto aos dados. Até pq este mesmo relatório existe no Crystal Reports e faz o que estou querendo.

     

    Por exemplo. Se eu colocar algum c´´odigo para suprimir as filiais da empresa que tenha filial null, todas as filiais não aparecem mais no relatório.

     

    Muito obrigado pela atenção.

     

    Abraços

     

    Demétrio

    segunda-feira, 18 de agosto de 2008 11:22
  • Demeterio,

     

    Para ter o resultado da forma que você quer adicione uma table, crie um parent group por Empresa, adicione o campo empresa na linha cabeçalho desse grupo.

    Crie um segundo grupo (filho do primeiro) com a group expression no campo Filial, adicione o campo filial na linha cabeçalho do grupo. Ao invez de usar a expressao de visibilidade no grupo, use nessa linha de cabeçalho do grupo (se voce ocultar o grupo, ele deve ocultar as linhas dos grupos filhos também, e nao é o que voce deseja).

    E na linha de detalhe coloque as observacoes da empresa.

     

    Isso deve dar exatamente o resultado que voce colocou no post, se voce está tendo as linhas de todos os registros ocultados pode ser que a expressão esteja em um escopo diferente no seu relatório.

     

    Att

    Boreki

    quarta-feira, 20 de agosto de 2008 16:32
  •  

    Boreki,

     

    Muito obrigado. Consegui fazer da forma que você mencionou.

     

    Muito obrigado a todos pela atenção.

     

    Demétrio

    quinta-feira, 21 de agosto de 2008 15:58