Пример #1
0
        public CReporte ObtenerReporte()
        {
            CReporte reporte = null;

            using (ISession Sesion = m_SessionFactory.OpenSession())
            {
                ICriteria criteria = Sesion.CreateCriteria <CReporte>();
                criteria.Add(Restrictions.Eq("Codigo", base.m_Parameter));
                IList <CReporte> lista = criteria.List <CReporte>();
                if (lista.Count > 0)
                {
                    reporte = lista.First();
                }
                else
                {
                    throw new Exception("No se ha encontrado ningún reporte con código: " + base.m_Parameter);
                }
            }
            return(reporte);
        }
Пример #2
0
        public override void Start()
        {
            try
            {
                object documento = (object)base.m_ObjectFlow;
                if (!(documento.GetType().GetProperty("TipoDocumento") == null))
                {
                    TipoDocumento tipoDocumento = (TipoDocumento)documento.GetType().GetProperty("TipoDocumento").GetValue(documento, null);
                    EReporte      reporte       = tipoDocumento.Reporte;
                    String        sql           = reporte.SQL;

                    foreach (ParametroReporte parametro in reporte.ParametrosSQL)
                    {
                        sql = sql.Replace(parametro.Nombre, documento.GetType().GetProperty(parametro.Propiedad).GetValue(documento, null).ToString());//.ValueByProperty(parametro.Propiedad).ToString());
                    }

                    ReportDocument reportDocument = new ReportDocument();
                    reportDocument.Load(String.Format("{0}{1}", FrmMain.CarpetaReportes, reporte.Ubicacion));
                    reportDocument.SetDataSource(HelperNHibernate.GetDataSet(sql));

                    foreach (ParametroReporte parametro in reporte.ParametrosCrystal)
                    {
                        reportDocument.SetParameterValue(parametro.Nombre, parametro.Valor);
                    }

                    FrmMain.MostrarReporte(reporte.Nombre, reportDocument);
                }
                else
                {
                    throw new Exception("No se ha seleccionado ningún Documento ...");
                }

                base.m_ResultProcess = EnumResult.SUCESS;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Source);
                MessageBox.Show(ex.InnerException.Message);
            }
            base.Start();
        }
Пример #3
0
        public override void Start()
        {
            FrmProgress frmProgreso = new FrmProgress();

            frmProgreso.Start(2, "Exportando ...");
            frmProgreso.Next();
            try
            {
                CReporte            reporte  = null;
                ExportFormatOptions opciones = null;
                ExportFormatType    formato;
                string nombreArchivo = string.Empty;
                string extension     = string.Empty;
                string sql           = string.Empty;
                if (base.m_ObjectFlow is DocumentoGenerico)
                {
                    DocumentoGenerico documento = (DocumentoGenerico)base.m_ObjectFlow;
                    reporte       = documento.TipoDocumento.Reporte;
                    nombreArchivo = string.Format("{0} - Nº {1} {2}", reporte.Nombre, documento.Numeracion, DateTime.Now.ToString("yyyy-MM-dd"));
                    sql           = reporte.SQL;
                    foreach (ParametroReporte Parametro in reporte.ParametrosSQL)
                    {
                        sql = sql.Replace(Parametro.Nombre, documento.ValueByProperty(Parametro.Propiedad).ToString());
                    }
                }
                else if (base.m_ObjectFlow is CReporte)
                {
                    reporte       = (CReporte)base.m_ObjectFlow;
                    nombreArchivo = string.Format("{0} {1}", reporte.Nombre, DateTime.Now.ToString("yyyy-MM-dd"));
                    sql           = reporte.SQL;
                    foreach (ParametroReporte Parametro in reporte.ParametrosSQL)
                    {
                        sql = sql.Replace(Parametro.Nombre, Parametro.Valor);
                    }
                }
                switch (base.m_Parameter)
                {
                case TypeEnum.CEnumExportFormat.PDF:
                    formato   = ExportFormatType.PortableDocFormat;
                    opciones  = new PdfRtfWordFormatOptions();
                    extension = ".pdf";
                    break;

                case TypeEnum.CEnumExportFormat.WORD:
                    formato   = ExportFormatType.WordForWindows;
                    opciones  = new PdfRtfWordFormatOptions();
                    extension = ".doc";
                    break;

                case TypeEnum.CEnumExportFormat.EXCEL:
                    formato   = ExportFormatType.Excel;
                    opciones  = new ExcelFormatOptions();
                    extension = ".xls";
                    break;

                default:
                    throw new Exception("El formato no es válido.");
                }
                if (reporte != null)
                {
                    ReportDocument CryRpt = new ReportDocument();
                    CryRpt.Load(String.Format("{0}{1}", FrmMain.CarpetaReportes, reporte.Ubicacion));
                    frmProgreso.Next();
                    // Si existe una consulta SQL se ejecuta.
                    if (sql.Trim().Length > 0)
                    {
                        CryRpt.SetDataSource(HelperNHibernate.GetDataSet(sql));
                    }
                    // Se reemplazan los parámetros Crystal.
                    foreach (ParametroReporte Parametro in reporte.ParametrosCrystal)
                    {
                        CryRpt.SetParameterValue(Parametro.Nombre, Parametro.Valor);
                    }
                    // Se exporta el reporte.
                    ExportOptions CrExportOptions;
                    DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
                    CrDiskFileDestinationOptions.DiskFileName = string.Format("{0}{1}{2}", FrmMain.CarpetaExportacion, nombreArchivo, extension);
                    CrExportOptions = CryRpt.ExportOptions;
                    {
                        CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                        CrExportOptions.ExportFormatType      = formato;
                        CrExportOptions.DestinationOptions    = CrDiskFileDestinationOptions;
                        CrExportOptions.FormatOptions         = opciones;
                    }
                    // Se exporta el archivo.
                    CryRpt.Export();
                    // Se inicia un proceso para abrir el archivo.
                    Process.Start(CrDiskFileDestinationOptions.DiskFileName);
                }
                else
                {
                    throw new Exception("Entidad no válida.");
                }
                base.m_ResultProcess = EnumResult.SUCESS;
            }
            catch (Exception ex)
            {
                SoftException.Control(ex);
            }
            finally
            {
                frmProgreso.Close();
                base.Start();
            }
        }
