Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        seguridad = new SeguridadCB.Seguridad();
        try
        {
            objApp.ImplementadorMensajes.ContenedorActual = this;
            if (!IsPostBack)
            {
                usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                if (ddlEmpresa.Items.Count == 0)
                {
                    Carga_Corporativo();
                }
                Carga_TipoFuenteInformacion();
                Carga_Banco(Convert.ToInt32(ddlEmpresa.SelectedItem.Value));

                this.grvFuenteInformacion.DataSource = tblFuenteInformacion;
                this.grvFuenteInformacion.DataBind();

                Consulta_FuenteInformacion();
                GenerarTablaFuenteInformacion();
            }
            LlenaGridViewFuenteInformacion();
            this.ddlEmpresa.Focus();
        }
        catch (Exception)
        {
        }
        finally
        {
        }
    }
Example #2
0
 /// <summary>
 /// Lee el metodo que llena la lista con las conciliaciones
 /// </summary>
 public void Consulta_Conciliacion()
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     seguridad.Conexion.ConnectionString = objApp.CadenaConexion;
     usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         listaConciliaciones = objApp.Consultas.ConsultaConciliacion(
             Convert.ToInt32(ddlEmpresa.SelectedItem.Value),
             Convert.ToInt32(ddlSucursal.SelectedItem.Value),
             Convert.ToInt32(this.ddlGrupo.SelectedItem.Value),
             Convert.ToInt32(this.ddlAñoConciliacion.SelectedItem.Value),
             Convert.ToSByte(this.ddlMesConciliacion.SelectedItem.Value),
             Convert.ToSByte(this.ddlTipoConciliacion.SelectedItem.Value),
             Convert.ToString(this.ddlStatusConciliacion.SelectedItem.Text),
             usuario.IdUsuario.Trim());
         tipoConciliacion   = Convert.ToSByte(this.ddlTipoConciliacion.SelectedItem.Value);
         statusConciliacion = Convert.ToString(this.ddlStatusConciliacion.SelectedItem.Text);
         habilitarOpcionesMenuContextual();
     }
     catch (Exception ex)
     {
         objApp.ImplementadorMensajes.MostrarMensaje("Error:\n" + ex.Message);
     }
 }
