public void CargarGrid()
    {
        if (Clientes != null && Clientes.Count > 0)
        {
            //seleccion de cliente: se selecciona el padre, si no hay padre se selecciona el hijo con el numero de cliente mas pequeno

            //remover duplidos
            Clientes = Clientes.Distinct().ToList();

            dt.Clear();
            dt.Columns.Clear();
            dt.Columns.Add("Cliente");
            dt.Columns.Add("Nombre");
            dt.Columns.Add("Tipo");

            dt.Columns["Cliente"].DataType = Type.GetType("System.Int32");

            DataRow row;
            foreach (int cli in Clientes)
            {
                //validar y cargar datos
                Cliente objCliente = objApp.Cliente.CrearObjeto();
                Conciliacion.RunTime.DatosSQL.Conexion conexion = new Conciliacion.RunTime.DatosSQL.Conexion();
                conexion.AbrirConexion(true);
                objCliente.Referencia = cli.ToString();
                if (objCliente.ValidaClienteExiste(conexion))
                {
                    //asignar nombre y tipo
                    row            = dt.NewRow();
                    row["Cliente"] = cli;
                    row["Nombre"]  = objCliente.Nombre;
                    row["Tipo"]    = objCliente.Tipo;
                    dt.Rows.Add(row);
                }
            }

            if (dt.Rows.Count == 0)
            {
                throw new System.Exception("No existe cliente al cual asignar el pago.");
            }
            else
            {
                //El gridview deberá mostrar los registros ordenados por número de Cliente de forma ascendente
                dt.DefaultView.Sort = "Cliente";

                grvClientes.DataSource = dt;
                grvClientes.DataBind();

                //-Cuando el control sea mostrado el cliente padre(si lo hay) se elige por defecto
                //-Si no hay cliente padre se elige por defecto la sucursal con el número de Cliente más pequeño
                indiceGridSeleccionado = -1;
                int indexfila = 0;
                foreach (GridViewRow fila in grvClientes.Rows)
                {
                    if (fila.Cells[3].Text == "PADRE")
                    {
                        indiceGridSeleccionado = indexfila;
                        break;
                    }
                    indexfila = indexfila + 1;
                }
                if (indiceGridSeleccionado == -1)  //Si no hay cliente padre
                {
                    indexfila = 0;
                    int idmenor = 999999999;
                    foreach (GridViewRow fila in grvClientes.Rows)
                    {
                        if (fila.Cells[3].Text == "SUCURSAL")
                        {
                            if (int.Parse(fila.Cells[1].Text) < idmenor)
                            {
                                idmenor = int.Parse(fila.Cells[1].Text);
                                indiceGridSeleccionado = indexfila;
                            }
                        }
                        indexfila = indexfila + 1;
                    }
                }

                if (indiceGridSeleccionado == -1)
                {
                    indiceGridSeleccionado = 0;
                }
                quitarSeleccionRadio();
                pintarFilaSeleccionada(indiceGridSeleccionado);
                GridViewRowCollection filas = grvClientes.Rows;
                indexfila = 0;
                foreach (GridViewRow f in filas)
                {
                    if (indiceGridSeleccionado == indexfila)
                    {
                        hdfClienteSeleccionado.Value = f.Cells[1].Text;
                        break;
                    }
                    indexfila = indexfila + 1;
                }
                ActivarSeleccionRadio(indiceGridSeleccionado);
            }
        }
    }
            public List <DetalleInformeInternosAFuturo> consultaInformeInternosAFuturo(Conexion _conexion, DateTime FechaIni, DateTime FechaFin, string Banco, string CuentaBanco)
            {
                List <DetalleInformeInternosAFuturo> ListaResultado = new List <DetalleInformeInternosAFuturo>();

                try
                {
                    _conexion.Comando.CommandType = CommandType.StoredProcedure;
                    _conexion.Comando.CommandText = "spCBReporteMovimientosCanceladosAFuturoInternos";
                    _conexion.Comando.Parameters.Clear();
                    _conexion.Comando.Parameters.Add(new SqlParameter("@FechaIni", System.Data.SqlDbType.DateTime)).Value      = FechaIni;
                    _conexion.Comando.Parameters.Add(new SqlParameter("@FechaFin", System.Data.SqlDbType.DateTime)).Value      = FechaFin;
                    _conexion.Comando.Parameters.Add(new SqlParameter("@Banco", System.Data.SqlDbType.VarChar)).Value          = Banco;
                    _conexion.Comando.Parameters.Add(new SqlParameter("@CuentaBancaria", System.Data.SqlDbType.VarChar)).Value = CuentaBanco;
                    SqlDataReader reader = _conexion.Comando.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            DetalleInformeInternosAFuturo dato = new DetalleInformeInternosAFuturo();
                            dato.Banco                 = (reader["banco"] == DBNull.Value ? "" : Convert.ToString(reader["banco"]));
                            dato.Corporativo           = Convert.ToString(reader["corporativo"]);
                            dato.Secuencia             = Convert.ToInt32(reader["secuencia"]);
                            dato.CuentaBancoFinanciero = Convert.ToString(reader["cuentabancofinanciero"]).Trim();
                            dato.ConsecutivoFlujo      = Convert.ToInt32(reader["consecutivoflujo"] == DBNull.Value ? "0" : reader["consecutivoflujo"]); // mcc 20180503
                            dato.FOperacion            = Convert.ToDateTime(reader["foperacion"]);
                            dato.FMovimiento           = Convert.ToDateTime(reader["fmovimiento"]);
                            dato.Referencia            = Convert.ToString(reader["referencia"]);
                            dato.Concepto              = Convert.ToString(reader["concepto"]);
                            dato.Retiros               = Convert.ToDecimal(reader["retiro"]);
                            dato.Depositos             = Convert.ToDecimal(reader["deposito"]);
                            ListaResultado.Add(dato);
                        }
                        reader.Close();
                    }
                    return(ListaResultado);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }