none
exportar un crystal report a pdf (con datos) RRS feed

  • Pregunta

  • actualmente tengo un proyecto con dos formularios:
    En el primero tengo un boton que al presionarlo hace una consulta a una BD y me llena automaticamente unas cajas de texto, y un boton(vista previa) que me abre el segundo formulario que a su vez contiene un Crystal Report Viewer y muestra un informe crystal con los datos de las cajas de texto que ya mencione.

    como puedo hacer que al presionar un botón, se genere y guarde ese reporte con datos, pero en formato pdf. (no importa si no se visualiza en ese instante el pdf), lo que interesa es que se genere y se guarde a manera de archivo.

    espero puedan ayudarme, gracias.

     nota:uso algo como esto, pero solo me guarda el pdf con el informe en blanco, no se "imprimen" los datos que envio de los textbox.

    Dim crearpdf As New mireporte
    
      Dim output As String = "c:/convertido.pdf"
    
      crearpdf.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
    
      crearpdf.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, output)
    
    
    
    
    miércoles, 19 de enero de 2011 0:13

Todas las respuestas

  • hola

    es el mismo informe (o rpt) el que grabas al pdf y e que visualizas en el CrystalReportViewer ?

    o sea si sos mismos datos que pasas a el Form con el Viewer se los pasas para que aplique el ExportToDisk() este ultimo no muestra informacion alguna ?

    has probado popner en el reporte un texto fijo, alguna textbox con algo escrito, que este en el header del reporte, solo para validar si el usar el ExportToDisk() este texto al menos parece en la exportacion

    - valida tambien si visualizas el reporte en el Viewer del form, si usas la opcion de exportar al hacerlo a pdf esta se genera adecuadamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 19 de enero de 2011 2:59
  • gracias por responder.

    * si,es el mismo informe

    * he puesto un texto directamente en el informe y usando el código que puse antes, si se muestra ese texto en el pdf, unicamente excluye los que le envío desde el otro form.

    * asi es cuando se abre el report viewer me muestra el informe con los datos que le envío y si doy click en el boton exportar del reportviewer me genera el pdf sin problema alguno.

    creo que mi código solo imprime el informe como fue creado de inicio, no se como indicarle que al generar el pdf incluya tambien los datos que le envio desde el otro formulario.

    miércoles, 19 de enero de 2011 3:16
  •  

    no me quedo muy claro esta parte "unicamente excluye los que le envío desde el otro form. "

    que envias desde el form ?

    o sea si en al otro form envias valores de filtro que luego suas nternamente para cargar algun dataset tipado que aplcias al informe, en este no intentes tomar los datos ya cargados, toma nuevamente los filtros carga un nuevo dataset tipado (que deberia arrojar los mismo registro que el del formulario) y luego graba el pdf

    valida que el dataset toipado que cargas (si es que usas uno) contiene datos para el reporte que exportas a disco

    usa la opcion de la primer imagen de este link Custom Visual Studio Visualizer

    con esto validas si de la query se cargan datos al reporte

    saludos

     

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 19 de enero de 2011 3:38
  •  

    no me quedo muy claro esta parte "unicamente excluye los que le envío desde el otro form. "

    que envias desde el form ?

    creo que no me he explicado bien, tengo dos formularios.

    en el primero tengo varios textbox que son llenados, al presionar un boton, esos valores (de los textbox) son mostrados en mi informe (el viewer que lo visualiza esta en un segundo formulario).

    entonces en el segundo formulario tengo un boton que debe generar el pdf, pero con el codigo que uso unicamente me "imprime" el informe tal y como fue creado al inicio, es decir no me muestra los datos que le mande antes. no se si me explico bien, y disculpa si te quito tiempo. muchas gracias por contestarme

    miércoles, 19 de enero de 2011 3:50
  • ahh pero entonces no estas enviado unformacion estilo dataset tipados como origend e datos al reporte, son datos indiduales de textbox los que envias al reporte

    son mostrados en mi informe (el viewer que lo visualiza esta en un segundo formulario).

    pero el informa y el viewer deberian esta juntos, o sea al segundo form deberias pasarle solo los datos de textbox y demas, y el informe (que imagino es el .rpt) y el viewer deberina esta junta esa logica

    puede usar propiedades o el constructor del form para apsar esta info al otro form

    [WinForms] – Pasaje de información formulario hijo

    pero informe y visualziador deberian estar juntos tomadno la info de que le pasas al form

    entonces en el segundo formulario tengo un boton que debe generar el pdf

    has probado generar el pdf desde el primer form, o sea desde donde tienes el informe ?

    algo que no me queda claro es a lo que llamas informe y que codigo usas en este, segun veo lo generas en el primer form, y el viewer lo tienes en el segundo

    si es asi es ahi donde esta el tema, el informa y el viewer deberian estar en el mismo form (o sea el segundo) y a este llegarla la info por parametro de los textobox y demas controles

    como fue creado al inicio, es decir no me muestra los datos que le mande antes.

    esta parte no la entendi, si el informe es el mismo, y lo generas en algun sitio, mientrtas conserves la instancia, ya se que lo pases a otro form para visualziar o que lo grabes directo a pdf este es el mismo informe

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 19 de enero de 2011 4:04
  • ahh pero entonces no estas enviado unformacion estilo dataset tipados como origend e datos al reporte, son datos indiduales de textbox los que envias al reporte

    te dejo mi codigo, a ver si asi me explico mejor soy un poco torpe para explicarme :)

    cuando digo informe me refiero al crystalreport.rpt

    en mi form1 tengo esto:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TxtNombre.Text="nombre"
    TxtApellido.Text="apellido" 
    TxtEDad.Text="edad" 
    Form2.Show()
     End Sub
    
    en mi form 2 tengo esto:

     

    Dim importar As CrystalDecisions.CrystalReports.Engine.TextObject
    
     Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
     importar = miinforme.Section1.ReportObjects.Item("nombre")
     importar.Text = Form1.TxtNombre.Text
     importar = miinforme.Section1.ReportObjects.Item("apellido")
     importar.Text = Form1.TxtApellido.Text
     importar = miinforme.Section1.ReportObjects.Item("edad")
     importar.Text = Form1.TxtEdad.Text
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     CrystalReportViewer1.ReportSource = miinforme.rpt
     End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
     Dim crearpdf As New miinforme
     Dim output As String = "c:/convertido.pdf"
     crearpdf.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
     crearpdf.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, output)
    
     End Sub
    
    el detalle esta en que al presionar el boton del form1, se abre el form2 y me visualiza el reporte con los datos que contenian los textbox del form1.
    en el form 2 hay un boton que me genera el pdf pero asi como esta mi codigo el pdf solo muestra el informe vacio no "imprime" los datos que le mando.
    miércoles, 19 de enero de 2011 4:58
  • bueno solo comentar que ya solucione mi problema, no se si es lo mejor pero por lo pronto satisface lo que kiero, gracias x la atencion.
    miércoles, 19 de enero de 2011 18:00