Пример #4
0
        public override void Start()
        {
            try
            {
                if (string.IsNullOrEmpty(base.m_Parameter))
                {
                    if (base.m_ObjectFlow is CReporte)
                    {
                        CReporte       Reporte        = (CReporte)base.m_ObjectFlow;
                        String         SQL            = Reporte.SQL;
                        ReportDocument ReportDocument = new ReportDocument();
                        ReportDocument.Load(String.Format("{0}{1}", FrmMain.CarpetaReportes, Reporte.Ubicacion));
                        foreach (ParametroReporte Parametro in Reporte.ParametrosSQL)
                        {
                            SQL = SQL.Replace(Parametro.Nombre, Parametro.Valor);
                        }

                        if (SQL.Trim().Length > 0)
                        {
                            ReportDocument.SetDataSource(HelperNHibernate.GetDataSet(SQL));
                        }

                        foreach (ParametroReporte Parametro in Reporte.ParametrosCrystal)
                        {
                            ReportDocument.SetParameterValue(Parametro.Nombre, Parametro.Valor);
                        }
                        FrmMain.MostrarReporte(Reporte.Nombre, ReportDocument);
                    }
                    else
                    {
                        throw new Exception("No se ha seleccionado ningún Reporte ...");
                    }
                }
                else
                {
                    CReporte reporte = ObtenerReporte();
                    String   sql     = reporte.SQL;

                    foreach (ParametroReporte parametro in reporte.ParametrosSQL)
                    {
                        sql = sql.Replace(parametro.Nombre, base.m_ObjectFlow.GetType().GetProperty(parametro.Propiedad).GetValue(base.m_ObjectFlow, null).ToString());//.ValueByProperty(parametro.Propiedad).ToString());
                    }

                    ReportDocument reportDocument = new ReportDocument();
                    reportDocument.Load(String.Format("{0}{1}", FrmMain.CarpetaReportes, reporte.Ubicacion));
                    reportDocument.SetDataSource(HelperNHibernate.GetDataSet(sql));

                    foreach (ParametroReporte parametro in reporte.ParametrosCrystal)
                    {
                        reportDocument.SetParameterValue(parametro.Nombre, parametro.Valor);
                    }

                    FrmMain.MostrarReporte(reporte.Nombre, reportDocument);
                }
                base.m_ResultProcess = EnumResult.SUCESS;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Source);
                MessageBox.Show(ex.InnerException.Message);
            }
        }