Areas - Alias

Lucas
28 de Junio del 2003
En Clipper se pueden abrir varias tablas y cada una ocupa un area dioferente, tal como lo hace FOX.- Ahora bien, yo puedo, SIN CAMBIARME DE AREA, manipular las tablas usando sua alias; P.E

Alias1->(dbskip(-1))
alias8->(dbskip(5))
? Alias->campo5 + Alias8->campo12 - campo2local

Como se hace esto en VFP
Gracias

OMAR
28 de Junio del 2003
hAY MUCHAS MANERAS DE UTILIZAR TABLAS SIN CAMBIAR DE AREA DE TRABAJO PERO LA MAS CONVENIENTE Y RAPIDA ES UTILIZAR SENTENCIAS -SQL-
PARA EL CASO DE TU REFERENCIA PODÉS UTILIZAR
"SELECT <CAMPOS DE LA TABLA DE OTRA AREA> FROM <TABLA DE OTRA AREA>
CON ESTO HAS CREADO UNA VISTA DE LA TABLA DE OTRA ÁREA DE TRABAJO Y SEGUIRÁS ESTANDO DENTRO DEL ÁREA QUE HABÁS SELECCIONADO ANTES.
SUERTE...

OMAR
28 de Junio del 2003
hAY MUCHAS MANERAS DE UTILIZAR TABLAS SIN CAMBIAR DE AREA DE TRABAJO PERO LA MAS CONVENIENTE Y RAPIDA ES UTILIZAR SENTENCIAS -SQL-
PARA EL CASO DE TU REFERENCIA PODÉS UTILIZAR
"SELECT <CAMPOS DE LA TABLA DE OTRA AREA> FROM <TABLA DE OTRA AREA>
CON ESTO HAS CREADO UNA VISTA DE LA TABLA DE OTRA ÁREA DE TRABAJO Y SEGUIRÁS ESTANDO DENTRO DEL ÁREA QUE HABÁS SELECCIONADO ANTES.
SUERTE...

Emilson
28 de Junio del 2003
Si se puede de la siguiente manera:

? empleados.nombre
? productos.detalle

y asi sucesivamente como tu quieras

Alex
28 de Junio del 2003
Que tal esta rutinita ?

sintaxis de llamada:

=use_select("tabla","indice","alias")

El segundo y tercer parametro son opcionales.
El "use_select", abre una tabla sin cambiarse del alias actual, Luego, las referencias a los campos de esa tabla es "tabla.campo"

Espero que les sirva

Alex


PROCEDURE USE_SELECT
PARAMETER M.ARCHIVO,M.ORDEN,M.XALIAS
PRIVATE M.ARCHIVO,M.ORDEN,M.XALIAS
PRIVATE AUXORDEN,AUXALIAS

M.ORDEN = IIF(EMPTY(M.ORDEN),"",M.ORDEN)M.XALIAS = IIF(EMPTY(M.XALIAS),"",M.XALIAS)

AUXORDEN = IIF(EMPTY(M.ORDEN),"",[ORDER ]+M.ORDEN)
AUXALIAS = IIF(EMPTY M.XALIAS),M.ARCHIVO,M.XALIAS)
IF !USED(AUXALIAS)
SELECT 0
USE (M.ARCHIVO) AGAIN ALIAS &AUXALIAS &AUXORDEN
ELSE
SELECT (AUXALIAS)
IF ORDER()#M.ORDEN
SET ORDER TO (M.ORDEN)
ENDIF
ENDIF

Alex
28 de Junio del 2003
Para cerrar la tabla, sin cambiarse del alias actual, esta otra rutinita, sirve

PROCEDURE END_USE
PARAMETER ARCH
PRIVATE ARCH,CURR
IF USED(ARCH)
CURR = SELECT()
SELECT (ARCH)
USE
SELECT (CURR)
ENDIF