Olá,
a versão que utilizo é: Crystal for Visual Studio 2005.
Tenho dois bancos, um para desenvolver e um para o usuário testar.
Os relatórios funcionam perfeitos no banco de desenvolvimento porém quando aponto para o banco de dados de teste ele perde (não exibe) os dados, mesmo eu passando o banco em tempo de execução (código fonte).
Eu já vinha tendo este problema, mas eu contornava de forma "manual" indo na opção "Set Datasource location" (em Database Fields no Field Explorer) e apontando para o banco de dados de teste. Rodava a aplicação e funcionava
então fazia o Build/publish e a aplicação e passava a funcionar no banco de dados de teste. Porém desde que passei a utilizar uma SP dentro do relatório não consigo apontar para o banco de dados de teste nem desta
forma "manual". Nem ao menos no "Preview Report".
As tabelas e a SP estão identicas nos dois bancos. A única coisa que muda de um banco de dados para o outro é o nome do banco de dados.
Alguém tem alguma luz ?
Segue o código :
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
' Conexão via AD
myConnectionInfo.ServerName = ConfigurationManager.AppSettings.Item("servidor")
myConnectionInfo.DatabaseName = Catalog
myConnectionInfo.IntegratedSecurity = True
Dim i As Integer = 0
Dim myTables As Tables = crReportDocument.Database.Tables
Dim myTable As CrystalDecisions.CrystalReports.Engine.Table
For Each myTable In myTables
Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
myTableLogonInfo.ConnectionInfo = myConnectionInfo
myTable.ApplyLogOnInfo(myTableLogonInfo)
crReportDocument.Database.Tables.Item(i).ApplyLogOnInfo(myTableLogonInfo)
crReportDocument.Database.Tables(i).Location = crReportDocument.Database.Tables(i).Name
myTable.Location = crReportDocument.Database.Tables(i).Name
i = i + 1
Next
' outros códigos... etc etc etc... e segue com ...
Dim oPf As ParameterValues
Dim oPv As ParameterDiscreteValue
oPf = New ParameterValues
oPv = New ParameterDiscreteValue
oPv.Value = m.Prazo
oPf.Add(oPv)
crReportDocument.SetParameterValue("@Prazo", oPv)
oPf = New ParameterValues
oPv = New ParameterDiscreteValue
oPv.Value = Format(CType(m.DtRegistro, Date), "MM/dd/yyyy")
oPf.Add(oPv)
crReportDocument.SetParameterValue("@DtRegistro", oPv)
oPf = Nothing : oPv = Nothing
crReportDocument.RecordSelectionFormula = strSelectionFormula.ToString()
crReportDocument.Export()
'escrevendo o pdf para o browser do cliente
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "inline; filename=Contrato.pdf") ' "", ReportName
Response.WriteFile(strPDFTmp)
Response.Flush()
Response.Close()
"passei por aqui..."