Example #3
0
    /// <summary>
    ///Consulta el detalle del Folio Externo
    /// </summary>
    public void Consulta_TablaDestinoDetalle(Conciliacion.RunTime.ReglasDeNegocio.Consultas.Configuracion configuracion, int empresa, int sucursal, int año, int folioExterno)//Lee el metodo que llena la lista con las conciliaciones
    {
        Conciliacion.RunTime.App objApp    = new Conciliacion.RunTime.App();
        SeguridadCB.Seguridad    seguridad = new SeguridadCB.Seguridad();

        System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
        if (Connection.State == ConnectionState.Closed)
        {
            seguridad.Conexion.Open();
            Connection = seguridad.Conexion;
        }
        try
        {
            listaDestinoDetalle = objApp.Consultas.ConsultaTablaDestinoDetalle(
                configuracion,
                empresa,
                sucursal,
                año,
                folioExterno);
        }
        catch (Exception ex)
        {
            objApp.ImplementadorMensajes.MostrarMensaje("Error:\n" + ex.Message);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        seguridad = new SeguridadCB.Seguridad();
        try
        {
            if (HttpContext.Current.Request.UrlReferrer != null)
            {
                if ((!HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("SitioConciliacion")) || (HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("Acceso.aspx")))
                {
                    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
                    HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false);
                    Response.Cache.SetExpires(DateTime.Now);
                }
            }
            parametros = (SeguridadCB.Public.Parametros)HttpContext.Current.Session["Parametros"];
            AppSettingsReader settings = new AppSettingsReader();
            NumMesesAnterior = parametros.ValorParametro(Convert.ToSByte(settings.GetValue("Modulo", typeof(sbyte))), "NunMesesAnterior");
            if (!IsPostBack)
            {
                objApp = new Conciliacion.RunTime.App();
                Session["nuevaconciliacionobjApp"] = objApp;
                (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.ContenedorActual = this;

                usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                if (ddlEmpresa.Items.Count == 0)
                {
                    Carga_Corporativo();
                }
                Carga_Banco(Convert.ToInt32(ddlEmpresa.SelectedItem.Value));
                Carga_CuentaBancaria(Convert.ToInt32(ddlEmpresa.SelectedItem.Value),
                                     Convert.ToSByte(ddlBanco.SelectedItem.Value));
                Carga_TipoConciliacion(usuario.IdUsuario);
                Carga_GrupoConciliacion(Consultas.ConfiguracionGrupo.ConAccesoTotal, usuario.IdUsuario);
                Carga_SucursalCorporativo(Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionIden0.Sin0,
                                          Convert.ToInt32(ddlEmpresa.SelectedItem.Value));
                //Inhabilitar las pestaña de EXTERNOS E INTERNOS al cargar la VISTA
                tabNuevaConciliacion.Tabs[1].Enabled = false;
                tabNuevaConciliacion.Tabs[2].Enabled = false;
                Carga_TipoFuenteInformacionExternoInterno(
                    Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionTipoFuente.TipoFuenteInformacionExterno);
                Carga_TipoFuenteInformacionExternoInterno(
                    Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionTipoFuente.TipoFuenteInformacionInterno);
            }
        }
        catch (Exception ex)
        {
            (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.MostrarMensaje("Error: Cargar Vista" + ex.Message);
        }
    }
 //Consultar Etiquetas por StatusConcepto
 public void ConsultarEtiquetasStatusConcepto(int statusConcepto)
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         listEtiquetasStatusConcepto = Conciliacion.Migracion.Runtime.App.Consultas.ObtieneListaEtiquetaStatusConcepto(statusConcepto);
     }
     catch (Exception)
     {
     }
 }
 //Consulta tabla principal CuentaTransferencias
 public void Consulta_TablaCuentasTranferencia(short corporativoOrigen, int sucursalOrigen, string cuentaBancoOrigen)
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         //ListConsultaTransferencia = objAppCat.Consultas.ObtenieneCuentasTransferenciaOrigenDestino(0,corporativoOrigen, sucursalOrigen, cuentaBancoOrigen,0);
     }
     catch (Exception ex)
     {
         objApp.ImplementadorMensajes.MostrarMensaje("Error\n" + ex.Message);
     }
 }
 public void ConsultarStatusConcepto()
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         listStatusConcepto = Conciliacion.Migracion.Runtime.App.Consultas.ConsultaStatusConcepto(
             Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionStatusConcepto.Todos);
     }
     catch (Exception)
     {
     }
 }
Example #8
0
 //Consulta tabla principal CuentaTransferencias
 public void Consulta_TablaImportacionAplicacionCuenta(short corporativo, int sucursal, string cuentaBanco)
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         ListExtractores = objApp.Consultas.ConsultaImportacionesAplicacion(sucursal, cuentaBanco);
     }
     catch (Exception ex)
     {
         objApp.ImplementadorMensajes.MostrarMensaje("Error\n" + ex.Message);
     }
 }
Example #9
0
 //Consulta transacciones conciliadas
 public void Consulta_FoliosTablaDestino(int corporativo, int sucursal, int añoF, short mesF, string cuentabancaria, short tipofuenteinformacion)
 {
     Conciliacion.RunTime.App            objApp     = new Conciliacion.RunTime.App();
     SeguridadCB.Seguridad               seguridad  = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         listFoliosExternoInternos = objApp.Consultas.ConsultaFoliosTablaDestino(corporativo, sucursal, añoF, mesF, cuentabancaria, tipofuenteinformacion);
     }
     catch (Exception ex)
     {
         objApp.ImplementadorMensajes.MostrarMensaje("Error\n" + ex.Message);
     }
 }
 //Consultar Etiquetas por Banco
 public void ConsultarEtiquetasBanco(int banco)
 {
     SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
     System.Data.SqlClient.SqlConnection Connection = seguridad.Conexion;
     if (Connection.State == ConnectionState.Closed)
     {
         seguridad.Conexion.Open();
         Connection = seguridad.Conexion;
     }
     try
     {
         listEtiquetasBanco = Conciliacion.Migracion.Runtime.App.Consultas.ObtieneListaEtiquetaBanco(banco);
         listEtiquetasBanco.RemoveAll(delegate(Etiqueta etiq)
         {
             return(listEtiquetasStatusConcepto.Exists(x => x.Id == etiq.Id));
         });
     }
     catch (Exception)
     {
         throw;
     }
 }
