Áreas de trabajo, alias y selección de tablas
Preserva contexto del llamador al acceder a alias existente.
Descripción general
Área mantiene contexto de tabla abierta; alias la identifica. DBSelectArea cambia área activa; ALIAS->(...) opera en otra sin dejar selección al llamador. FwGetArea guarda solo Alias, IndexOrd y Recno. Antes de reposicionar otra tabla, guárdela también y restaure área original al final. No respalda filtros, relaciones, transacciones ni empresa. Adaptación verifica SB1 abierta antes del patrón de dos áreas. (Fuentes: refs. 1–4.)
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed735()
Local aOriginal := FWGetArea()
Local aDestino := {}
// Tabla del llamador: no abrir ni cerrar aquí.
If Select("SB1") > 0
aDestino := SB1->(FWGetArea())
ConOut(SB1->(IndexKey()))
// Restaurar tabla consultada primero y llamador al final.
FWRestArea(aDestino)
EndIf
FWRestArea(aOriginal)
Return NilLee expresión de índice actual u omite SB1 si está cerrada; no recorre registros. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Flujo supone llamadas sin errores. Proceso real requiere limpieza también ante error; no cierre alias ajenos con DbCloseAll.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.