Erro BC40000 no ReportViewer 2010, um dos motivos e como resolver
Leonel Fraga de Oliveira 23/09/2014 21:00

Os sistemas que construímos estão sujeitos a muitos bugs, seja por erro nosso de programação ou bug do próprio framework de desenvolvimento.

O Microsoft .NET Framework, o Visual Studio 2010 e o ReportViewer são maravilhas, mas não estão livre de bugs chatos, acompanhem:

Você possui um "esqueleto" de relatório (arquivo .rdlc), o qual é copiado e colado durante o desenvolvimento de um novo template de relatório, vai copiando e colando controles na página, compila o programa de boa e na hora da execução dá de cara com o seguinte erro:

Erro em tempo de execução no Report Viewer

Sim, vamos descrevê-lo (grifo meu):

An error occurred during local report processing. The definition of the report "xxxxx" is invalid. An unexpected error ocurred while compiling expressions. Native compiler return value: '[BC40000]' Request Minimum é obsoleto: 'Assembly level declarative security is obsolete and is no longer enforced by the CLR by default...

Para resolver isso, você vai deletando do seu relatório cada expressão até que o relatório seja executado com sucesso, e depois vai recolocando as expressões, que você verificou estarem com a sintaxe correta, e o erro persiste.

Eu disse anteriormente que o modelo de relatório foi copiado de outro e os controles também são copiados e colados, né? Demorei um bom tempo para perceber que o Visual Studio simplesmente nomeia o controle com um nome de outro controle já existente no relatório. Veja as imagens abaixo:

1. Controle que recebe uma expressão de número de página, localizado no rodapé do relatório:

Repare esta caixa de texto e o nome do controle.

2. Controle que recebe um parâmetro, localizado no cabeçalho do mesmo relatório:

Essa caixa de texto tem o mesmo nome da caixa de texto da imagem anterior. Reparou o nome do controle?

Notem que os dois textboxes receberam o nome "Textbox5". Na hora de compilar o programa esse erro passa batido e o erro acontece na execução do relatório.

Então, para solucionar este erro simplesmente renomeie um dos textboxes para um nome que não exista e voilá, o relatório é executado com sucesso. Ah, e pode haver mais duplicidades de nomes de controles no mesmo relatório (por exemplo, 2x Textbox6, etc), então fique esperto.

Leonel Fraga de Oliveira Leonel Fraga de Oliveira é formado em Processamento de Dados na Faculdade de Tecnologia de São Paulo (FATEC-SP - 2002) e anteriormente em Técnico em Eletrônica, pela ETE Professor Aprígio Gonzaga (lá em 1999).
Atualmente trabalha como Analista de Sistemas na Prefeitura Municipal de São Caetano do Sul - SP
Tem como hobbies DJing (também trabalha como DJ freelancer) e ciclismo, além da manutenção dos sites NeoMatrix Light e NeoMatrix Tech.
Gosta de música eletrônica, tecnologia, cinema (super fã de Jornada nas Estrelas), gastronomia e outras coisas mais.


Compartilhe nas redes sociais

   

Deixe seu comentário

comments powered by Disqus