Inquiridor
Report load failed ao gerar relatório no crystal via web (ASP.NET / VB.NET)

Pergunta
-
Tudo bem, pessoal? Estou um problema seríssimo relacionado ao crystal reports. Quando executo o relatório localmente acessando a base de dados no servidor web, o relatório é executado sem nenhum problema. Porém quando "subo" o arquivo (rpt) para o servidor a seguinte mensagem é exibida: "Load report failed". É a primeira vez que estou gerando um relatório via web e não sabia da dificuldade que é fazê-lo funcionar no servidor. Eu já copiei todas as Dll´s do crystal (inclusive aquelas que estão no assembly), além de instalar o pacote CR basic no servidor. Realmente eu não sei o que pode estar acontecendo. Será que é algo relacionado relacionado à permissão? A impressão que dá é que o servidor executa o arquivo, mas não consegue exibí-lo, pois dá para visualizar um pouco a barra de navegação do crystal.
Por favor, peço ajuda à vocês, pois o Cliente está cobrando.
Desenvolvedor VB.NET- Movido Harley AraujoModerator quarta-feira, 21 de outubro de 2009 12:54 (De:ASP .NET)
Todas as Respostas
-
Marcos.
Dias atrás passei por maus bocados com o Crystal...
Dá uma olhada neste post, talvez a solução esteja aí.Boa sorte...
Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh -
Eu tinha muito este problema, e quando eu resolvia era só mudar de servidor e lá ia eu registrando msm e etc..
Enfim resolvi isto da seguinte maneira, fiz a chamada via Web diretamente pelo Crystal Reports, sem usar as bibliotecas do .net e funcionou.
Publiquei isso no link: http://sites.google.com/site/tecguia/utilizando-o-crystal-reports-diretamente-com-vbnetaspnet
Espero que ajude
João da Costa -
João, o seu código ocosiona alguns erros como: "variáveis não declaradas" , "tipo não definido"
Segue abaixo os blocos que estão ocasionado erros de compilação:
Dim NomeImpressora As String = Me.NomeImpressoraDesigner
If NomeImpressora.Trim <> "" Then
Dim query As String = "Select * From Win32_Printer Where DeviceID = '" & NomeImpressora & "'"
Dim buscador As New ManagementObjectSearcher(query)
Dim resultados As ManagementObjectCollection = buscador.Get
Dim Driver As String = ""
Dim Porta As String = ""
For Each Impressora As ManagementObject In resultados
Driver = Impressora(
"DriverName")
Porta = Impressora(
"PortName")
Next
CR.SelectPrinter(Driver, NomeImpressora, Porta)
End If
'Embora nÆo coloquei aqui, eu tenho no meu c¢digo um Objeto chamada ObjetoCrystal, onde eu fa‡o a persistˆncia de tamanhos, mas vocˆs podem utilizar em Pixels. Lembrando que o Pixel nÆo ‚ um tamanho fixo, para calcul -lo vocˆs precisarÆo saber o Dpi (Dots per Inc “Pontos por Polegada”) da Impressora, fazer a conversÆo de polegadas para Pixel. Da¡ eu criei a fun‡Æo CPixel. Deixei publicado a fun‡Æo no final deste artigo.
If Not ObjetoCrystal.TamanhoPadrao Then
CR.PaperSize = CRAXDRT.CRPaperSize.crPaperUser
Dim LarguraPapelMilimetros As Double = Me.LarguraPapelMilimetros
Dim AlturaPapelMilimetros As Double = Me.AlturaPapelMilimetros
Dim DpiImpressora As Double = DpiImpressoraDesigner
Dim LengthPapel As Double = CPixel(AlturaPapelMilimetros, DpiImpressora)
Dim LarguraPapel As Double = CPixel(LarguraPapelMilimetros, DpiImpressora)
CR.SetUserPaperSize(LengthPapel, LarguraPapel)
End If
Desenvolvedor VB.NET