El problema que describes parece estar relacionado con la actualización del segundo `xBrowse` después de moverte entre los registros del primer `xBrowse`. Aunque realizas un `Refresh` en el segundo `xBrowse`, parece que no se está actualizando correctamente con los datos del usuario seleccionado en el primer `xBrowse`.
Aquí hay algunas sugerencias para solucionar el problema:
### 1. **Verifica la sincronización entre los dos `xBrowse`**
Asegúrate de que el segundo `xBrowse` esté correctamente vinculado al resultado de la consulta que depende del usuario seleccionado en el primer `xBrowse`. Parece que estás utilizando `bd_programa` para manejar los datos del segundo `xBrowse`, pero no está claro si este objeto está correctamente asociado con el `xBrowse`.
### 2. **Actualiza el `xBrowse` correctamente**
En lugar de solo llamar a `Win_1X.Browse_2.Refresh`, asegúrate de que el `xBrowse` esté correctamente vinculado a los datos actualizados. Puedes intentar forzar una actualización completa del `xBrowse`:
```xBase
Win_1X.Browse_2:SetData(bd_programa) // Asigna los nuevos datos al Browse
Win_1X.Browse_2:Refresh() // Refresca el Browse
```
### 3. **Asegúrate de que la consulta se ejecute correctamente**
Verifica que la consulta `oQuery` esté devolviendo los datos correctos para el usuario seleccionado. Puedes agregar un mensaje de depuración para asegurarte de que la consulta se esté ejecutando con el valor correcto de `cusuario`:
```xBase
MsgInfo("Consulta ejecutada para el usuario: " + NOMBASE:FieldGet('cusuario'))
```
### 4. **Revisa el manejo del `Recno`**
Asegúrate de que el `Recno` se esté manejando correctamente. Si el `Recno` no está en la posición correcta después de la actualización, el `xBrowse` podría no mostrar los datos correctos. Puedes intentar moverte al registro correcto después de la actualización:
```xBase
bd_programa:GoTo(nRec) // Asegúrate de que el registro esté en la posición correcta
```
### 5. **Considera usar eventos**
Si estás utilizando `xBrowse`, puedes considerar usar el evento `OnChange` del primer `xBrowse` para actualizar automáticamente el segundo `xBrowse` cuando el usuario seleccione un registro diferente.
```xBase
METHOD OnChange() CLASS Win_1X.Browse_1
LOCAL cUsuario := NOMBASE:FieldGet('cusuario')
oQuery := oServer:Query("Select * From general.programa Where cusuario='"+cUsuario+"'")