SoloCodigo
Bases de Datos => Crystal Reports => Mensaje iniciado por: jocddz en Miércoles 8 de Julio de 2009, 22:46
-
Saludos comunidad
Primer link de web que selecciono al buscar un foro de la internet donde alguno de los presentes pueda orientarme en esta situacion, agradeceria mucho la ayuda.
Tengo varios reportes Crystal en una carpeta (archivos .rpt)
Todos estan hechos en Crystal Report 8.5
El problema esta presente en un programa viejo, esta hecho en Visual Basic 6.
Tratar de migrar un programa de VB6 a VB.NET que ha llevado anios en uso, pasarlo solo por este percance al menos no me es opcional en estos momentos, ya que tardaria mucho, no es un progama enorme pero tampoco es pequeno.
La razon de pasar de CR8.5 a CR11 es porque debo de cambiar el logo del cabecero de los reportes, el programa se ha vuelto multiusuario, es decir, tiene mas de una sesión de usuario. Y cada usuario tiene su propio logo para los reportes.
CR8.5 no posee la funcionalidad de imagenes OLE dinamicas, mientras que CR11 si, de ahi el cambio.
Respalde los archivos .RPT y realice un intento de cargar un reporte ya trabajo en CR11 (agregando lo de la imagen la cual posee como ruta una direccion en un campo de una tabla).
El problema es que yo no uso el Viewer, sino que hago los reportes directamente en Crystal Report y luego simplemente lo llamo desde el programa a nivel de codigo.
Tengo muchos reportes y no deseo hacer X cantidad de Form para cada Viewer, por lo cual pregunta:
Cómo puede llamarse un archivo .RPT de CR11, igual como se podia (y se puede) en CR8.5
CrystalReport1.ReportFileName = "C:SAHIMreppresupuesto.rpt"
CrystalReport1.RetrieveDataFiles CrystalReport1.WindowTitle = "Presupuesto Médico"
CrystalReport1.WindowState = crptMaximized
CrystalReport1.PrintReport
Con el codigo anterior asi es como llamo un reporte en CR8.5 con el control que se incrusta en la ventana pero no es un Viewer.
lamento si el codigo no se sale bien, al pacerer el Textbox de escribir los post de esta web presenta problemas con Internet Explorer 8, puesto que con forme estoy escribendo este ultimo parrafo, el scrollbar verticar se mueve hacia arriba y hacia abajo con cada letra que ingreso, y no se a que se deba este mal funcionamiento.
saludos.
-
Ok, como veo que nadie respondio, pongo el modo en que yo lo medio solucione, y digo medio porque no me fue posible hacerlo sin el CRViewer, lo que hice fue generarlo dinamicamente para no tener que meterlo en modo diseño en algun formulario y me haga mas lento el sistema.
Aqui va el codigo:
'Declaro mi CRViewer
Dim Reporte As New CrystalDecisions.Windows.Forms.CrystalReportViewer
'Declaro un objeto de Reporte
Dim RPT As CrystalDecisions.CrystalReports.Engine.ReportDocument
'Este es mi reporte, lo tengo embebido en la aplicación, se lo asigno a mi variable
RPT = New Rec_Financieros
'Los datos que le pasare a mi reporte
Dim sCon As String = "Select * From vMontosMes Where Bloque = '" & Bloque & "' And AnioPAT = " & Ano.ToString & " And VersionPAT = " & Version.ToString _
& " ORDER BY NombreObra, Orden"
'Modifico unos titulos
Dim Tit As CrystalDecisions.CrystalReports.Engine.TextObject = RPT.ReportDefinition.ReportObjects("Tit01")
Tit.Text = "PROGRAMA ANUAL DE TRABAJO " & Ano.ToString
Tit = RPT.ReportDefinition.ReportObjects("Tit03")
Tit.Text = "BLOQUE - " & Bloque
'Aqui asigno los datos al reporte, Rs2DataTable es una funcion mia que a partir de una consulta me regresa un DataTable
RPT.SetDataSource(Rs2DataTable(sCon))
RPT.Refresh()
'Aqui creo una pagina nueva en un TabControl, donde pondre el CRViewer
Dim Pagina As New C1.Win.C1Command.C1DockingTabPage
C1DockingTab1.TabPages.Add(Pagina)
Pagina.Text = "Reporte"
Pagina.Visible = True
Pagina.Show()
Pagina.Select()
'Aqui pongo a la Pagina como padre de mi CRViewer
Reporte.Parent = Pagina
'Que el CRviewer llene toda la pagina
Reporte.Dock = DockStyle.Fill
'Le asigno el reporte
Reporte.ReportSource = RPT
'le doy el zoom que requiero
Reporte.Zoom(75)
'Lo muetro
Reporte.Show()
Reporte.Visible = True
Aunque este es un pedazo de codigo que uso en un proyecto mio, espero que les sirva como guia para no tener que meter el CRViewer en modo diseño, por cierto el codigo es en VB.NET 2008.
Saludos
Isaias Campos