internal static AlimentacionEstadoComederoModel Generar(DataSet ds) { var modelo = new AlimentacionEstadoComederoModel(); MetodoBase(() => { DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; modelo.DatosReporteComederoInfo = new System.Collections.ObjectModel.ObservableCollection <AlimentacionEstadoComederoInfo>(MapearDatos(dt)); dt = ds.Tables[ConstantesDAL.DtDetalle]; modelo.FechaServidorBD = obtenerfecha(dt); }); return(modelo); }
private void GenerarReporte() { try { var organizacion = (OrganizacionInfo)cmbOrganizacion.SelectedItem; if (organizacion == null || organizacion.OrganizacionID == 0) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReporteEstadoComerdero_MsgSelecioneOrganizacion, MessageBoxButton.OK, MessageImage.Warning); cmbOrganizacion.Focus(); return; } string division = Contexto.Division; int organizacionID = organizacion.OrganizacionID; DateTime fechaReporte = dtFecha.SelectedDate.Value; //infos reporte página principal List <ReporteEstadoComederoInfo> ListaRptEstadoComedero = new List <ReporteEstadoComederoInfo>(); ReporteEstadoComederoInfo oRptEstadoComedero = new ReporteEstadoComederoInfo(); //Infos para el primer sub informe List <AlimentacionEstadoComederoReporteModel> detalle = new List <AlimentacionEstadoComederoReporteModel>(); List <ReporteEstadoComederosDetalleInfo> ListaDetalle = new List <ReporteEstadoComederosDetalleInfo>(); AlimentacionEstadoComederoModel modelos = new AlimentacionEstadoComederoModel(); ReporteEstadoComederosDetalleInfo oListaDetalle; //Infos para el segundo sub informe List <ReporteEstadoComederoCorralesEstadoInfo> ListaCorralesComederos = new List <ReporteEstadoComederoCorralesEstadoInfo>(); ReporteEstadoComederoCorralesFormulaInfo oCorralesFormula; //infos para el tercer subinforme ReporteEstadoComederoCorralesEstadoInfo oCorralesComederos; AlimentacionEstadoComederoModel modelo = new AlimentacionEstadoComederoModel(); //Comienza seccion generar datos informe pagina princiapal oRptEstadoComedero.Titulo = Properties.Resources.ReporteEstadoComerdero_TituloPorFormula; oRptEstadoComedero.RangoFechas = fechaReporte.ToShortDateString(); oRptEstadoComedero.Organizacion = string.Format(Properties.Resources.Reporte_NombreEmpresa, division); ListaRptEstadoComedero.Add(oRptEstadoComedero); //Termina seccion generar datos informe pagina principal //--> //Comienza generar datos para el primer informe modelos = controlador.GenerarReporteDetallado(organizacionID); foreach (var dato in modelos.DatosReporteComederoInfo) { oListaDetalle = new ReporteEstadoComederosDetalleInfo(); oListaDetalle.Codigo = dato.Corral; oListaDetalle.Lote = dato.Lote; oListaDetalle.TipoGanado = dato.TipoGanado; oListaDetalle.Cabezas = dato.Cabezas; oListaDetalle.DiasEngorda = dato.DiasEngorda; oListaDetalle.PesoProyectado = dato.PesoProyectado; oListaDetalle.DiasUltimaFormula = dato.DiasUltimaFormula; oListaDetalle.Prom5Dias = dato.Promedio5Dias; oListaDetalle.EstadoComederoID = dato.EstadoComederoHoy; oListaDetalle.AMProgramadoHoy = dato.AlimentacionProgramadaMatutinaHoy; oListaDetalle.FormulaDescAMProgramadoHoy = dato.FormulaProgramadaMatutinaHoy; oListaDetalle.PMProgramadoHoy = dato.AlimentacionProgramadaVespertinaHoy; oListaDetalle.FormulaDescPMProgramadoHoy = dato.FormulaProgramadaVespertinaHoy; oListaDetalle.TotalProgramadoHoy = dato.TotalProgramadoHoy; oListaDetalle.ECRealServidorAyer = dato.EstadoComederoRealAyer; oListaDetalle.AMRealServidorAyer = dato.AlimentacionRealMatutinaAyer; oListaDetalle.FormulaDescAMServidaAyer = dato.FormulaRealMatutinaAyer; oListaDetalle.PMRealServidorAyer = dato.AlimentacionRealVespertinoAyer; oListaDetalle.FormulaDescPMServidaAyer = dato.FormulaRealVespertinoAyer; oListaDetalle.TotalServidoAyer = dato.TotalRealAyer; oListaDetalle.Kilogramos3 = dato.Kilogramos3Dias; oListaDetalle.CxC3 = dato.ConsumoCabeza3Dias; oListaDetalle.EC3 = dato.EstadoComedero3Dias; oListaDetalle.Kilogramos4 = dato.Kilogramos4Dias; oListaDetalle.CxC4 = dato.ConsumoCabeza4Dias; oListaDetalle.EC4 = dato.EstadoComedero4Dias; oListaDetalle.Kilogramos5 = dato.Kilogramos5Dias; oListaDetalle.CxC5 = dato.ConsumoCabeza5Dias; oListaDetalle.EC5 = dato.EstadoComedero5Dias; oListaDetalle.Kilogramos6 = dato.Kilogramos6Dias; oListaDetalle.CxC6 = dato.ConsumoCabeza6Dias; oListaDetalle.EC6 = dato.EstadoComedero6Dias; oListaDetalle.Kilogramos7 = dato.Kilogramos7Dias; oListaDetalle.CxC7 = dato.ConsumoCabeza7Dias; oListaDetalle.EC7 = dato.EstadoComedero7Dias; oListaDetalle.Titulo = Properties.Resources.ReporteEstadoComerdero_TituloPrincipal; oListaDetalle.RangoFechas = modelos.FechaServidorBD.ToShortDateString(); oListaDetalle.Organizacion = string.Format(Properties.Resources.Reporte_NombreEmpresa, division); ListaDetalle.Add(oListaDetalle); } //Termina negerar datos para el primer reporte //--> //Comienza generar datos para el segundo reporte List <ReporteEstadoComederoCorralesFormulaInfo> ListaCorralesFormula = new List <ReporteEstadoComederoCorralesFormulaInfo>(); modelo = controlador.GenerarSegundoReporte(organizacionID); foreach (var cpf in modelo.CorralesPorFormula) { oCorralesFormula = new ReporteEstadoComederoCorralesFormulaInfo(); oCorralesFormula.corral = cpf.TotalCorrales.ToString(); oCorralesFormula.Formula = cpf.FormulaDescripcion; ListaCorralesFormula.Add(oCorralesFormula); } foreach (var dato in ListaCorralesFormula) { dato.Titulo = Properties.Resources.ReporteEstadoComerdero_TituloPorFormula; dato.RangoFechas = DateTime.Now.ToShortDateString(); dato.Organizacion = string.Format(Properties.Resources.Reporte_NombreEmpresa, division); } //Finaliza generar datos para el segundo reporte //--> //Comienza generar datos para el tercer sub informe foreach (var cpec in modelo.CorralesPorEstadoComedero) { oCorralesComederos = new ReporteEstadoComederoCorralesEstadoInfo(); oCorralesComederos.IdEstadoComedero = cpec.EstadoComederoID; oCorralesComederos.DescripcionComedero = cpec.EstadoComederoDescripcion; oCorralesComederos.Corrales = cpec.TotalCorrales; ListaCorralesComederos.Add(oCorralesComederos); } foreach (var dato in ListaCorralesComederos) { dato.Titulo = Properties.Resources.ReporteEstadoComerdero_TituloPorEstado; dato.RangoFechas = DateTime.Now.ToShortDateString(); dato.Organizacion = string.Format(Properties.Resources.Reporte_NombreEmpresa, division); } //Termina generar datos para el tercer sub informe if (ListaDetalle.Count > 0) { var documento = new ReportDocument(); var reporte = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\\Reporte\\RptReporteEstadoComedero.rpt"); documento.Load(reporte); documento.DataSourceConnections.Clear(); documento.SetDataSource(ListaRptEstadoComedero); documento.OpenSubreport("RptReporteEstadoComederoDetalle.rpt") .SetDataSource(ListaDetalle); documento.OpenSubreport("RptReportesEstadoComederoCorralesFormula.rpt") .SetDataSource(ListaCorralesFormula); documento.OpenSubreport("RptReportesEstadoComederoCorralesComederos.rpt") .SetDataSource(ListaCorralesComederos); documento.Refresh(); var forma = new ReportViewer(documento, Properties.Resources.ReporteEstadoComerdero_TituloPrincipal); forma.MostrarReporte(); forma.Show(); } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReporteEstadoComerdero_NoExistenDatos, //"No existe información en la fecha mostrada en pantalla. Favor de verificar.", MessageBoxButton.OK, MessageImage.Warning); } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReporteEstadoComerdero_FalloCargarReporte, //"No existe información en la fecha mostrada en pantalla. Favor de verificar.", MessageBoxButton.OK, MessageImage.Error); } }