private void Calcular()
        {
            try
            {
                int      da = 0, dm = 0, dd = 0, ha = 0, hm = 0, hd = 0, tipo = 1;
                DateTime fecha = Fec.HasValue ? Fec.Value.Date : Fechas.GetFechaDateServer;
                //desde
                da = DAnios.HasValue ? DAnios.Value : 0;
                dm = DMeses.HasValue ? DMeses.Value : 0;
                dd = DDias.HasValue ? DDias.Value : 0;
                //hasta
                ha          = HAnios.HasValue ? HAnios.Value : 0;
                hm          = HMeses.HasValue ? HMeses.Value : 0;
                hd          = HDias.HasValue ? HDias.Value : 0;
                tipo        = Compurgado ? 1 : 0;
                LstInternos = new cCausaPenal().ObtenerReporte(((da * 365) + (dm * 30) + dd), ((ha * 365) + (hm * 30) + hd), tipo, fecha).Select(w => new cReporteCausaPenal()
                {
                    ID_ANIO        = w.ID_ANIO,
                    ID_IMPUTADO    = w.ID_IMPUTADO,
                    NOMBRE         = w.NOMBRE,
                    PATERNO        = w.PATERNO,
                    MATERNO        = w.MATERNO,
                    ANIO_GOBIERNO  = w.ANIO_GOBIERNO,
                    FOLIO_GOBIERNO = w.FOLIO_GOBIERNO,
                    FECHA_INICIO   = w.FECHA_INICIO,
                    S_ANIO         = w.S_ANIO,
                    S_MES          = w.S_MES,
                    S_DIA          = w.S_DIA,
                    C_ANIO         = w.C_ANIO,
                    C_MES          = w.C_MES,
                    C_DIA          = w.C_DIA,
                    A_ANIO         = w.A_ANIO,
                    A_MES          = w.A_MES,
                    A_DIA          = w.A_DIA,
                    PC_ANIO        = w.PC_ANIO,
                    PC_MES         = w.PC_MES,
                    PC_DIA         = w.PC_DIA,
                    ID_UB_CENTRO   = w.ID_UB_CENTRO
                });

                Resultado = LstInternos.Count();
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
        private void GenerarReporte()
        {
            try
            {
                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Repositorio.Visibility = Visibility.Collapsed;
                }));
                var centro = new cCentro().Obtener(GlobalVar.gCentro).FirstOrDefault();

                var datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1.Trim(),
                    Encabezado2 = Parametro.ENCABEZADO2.Trim(),
                    Encabezado3 = Parametro.ENCABEZADO3.Trim(),
                    Titulo      = "TIEMPO POR COMPURGAR",
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Centro      = centro.DESCR.Trim().ToUpper(),
                });
                DateTime fecha = Fec.HasValue ? Fec.Value.Date : Fechas.GetFechaDateServer;
                int      da = 0, dm = 0, dd = 0, ha = 0, hm = 0, hd = 0, tipo = 1;
                //desde
                da = DAnios.HasValue ? DAnios.Value : 0;
                dm = DMeses.HasValue ? DMeses.Value : 0;
                dd = DDias.HasValue ? DDias.Value : 0;
                //hasta
                ha   = HAnios.HasValue ? HAnios.Value : 0;
                hm   = HMeses.HasValue ? HMeses.Value : 0;
                hd   = HDias.HasValue ? HDias.Value : 0;
                tipo = Compurgado ? 1 : 0;

                LstInternos = new cCausaPenal().ObtenerReporte(((da * 365) + (dm * 30) + dd), ((ha * 365) + (hm * 30) + hd), tipo, fecha).Select(w => new cReporteCausaPenal()
                {
                    ID_ANIO        = w.ID_ANIO,
                    ID_IMPUTADO    = w.ID_IMPUTADO,
                    NOMBRE         = w.NOMBRE,
                    PATERNO        = w.PATERNO,
                    MATERNO        = w.MATERNO,
                    ANIO_GOBIERNO  = w.ANIO_GOBIERNO,
                    FOLIO_GOBIERNO = w.FOLIO_GOBIERNO,
                    FECHA_INICIO   = w.FECHA_INICIO,
                    S_ANIO         = w.S_ANIO,
                    S_MES          = w.S_MES,
                    S_DIA          = w.S_DIA,
                    C_ANIO         = w.C_ANIO,
                    C_MES          = w.C_MES,
                    C_DIA          = w.C_DIA,
                    A_ANIO         = w.A_ANIO,
                    A_MES          = w.A_MES,
                    A_DIA          = w.A_DIA,
                    PC_ANIO        = w.PC_ANIO,
                    PC_MES         = w.PC_MES,
                    PC_DIA         = w.PC_DIA,
                    ID_UB_CENTRO   = w.ID_UB_CENTRO
                });

                #region Reporte
                Reporte.LocalReport.ReportPath = "Reportes/rCausasPenales.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                Microsoft.Reporting.WinForms.ReportDataSource rds1 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds1.Name  = "DataSet3";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                Microsoft.Reporting.WinForms.ReportDataSource rds2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds2.Name  = "DataSet1";
                rds2.Value = LstInternos;
                Reporte.LocalReport.DataSources.Add(rds2);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Repositorio.Visibility = Visibility.Visible;
                    Reporte.RefreshReport();
                }));
                #endregion
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }