• Lunes 13 de Mayo de 2024, 00:49

Autor Tema:  Cargar archivo .RPT de CR11 sin el CRViewer  (Leído 4462 veces)

jocddz

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Cargar archivo .RPT de CR11 sin el CRViewer
« en: Miércoles 8 de Julio de 2009, 22:46 »
0
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.

icamposb

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Cargar archivo .RPT de CR11 sin el CRViewer
« Respuesta #1 en: Martes 22 de Septiembre de 2009, 23:23 »
0
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:

Citar
       '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