Crystal Reports - Falha ao abrir um lixo
-
03-07-2019 - |
Pergunta
O que pode ser feito para resolver a exceção:
Crystaldecisions.CrystalReports.Engine.internalexception: Falha ao abrir um lixo.
Solução
Este é um erro genérico nos relatórios de cristal sempre que a consulta do relatório falha. Pode haver várias causas. Se o seu relatório foi direcionado para um banco de dados específico e, em seguida, o banco de dados foi alterado sem atualizar o relatório, isso pode causá -lo. Também pode ser causado por algo na consulta falhando, como se o relatório for baseado em um procedimento armazenado que não existe no banco de dados em que o relatório está em execução. Tente verificar o banco de dados para o relatório.
Outras dicas
Como dito, este é um erro genérico e, como todos esses erros, é muito frustrante. O problema é que o VS 2003 não possui opção de visualização para relatórios de cristal, por isso é difícil rastrear a fonte do problema. Portanto, a melhor maneira de resolver isso é criar um projeto em branco no VS 2005 ou posterior, importar o relatório de cristal e executar a visualização. Você receberá um erro mais específico então.
Eu tive o mesmo problema e recebi esta mensagem de erro:
Um minério mais campos não pôde ser encontrado no conjunto de resultados. Use o banco de dados verifique se o relatório. Erro no arquivo nome do arquivo {9fee6406-1613-409a-b9bd-c5fda24e3dee} .rpt:
A coluna de linhas não pôde ser encontrada.
Eu estava usando um procedimento armazenado para coletar dados para o relatório e com certeza eu estava passando um parâmetro inválido para o SP. Verifique duas vezes o tipo e o valor dos parâmetros se você estiver usando um SP para preencher os dados do relatório.
Boa sorte!
Também sofri o mesmo erro com o relatório tendo relatórios sub. Problema resolvido enquanto mudo para cada sub -relatório e o faço verificar novamente com o banco de dados/tabelas/views.
Isso é causado por alguma discrepância em suas relações, como as junções da esquerda opostas ou algo semelhante. O CR também tem o mau hábito de criar links 'padrão' cada vez que você modifica a lista de tabelas e visualizações necessárias para o relatório. Às vezes, pode até criar automaticamente links recursivos que podem não ser visualizados 'de uma só vez' na tela de relações.
Se você não consegue encontrar qual (s) relação (s) está causando o problema (às vezes não é tão óbvio), você terá que fazer alguns testes de tentativa e erros adicionando/removendo tabelas do seu relatório.
Toda vez que você adiciona uma nova tabela em cristal, ele adiciona seus próprios links em tabelas já vinculadas, algumas vezes ela vincula os 2 campos da mesma tabela. Certifique -se de conhecer seus links para passar depois de adicionar uma tabela e role todas as mesas para ver qualquer link criado para a mesma tabela
Eu recebi :
CrystalDecisions.CrystalReports.Engine.internalException foi mensagem não tratada = o servidor de aplicativos de relatório falhou
O Google me trouxe aqui. Para aqueles que têm problemas semelhantes.
Para o registro: eu tinha uma matriz de byte [] com uma imagem e removi o log do relatório e o erro parou. Agora tenho que descobrir o que fiz de errado com o logotipo.
Eu tive esse problema - usamos logins SQL para nossa segurança (não integrados / conexões DSN)
Ao conceder permissões de execução ao usuário para o meu procedimento armazenado, corrigi o problema.
Realmente, realmente não podia odiar o Crystal mais por sua exceção mascarada - que isso seja uma lição para todos os programadores;
Try
'your code here
Catch
Throw new exception("Hey, here's a really friendly but completely useless error message")
End Try
resultará em dor para futuros desenvolvedores - não faça isso!
Quando você verifica seu banco de dados, pode dizer que está atualizado, nesse caso, você tem mais duas opções para verificar:
a) Atualizando o relatório (um ícone em forma de raio), se você tiver um problema com um campo, como um campo SQL, ele fornecerá o erro e mostrará a janela de edição para o campo.
b) Executando a consulta diretamente no SQL, se houver um problema com a consulta, você também receberá essa mensagem em Crystal, mas o SQL dirá exatamente o que deu errado.
Verificar Alterar informações de logon do banco de dados do Crystal Report no tempo de execução no vs2005 para ajuda.
Linha importante nela é:
table.Location = Database & ".dbo." & table.Name
Para mim, o problema foi corrigido quando eu conectei e conectei de volta ao servidor SQL para o qual o relatório estava se conectando
No procedimento da sua loja, se você estiver usando
SET NOCOUNT ON;
Então basta remover isso
--SET NOCOUNT ON;
Agora verifique o banco de dados do seu relatório, crie e execute sua solução.