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); }
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(); }
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(); } }
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); } }