martes, 9 de abril de 2013

Actualizar report al cambiar DataSetSource en Crystal Reports

Hoy utilizando Crystal Reports con clases propias, me surgió el siguiente problema:

Al cambiarle el DataSetSource al report, no se me actualizaba el CrystalReportViewer.

Probé hacer refresh en el report, y no, la solución era otra. La solución fue utilizar el método RefreshReport de mi CrystalReportViewer, y listo! se solucionó.

Ejemplo:

namespace Example
{
    public partial class Form: PreloadForm
    {
        protected override void PreloadWindow()
        {
            base.PreloadWindow();

            try
            {
                // Genero el listado de objetos a incluir en el report
                var list = Report.Generate();

                // Aquí ingreso los datos del reporte
                this.ReportJobsByColab1.SetDataSource(list);

                // Y aquí actualizo el view
                this.crystalReportViewer1.RefreshReport();
            }
            catch (Exception ex)
            {
                UIHelper.ShowException(ex);
                this.Close();
            }
        }
    }
}