Cada pantalla (form) puede tener sesiones privadas. La idea básica es que si el usuario tiene varias pantalla abiertas, una pantalla, por lo general, no interferirá con las demás. Por ejemplo, una pantalla puede abrir la tabla de clientes con USE CLIENTE, seguido de GO TOP. En otra pantalla, se puede abrir con USE CLIENTE seguido de GO BOTTOM. Ni la orden USE ni el movimiento del puntero de registro (como GO TOP o GO BOTTOM) en la pantalla 2 interferirán con la pantalla 1. Es más, el usuario puede abrir dos o más "instancias" de una misma pantalla, y así trabajar separadamente con dos diferentes clientes. Para fines prácticos, es casi como si cada pantalla fuera un usuario independiente (por lo tanto, conviene programar desde un comienzo teniendo en cuenta requerimientos multiusuarios; esto no es difícil).
Inicialmente, Visual FoxPro no tiene habilitado esta opción (como en muchos otros casos, por compatibilidad con FoxPro). Se debe activar cambiando la propiedad .DataSession (de la pantalla) = 2 (private).
El trabajo con sesiones privadas no sólo afecta las tablas abiertas, sino también algunas órdenes SET, incluyendo SET DATE, SET EXACT, SET TALK y otros. Es decir, una pantalla puede tener, por ejemplo, SET EXACT ON, y otra, SET EXACT OFF.
Esto también implica que si se trabaja con sesiones de datos privadas, se tiene que cambiar la configuración al estándar deseado en cada pantalla. Para no repetir las mismas órdenes en cada pantalla, se puede a) tener todas las órdenes de configuración en un programa (PRG), e invocarlo desde la pantalla, b) usar herencia. El lugar correcto para escribir (o invocar) las órdenes de configuración es el evento Load().
Volver a: Visual FoxPro | Página Principal de Hilmar Zonneveld