none
VB2010 - Problema con reporte de Crystal Reports RRS feed

  • Pregunta

  • Estimados

    tengo una rutina en que debo generar diferentes informes, de acuerdo a la consulta. Pero solo cambian los nombre de los archivos pero el contenido se mantiene de la primer registro.

     Private Sub Imprimir()
            
            If Not My.Computer.FileSystem.DirectoryExists(MisDocumentos) Then
                My.Computer.FileSystem.CreateDirectory(MisDocumentos)
            End If
    
            If oDataBuscar5.Rows.Count > 0 Then
    
                For Each fila As DataRow In oDataBuscar5.Rows()
                    Dim oInforme As New crGesRealidad
                    Dim mi_oDataReportes As New oDataReportes
    
                    Dim oSistema As Integer = CInt(fila("SIS_COD"))
                    Dim SisNombre As String = CStr(fila("SIS_CODE"))
    
                    oDataBuscar = oCC.BusquedaCostos(CDate(Fecha).ToString("yyyy"), oSistema).Tables("Centros")
    
                    mi_oDataReportes.GesRealidad.Merge(oDataBuscar, True, System.Data.MissingSchemaAction.Ignore)
                    oInforme.SetDataSource(mi_oDataReportes)
    
                    Dim Archivo As String = "/Informe de Realidad " & CDate(Fecha).ToString("yyyy") & "-" & SisNombre & ".pdf"
                    oInforme.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, MisDocumentos & Archivo)
                    oInforme.Close()
                Next
            End If
    
    ....
    ....
        End Sub
    

    • Cambiado Enrique M. Montejo miércoles, 4 de enero de 2012 6:36 consulta Crystal Reports (De:Lenguaje VB.NET)
    martes, 3 de enero de 2012 21:54

Todas las respuestas

  • Marco,

    ¿Cuál es la pregunta/problema?

    Si me lo permites, te sugiero que uses la clase Path para obtener el nombre del archvo. En vez de MisDocumentos & Archivo puedes hacer Path.Combine(MisDocumentos,Archivo). La ventaja de esta clase es que se encarga de manejar los separadores "\" y te garantiza que te construye un Path válido.

    Otra idea que te propongo es que uses una notación uniforme para los nombres de clases y objetos. Acá tienes clases cuyo nombre comienza con "o" y luego objetos cuyo nombre comienza con "o". Yo personalmente me he confundido tratando de entender el código.

    Saludos,

    Y.


    Si la respuesta te ha servido, márcala como útil.
    miércoles, 4 de enero de 2012 8:19
  • Gracias por tus consejos, el problema que presento es que tecnicamente con esa rutina debería generar cinco reportes. Efectivamente los genera, cada uno los nombres de ruta que corresponden "Informes de Realidad 2012 - A.pdf", "Informes de Realidad 2012 - B.pdf" y así, sucesivamente por ejemplo. Pero su contenido, o sea la información que debiera mostrar solo corresponde a uno de ellos, o sea el contenido del informe A se repite en los cinco reportes, aunque la ruta esten bien.

     

    miércoles, 4 de enero de 2012 12:31
  • Déjame ver si entiendo el problema:

    Quieres generar 5 reportes, todos con el mismo formato, pero con datos distintos. El problema, casi seguramente, no tiene que ver con Crystal sino con lo que haga la clase oDataReporte y lo que pasa en estas dos llamadas:

     

    oDataBuscar = oCC.BusquedaCostos(CDate(Fecha).ToString("yyyy"), oSistema).Tables("Centros")

    mi_oDataReportes.GesRealidad.Merge(oDataBuscar, True, System.Data.MissingSchemaAction.Ignore)

    Suerte con eso.

    Saludos,

    Y.

     


    Si la respuesta te ha servido, márcala como útil.
    • Propuesto como respuesta Yván Ecarri jueves, 5 de enero de 2012 7:56
    jueves, 5 de enero de 2012 7:56