Example #11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        seguridad = new SeguridadCB.Seguridad();
        objApp.ImplementadorMensajes.ContenedorActual = this;
        try
        {
            objApp.ImplementadorMensajes.ContenedorActual = this;

            if (!IsPostBack)
            {
                usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                if (cboCorporativo.Items.Count == 0)
                {
                    Carga_Corporativo();
                }
                Carga_BancoNombre(Convert.ToInt16(cboCorporativo.SelectedItem.Value));
                Carga_CuentaBancariaDestino(Convert.ToInt16(cboCorporativo.SelectedItem.Value),
                                            Convert.ToSByte(cboNombreBanco.SelectedItem.Value));
                this.grdTranferenciBancaria.DataSource = tblTransferenciaBancarias;
                this.grdTranferenciBancaria.DataBind();

                Consulta_TablaTranferenciaBancaria(Convert.ToInt16(cboCorporativo.SelectedItem.Value),
                                                   Convert.ToInt16(cboSucursal.SelectedItem.Value),
                                                   cboCuentaBancoOrigen.SelectedItem.Text.Trim(),
                                                   Convert.ToInt32(leerAño()),
                                                   Convert.ToInt16(leerMes()),
                                                   cboStatus.SelectedItem.Text.Trim());

                GenerarTablaTransferenciaBancarias();
                LlenaGridViewTablaTransferenciasBancarias();
            }
            this.cboCorporativo.Focus();
        }
        catch (Exception ex)
        {
            //App.ImplementadorMensajes.MostrarMensaje("Error\n"+ex.Message);
        }
    }
        public ImportacionAplicacion(int corporativo, int sucursal, int año, string cuentabanco,
            DateTime finicial, DateTime ffinal, DateTime falta,
            string usuario, string statusConciliacion, int folio, string pass,
             List<RunTime.ReglasDeNegocio.ImportacionAplicacion> listadoExtractores)
           
       
        {
           

            tabladestino = new Conciliacion.Migracion.Runtime.SqlDatos.TablaDestinoDatos();
            TablaDestino.IdCorporativo = corporativo;
            TablaDestino.IdSucursal = sucursal;
            TablaDestino.Anio = año;
            TablaDestino.CuentaBancoFinanciero = cuentabanco;            
            TablaDestino.IdFrecuencia = 1;
            TablaDestino.FInicial = finicial;
            TablaDestino.FFinal = ffinal;
            TablaDestino.FAlta = falta;
            TablaDestino.Usuario = usuario;
            TablaDestino.Folio = folio;
            TablaDestino.IdStatusConciliacion = statusConciliacion;
            /**Aqui**/

            SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
            foreach (RunTime.ReglasDeNegocio.ImportacionAplicacion extractor in listadoExtractores)
            {
                NombreSp = extractor.Procedimiento;
                Servidor = extractor.Servidor;
                BaseDeDatos = extractor.BaseDeDatos;
                UsuarioConsulta = extractor.UsuarioConsulta;
                Pass = seguridad.DesencriptaClave(extractor.Pass);
                TablaDestino.IdTipoFuenteInformacion = extractor.TipoFuenteInformacion; //extractor.Identificador;

                TablaDestino.Detalles.AddRange(LlenarObjetosDestinoDestalle());

            }            
        }
