Inicializar Location de las tablas de Crystal en VS2005

14/03/2007 - 12:02 por Baldor Renwald | Informe spam
No consigo que se muestre un informe de Crystal Reports en Visual Studio
2005.
En el PC de desarrollo todo funciona sin problemas, pero al instalar la
aplicación en el cliente, se genera un error al ejecutar la línea:

CrTable.Location = vgsNombreBD & ".dbo." &
CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)

del bucle: For Each CrTable In
CrystalDecisions.CrystalReports.Engine.Tables


El texto del error es:

Error de impresion: Error del motor de consulta desconocido
Error en el archivo
C:\DOCUME~1\IMPRES~1\CONFIG~1\Temp\FichaCliente{8AAC6D51-ADCA-447C-A8EA-4894649F447D}.rpt:
Error del motor de busqueda desconocido

En los requisitos previos del proyecto ya marque el Crystal Reports para
.NET Framework 2.0, de modo que el Proyecto de Instalación genera el fichero
CRRedist2005_x86.msi que se instala automáticamente con la aplicación en el
cliente. La base de datos es SQLServer 2005.

¿Me falta instalar algo más? ¿Algún módulo de combinación? ¿La propiedad
Location de las tablas del report, la estoy indicando correctamente, o ha
cambiado algo respecto a como se hacía en VS2003?

Ayuda, por favor.
Gracias.

Preguntas similare

Leer las respuestas

#1 aydai
15/03/2007 - 10:33 | Informe spam
Que tipo de conexion usas para tus informes???
"Baldor Renwald" escribió en el mensaje
news:
No consigo que se muestre un informe de Crystal Reports en Visual Studio
2005.
En el PC de desarrollo todo funciona sin problemas, pero al instalar la
aplicación en el cliente, se genera un error al ejecutar la línea:

CrTable.Location = vgsNombreBD & ".dbo." &
CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)

del bucle: For Each CrTable In
CrystalDecisions.CrystalReports.Engine.Tables


El texto del error es:

Error de impresion: Error del motor de consulta desconocido
Error en el archivo
C:\DOCUME~1\IMPRES~1\CONFIG~1\Temp\FichaCliente{8AAC6D51-ADCA-447C-A8EA-4894649F447D}.rpt:
Error del motor de busqueda desconocido

En los requisitos previos del proyecto ya marque el Crystal Reports para
.NET Framework 2.0, de modo que el Proyecto de Instalación genera el
fichero CRRedist2005_x86.msi que se instala automáticamente con la
aplicación en el cliente. La base de datos es SQLServer 2005.

¿Me falta instalar algo más? ¿Algún módulo de combinación? ¿La propiedad
Location de las tablas del report, la estoy indicando correctamente, o ha
cambiado algo respecto a como se hacía en VS2003?

Ayuda, por favor.
Gracias.


Respuesta Responder a este mensaje
#2 Baldor Renwald
15/03/2007 - 11:19 | Informe spam
La conexión en el informe de Crystal es OLEDB (ADO). Y en el PC de
desarrollo funciona correctamente.
Y la forma exacta en la cargo el informe y establezco la conexión es esta:


Public Sub sgImprimirFichaCliente(ByVal piid_cliente As Integer, ByVal
pbVistaPrevia As Boolean)
Dim CR As New CrystalDecisions.CrystalReports.Engine.ReportDocument
CR.Load(vgsRutaInformes & "FichaCliente.rpt")
CR.SetDatabaseLogon("sa", vgsPasswordBD, vgsServidorSQL, vgsNombreBD)
ReportLogOn(CR)
CR.DataDefinition.FormulaFields("MostrarLogo").Text =
vgbMostrarLogo.ToString
CR.SetParameterValue("id_cliente", piid_cliente)
CR.PrintOptions.PrinterName = vgsImpresora
If pbVistaPrevia Then
' Set the Crytal Report Viewer control's source to the report
document.
Dim frmpreview As New frmPreview
frmpreview.CRV.ReportSource = CR
frmpreview.ShowDialog()
Else
CR.PrintToPrinter(1, False, 0, 0)
End If
CR.Dispose()
End Sub

Public Sub ReportLogOn(ByRef CR As
CrystalDecisions.CrystalReports.Engine.ReportDocument)
Dim crConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo
Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim CrTable As CrystalDecisions.CrystalReports.Engine.Table
Dim crtableLogoninfos As New CrystalDecisions.Shared.TableLogOnInfos
Dim crtableLogoninfo As New CrystalDecisions.Shared.TableLogOnInfo
With crConnectionInfo
.ServerName = vgsServidorSQL
.DatabaseName = vgsNombreBD
.UserID = vgsUsuarioBD
.Password = vgsPasswordBD
End With
crTables = CR.Database.Tables
For Each CrTable In crTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
CR.DataSourceConnections(vgsServidorSQL,
vgsNombreBD).SetConnection(vgsServidorSQL, vgsNombreBD, vgsUsuarioBD,
vgsPasswordBD)
'AQUI SE PRODUCE EL ERROR
CrTable.Location = vgsNombreBD & ".dbo." &
CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)
Next
'Tratar los SUBREPORTs
Dim crSections As CrystalDecisions.CrystalReports.Engine.Sections
Dim crSection As CrystalDecisions.CrystalReports.Engine.Section
Dim crReportObjects As
CrystalDecisions.CrystalReports.Engine.ReportObjects
Dim crReportObject As
CrystalDecisions.CrystalReports.Engine.ReportObject
Dim crSubreportObject As
CrystalDecisions.CrystalReports.Engine.SubreportObject
Dim crSubreportDocument As
CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim crDatabase As CrystalDecisions.CrystalReports.Engine.Database
crSections = CR.ReportDefinition.Sections
For Each crSection In crSections
crReportObjects = crSection.ReportObjects
For Each crReportObject In crReportObjects
If crReportObject.Kind =
CrystalDecisions.[Shared].ReportObjectKind.SubreportObject Then
crSubreportObject = CType(crReportObject,
CrystalDecisions.CrystalReports.Engine.SubreportObject)
crSubreportDocument =
crSubreportObject.OpenSubreport(crSubreportObject.SubreportName)
crDatabase = crSubreportDocument.Database
crTables = crDatabase.Tables
For Each CrTable In crTables
With crConnectionInfo
.ServerName = vgsServidorSQL
End With
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.Location = vgsNombreBD & ".dbo." &
CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
End If
Next
Next
End Sub


Y el error creo que se genera al pasar por la instrucción: CrTable.Location
= ...
Respuesta Responder a este mensaje
#3 Baldor Renwald
15/03/2007 - 11:32 | Informe spam
Perdon, la linea:
CR.DataSourceConnections(vgsServidorSQL,
vgsNombreBD).SetConnection(vgsServidorSQL, vgsNombreBD, vgsUsuarioBD,
vgsPasswordBD)

se me ha colado, actualmente no la uso, solo era una prueba intentando
averiguar la causa del problema.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida