Areas - Alias
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
Alias1->(dbskip(-1))
alias8->(dbskip(5))
? Alias->campo5 + Alias8->campo12 - campo2local
Como se hace esto en VFP
Gracias
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...
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...
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...
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...
Si se puede de la siguiente manera:
? empleados.nombre
? productos.detalle
y asi sucesivamente como tu quieras
? empleados.nombre
? productos.detalle
y asi sucesivamente como tu quieras
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
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