Example #13
0
    protected void btnGuardarAplicacion_Click(object sender, EventArgs e)
    {
        int i = 0;
        List <Conciliacion.RunTime.ReglasDeNegocio.ImportacionAplicacion> listadoExtractores = new List <Conciliacion.RunTime.ReglasDeNegocio.ImportacionAplicacion>();

        if (ValidarDatos())
        {
            // Conciliacion.RunTime.ReglasDeNegocio.ImportacionAplicacion lcs = listImportacionAplicacion[ddlSelecAplicacion.SelectedIndex];

            foreach (GridViewRow linea in listadoOrigenes.Rows)
            {
                CheckBox chkRow = (linea.Cells[0].FindControl("chkSeleccionar") as CheckBox);
                if (chkRow.Checked)
                {
                    listadoExtractores.Add(listImportacionAplicacion[i]);
                }
                i = i + 1;
            }

            Conciliacion.RunTime.ReglasDeNegocio.ImportacionAplicacion lcs = listImportacionAplicacion[1];

            if (ValidarAplicacion())
            {
                CultureInfo culture = new CultureInfo("en-US");
                DateTime    fi      = DateTime.ParseExact(txtFInicial.Text, "MM/dd/yyyy", culture);
                DateTime    ff      = DateTime.ParseExact(txtFFinal.Text, "MM/dd/yyyy", culture);
                //DateTime fa = DateTime.ParseExact(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss"), "MM/dd/yyyy hh:mm:ss", culture);
                DateTime fa      = DateTime.Now;
                int      folio   = Conciliacion.Migracion.Runtime.App.Consultas.ObtieneTablaDestinoNumeroMaximo(Convert.ToInt32(this.cboCorporativo.SelectedValue), Convert.ToInt32(this.cboSucursal.SelectedValue), Convert.ToInt32(this.cboAnio.SelectedValue)) + 1;
                string   usuario = ((SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"]).IdUsuario.Trim();

                SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
                string pass = seguridad.DesencriptaClave(lcs.Pass);
                Conciliacion.Migracion.Runtime.ReglasNegocio.ImportacionAplicacion ia = null;

                /*ia = Conciliacion.Migracion.Runtime.App.ImportacionAplicacion(Convert.ToInt32(this.cboCorporativo.SelectedValue),
                 *                                                            Convert.ToInt32(this.cboSucursal.SelectedValue),
                 *                                                            Convert.ToInt32(this.cboAnio.SelectedValue),
                 *                                                            this.cboCuentaFinanciero.SelectedValue,
                 *                                                            lcs.TipoFuenteInformacion,
                 *                                                            fi,
                 *                                                            ff,
                 *                                                            fa,
                 *                                                            lcs.Procedimiento,
                 *                                                            usuario,
                 *                                                            "CONCILIACION ABIERTA",
                 *                                                            folio,
                 *                                                            lcs.Servidor,
                 *                                                            lcs.BaseDeDatos,
                 *                                                            lcs.UsuarioConsulta,
                 *                                                            pass
                 *                                                            );*/

                ia = Conciliacion.Migracion.Runtime.App.ImportacionAplicacion(Convert.ToInt32(this.cboCorporativo.SelectedValue),
                                                                              Convert.ToInt32(this.cboSucursal.SelectedValue),
                                                                              Convert.ToInt32(this.cboAnio.SelectedValue),
                                                                              this.cboCuentaFinanciero.SelectedValue,
                                                                              fi,
                                                                              ff,
                                                                              fa,
                                                                              usuario,
                                                                              "CONCILIACION ABIERTA",
                                                                              folio,
                                                                              pass, listadoExtractores
                                                                              );
                int   Existe = 1;
                short TipoFuenteInformacion = 0;
                foreach (Conciliacion.RunTime.ReglasDeNegocio.ImportacionAplicacion extractor in listadoExtractores)
                {
                    TipoFuenteInformacion = extractor.TipoFuenteInformacion;
                    Existe = Conciliacion.Migracion.Runtime.App.Consultas.VerificarArchivo(Convert.ToInt32(this.cboCorporativo.SelectedValue),
                                                                                           Convert.ToInt32(this.cboSucursal.SelectedValue),
                                                                                           Convert.ToInt32(this.cboAnio.SelectedValue),
                                                                                           this.cboCuentaFinanciero.SelectedValue,
                                                                                           TipoFuenteInformacion, 1, fi, ff);
                    if (Existe > 0)
                    {
                        break;
                    }
                }
                if (Existe == 0)
                {
                    if (ia.GuardaEnTablaDestinoDetalle())
                    {
                        objApp.ImplementadorMensajes.MostrarMensaje("Guardado con Exito.");
                        Limpiar();
                        txtFInicial.Text = txtFFinal.Text = String.Empty;
                        ia = null;
                    }
                    else
                    {
                        objApp.ImplementadorMensajes.MostrarMensaje("Ocurrieron conflictos al Guardar desde Aplicaci�n. \n Posibles Razones:\n1. Tabla Destino no fue encontrada. \n2. El extractor no ha devuelto ningun registro.");
                    }
                }
                else
                {
                    objApp.ImplementadorMensajes.MostrarMensaje("El periodo de fechas ya esta ocupado. Tipo Fuente Informacion: " + TipoFuenteInformacion.ToString());
                }
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "alert('" + LimpiarTexto(mensaje.ToString()) + "');", true);
            }
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "alert('" + LimpiarTexto(mensaje.ToString()) + "');", true);
        }
        HttpContext.Current.Session["Archivo"]       = null;
        HttpContext.Current.Session["NombreArchivo"] = null;
    }
    protected void btnEntrar_Click1(object sender, EventArgs e)
    {
        Page.Validate();
        if (Page.IsValid)
        {
            System.Threading.Thread.Sleep(2000);
            ConfiguraConexion();
            Session["AppCadenaConexion"] = cn.ConnectionString;
            SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
            //seguridad.Conexion = cn;
            try
            {
                if (seguridad.ExisteUsuarioActivo(txtUsuario.Text.Trim()))
                {
                    this.usuario = seguridad.DatosUsuario(txtUsuario.Text.Trim());
                    if (seguridad.ComparaClaves(txtClave.Text.Trim().ToUpper(), usuario))
                    {
                        AppSettingsReader settings = new AppSettingsReader();
                        this.modulo = settings.GetValue("Modulo", typeof(string)).ToString();

                        this.modulos     = seguridad.Modulos(this.usuario.IdUsuario);
                        this.operaciones = seguridad.Operaciones(modulo, this.usuario.IdUsuario);
                        if (this.operaciones.TieneAcceso)
                        {
                            this.parametros = seguridad.Parametros(modulo, this.usuario.Corporativo, this.usuario.Sucursal);
                            Session.Add("Operaciones", this.operaciones);
                            Session.Add("Usuario", this.usuario);
                            Session.Add("Conexion", this.cn);
                            Session.Add("Parametros", this.parametros);
                            Session.Add("PiePagina", this.usuario.Nombre.Trim() + " (" + this.usuario.IdUsuario + ") conectado a [" + this.cn.DataSource + "]." + this.cn.Database);
                            Response.Redirect("~/Inicio.aspx", true);
                        }
                        else
                        {
                            Mensaje("Usted no tiene acceso al módulo.");
                            txtUsuario.Focus();
                        }
                    }
                    else
                    {
                        Mensaje("La clave es incorrecta, verifique.");
                        txtClave.Focus();
                    }
                }
                else
                {
                    Mensaje("El usuario no existe o se encuentra inactivo.");
                    txtUsuario.Focus();
                }
            }
            catch (SqlException ex)
            {
                switch (ex.Number)
                {
                case 18452:
                case 18456:
                    Mensaje("No se ha logrado abrir la conexión, revise el nombre de usuario y la contraseña.");
                    txtUsuario.Focus();
                    break;

                case 4060:
                    Mensaje("La base de datos no está disponible, comuníquelo al área de sistemas.");
                    break;

                case 17:
                    Mensaje("El servidor no está disponible, comuníquelo al área de sistemas.");
                    break;

                default:
                    Mensaje("Ha ocurrido el siguiente error: " + ex.Message);
                    break;
                }
            }
            catch (Exception ex)
            {
                Mensaje("Ha ocurrido el siguiente error: " + ex.Message);
            }
        }
    }
    /// <summary>
    /// Constructor de la clase
    /// </summary>
    /// <param name="Reporte">Ruta y Nombre del reporte</param>
    /// <param name="Parametros">Parámetros que requiere el reporte ejemplo: clave=1</param>
    /// <param name="Servidor">Servidor donde se encuentra la base de datos</param>
    /// <param name="Base">Nombre de la Base de Datos</param>
    /// <param name="Usuario">Nombre de usuario con permiso de acceso</param>
    /// <param name="PW">Contraseña o Password del usuario</param>
    public ClaseReporte(string Reporte, ArrayList Parametros, string Servidor, string Base, string Usuario, string PW)
    {
        if (File.Exists(Reporte))
        {
            try
            {
                this._strReporte  = Reporte;
                this._arrPar      = (ArrayList)Parametros.Clone();
                this._strServidor = Servidor;
                this._strBase     = Base;
                this._strUsuario  = Usuario;
                this._strPW       = PW;

                try
                {
                    RepDoc.FileName = Reporte;
                }
                catch
                {
                }
                RepDoc.Load(Reporte);

                //Variables
                TableLogOnInfo            _LogonInfo;
                ParameterFieldDefinitions crParameterFieldDefinitions;
                ParameterFieldDefinition  crParameterFieldDefinition;
                CrystalDecisions.Shared.ParameterValues        crParametervalues;
                CrystalDecisions.Shared.ParameterDiscreteValue crParameterDiscretValue;
                string TablaNombre = "";
                string strValor    = "";

                //Pasa los datos de la conexion al reporte principal
                RepDoc.SetDatabaseLogon(Usuario, PW, Servidor, Base);
                foreach (CrystalDecisions.CrystalReports.Engine.Table _TablaReporte in RepDoc.Database.Tables)
                {
                    _LogonInfo = _TablaReporte.LogOnInfo;
                    _LogonInfo.ConnectionInfo.ServerName   = Servidor;
                    _LogonInfo.ConnectionInfo.DatabaseName = Base;
                    _LogonInfo.ConnectionInfo.UserID       = Usuario;
                    _LogonInfo.ConnectionInfo.Password     = PW;
                    try
                    {
                        _TablaReporte.ApplyLogOnInfo(_LogonInfo);
                    }
                    catch (Exception ex)
                    {
                        this._strError = ex.ToString();
                    }

                    //pasa un datatable al reporte
                    TablaNombre = "";
                    if (_TablaReporte.Name.IndexOf(";") > 0)
                    {
                        TablaNombre = _TablaReporte.Name.Substring(0, _TablaReporte.Name.IndexOf(";"));
                    }
                    else
                    {
                        TablaNombre = _TablaReporte.Name;
                    }
                }

                //Pasa los valores a los parametros
                SeguridadCB.Seguridad            seguridad = new SeguridadCB.Seguridad();
                System.Data.SqlClient.SqlCommand cmdRep    = seguridad.Conexion.CreateCommand();
                cmdRep.CommandType          = CommandType.StoredProcedure;
                cmdRep.CommandText          = TablaNombre;
                crParameterFieldDefinitions = RepDoc.DataDefinition.ParameterFields;
                foreach (ParameterFieldDefinition par in RepDoc.DataDefinition.ParameterFields)
                {
                    try
                    {
                        if (Existe_Parametro(Parametros, par.Name))
                        {
                            crParameterFieldDefinition = crParameterFieldDefinitions[par.Name];
                            crParametervalues          = crParameterFieldDefinition.CurrentValues;
                            crParameterDiscretValue    = new CrystalDecisions.Shared.ParameterDiscreteValue();
                            strValor = Leer_Valor_Parametro(Parametros, par.Name);
                            crParameterDiscretValue.Value = strValor;
                            crParametervalues.Add(crParameterDiscretValue);
                            crParameterFieldDefinition.ApplyCurrentValues(crParametervalues);

                            System.Data.SqlClient.SqlParameter parNuevo = new System.Data.SqlClient.SqlParameter();
                            parNuevo.ParameterName = par.Name;
                            parNuevo.Value         = strValor;
                            if (!cmdRep.Parameters.Contains(par.Name))
                            {
                                cmdRep.Parameters.Add(parNuevo);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        this._strError = ex.ToString();
                    }
                }
                System.Data.SqlClient.SqlDataAdapter daRep = new System.Data.SqlClient.SqlDataAdapter();
                daRep.SelectCommand = cmdRep;
                System.Data.DataTable dtRep = new DataTable(TablaNombre);
                daRep.Fill(dtRep);
                RepDoc.SetDataSource(dtRep);

                //Pasa los parametros a los subreportes
                foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument lRepDoc in RepDoc.Subreports)
                {
                    if (lRepDoc != null)
                    {
                        lRepDoc.SetDatabaseLogon(Usuario, PW, Servidor, Base);
                        foreach (CrystalDecisions.CrystalReports.Engine.Table _TablasReporte in lRepDoc.Database.Tables)
                        {
                            _LogonInfo = _TablasReporte.LogOnInfo;
                            _LogonInfo.ConnectionInfo.ServerName   = Servidor;
                            _LogonInfo.ConnectionInfo.DatabaseName = Base;
                            _LogonInfo.ConnectionInfo.UserID       = Usuario;
                            _LogonInfo.ConnectionInfo.Password     = PW;
                            try
                            {
                                _TablasReporte.ApplyLogOnInfo(_LogonInfo);
                            }
                            catch (Exception ex)
                            {
                                this._strError = ex.ToString();
                            }

                            //pasa un datatable al reporte
                            TablaNombre = "";
                            if (_TablasReporte.Name.IndexOf(";") > 0)
                            {
                                TablaNombre = _TablasReporte.Name.Substring(0, _TablasReporte.Name.IndexOf(";"));
                            }
                            else
                            {
                                TablaNombre = _TablasReporte.Name;
                            }
                        }

                        //Pasa los valores a los parametros
                        System.Data.SqlClient.SqlCommand cmdsRep = seguridad.Conexion.CreateCommand();
                        cmdsRep.CommandType         = CommandType.StoredProcedure;
                        cmdsRep.CommandText         = TablaNombre;
                        crParameterFieldDefinitions = lRepDoc.DataDefinition.ParameterFields;
                        foreach (ParameterFieldDefinition par in lRepDoc.DataDefinition.ParameterFields)
                        {
                            try
                            {
                                if (Existe_Parametro(Parametros, par.Name))
                                {
                                    crParameterFieldDefinition = crParameterFieldDefinitions[par.Name];
                                    crParametervalues          = crParameterFieldDefinition.CurrentValues;
                                    crParameterDiscretValue    = new CrystalDecisions.Shared.ParameterDiscreteValue();
                                    strValor = Leer_Valor_Parametro(Parametros, par.Name);
                                    crParameterDiscretValue.Value = strValor;
                                    crParametervalues.Add(crParameterDiscretValue);
                                    crParameterFieldDefinition.ApplyCurrentValues(crParametervalues);
                                    System.Data.SqlClient.SqlParameter parNuevo = new System.Data.SqlClient.SqlParameter();
                                    parNuevo.ParameterName = par.Name;
                                    parNuevo.Value         = strValor;
                                    if (!cmdsRep.Parameters.Contains(par.Name))
                                    {
                                        cmdsRep.Parameters.Add(parNuevo);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                this._strError = ex.ToString();
                            }
                        }

                        System.Data.SqlClient.SqlDataAdapter dasRep = new System.Data.SqlClient.SqlDataAdapter();
                        cmdsRep.CommandType  = CommandType.StoredProcedure;
                        dasRep.SelectCommand = cmdsRep;
                        System.Data.DataTable dtsRep = new DataTable(TablaNombre);
                        dasRep.Fill(dtsRep);
                        try
                        {
                            lRepDoc.SetDataSource(dtsRep);
                        }
                        catch (Exception exs)
                        {
                            this._strError = exs.ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                this._strError = ex.ToString();
            }
        }
        else
        {
            this._strError = "No existe el reporte en la ruta especificada";
        }
    }