FoxPro/Visual FoxPro - bases de datos y grid

   
Vista:

bases de datos y grid

Publicado por programadora (53 intervenciones) el 17/02/2009 19:32:53
hola chicos, solo para consultarles y ver si se puede, tengo un grid en un marco de pagina, pero necesito jalar de 3 bases de datos diferentes registros en el mismo grid como le hago????

De ante mano gracias por su ayuda y seguimos en contacto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:bases de datos y grid

Publicado por Douglas (297 intervenciones) el 17/02/2009 19:41:01
hola que tal, de poder si se puede pero recuerda de aquel dicho de la cabeza y el detalle. o sea depende del nivel relacional
es de mucho a mucho o de uno a muchos

tabla 1 cuanto registro tiene

tabla 2

tabla 3

por ejemplo en presupuesto pueden haber 3 tabla.

tabla 1 actividades

tabla 2 Tareas

Tabla 3 objeto del gasto.

mas bien seria 2 grid x lomenos para mostrar una activdad
tareas relacionada y cada tareas con su detalle de gastos.

salude espero le sirva el consejo.

Douglas
from Nicaragua
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por programadora (53 intervenciones) el 17/02/2009 19:47:14
hola, gracias talvez no me di a entender, mi grid tiene 5 columnas y de esas 5 columnas 3 jalan datos de 3 bases de datos diferentes, ya las indexe bien como debe de ser solo que los datos no me aparecen los otros dos si, como le hago?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por douglas (297 intervenciones) el 18/02/2009 02:00:21
hola que tal. 5 columnas con inner join hasta el wizar de fox t lo hace

ejemplo

este tempo va ser el control source de tu grid el cual vas a llenar de distintas tablas lo crear en el lodad del form, es multiusuario se crea en las estacion de trabajo donde este en el directorio temp
create cursor tmpgri (col1 c(1), col2 c(1), col3 c(1),col4 c(1),col5 c(1),)

select tabla1.campo1, tabla2.campo2, tabla3.campo3......etc
from tabla1 inner join tabla2;
on tabla1.id = tabla2.id
inner join tabla3;
on tabla2.id=tabla3 where x=y into cursor tmp

este es un ejemplo si me das la tablas y los campos te hago un prototipo.

saludes
Douglas
from Nicaragua
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por giovanni (64 intervenciones) el 18/02/2009 02:22:21
Puedes usar el ControlSource algo asi se me ocurre suponiendo que esta indexado y abierta la dbf

MI_V = CREATEOBJECT('FORM')
MI_V.ADDOBJECT ('Gri1' , 'MIGRID')
MI_V.Gri1.Column1.Header1.Caption = 'NOMBRE CLIENTE'
MI_V.Gri1.Column1.ControlSource = 'NOMBRE'
MI_V.Gri1.Column2.Header1.Caption = 'CIUDAD'
MI_V.Gri1.Column2.ControlSource = 'CIUDADES.NOMBRE'
MI_V.Gri1.Column3.ControlSource = **ubicacion de la informacion**
MI_V.Gri1.Column4.ControlSource = **ubicacion de la informacion**
MI_V.Gri1.Column5.ControlSource = **ubicacion de la informacion**
MI_V.Gri1.ReadOnly = .T.
MI_V.SHOW()
READ EVENT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

bases de datos y grid

Publicado por Mauricio (1368 intervenciones) el 18/02/2009 04:42:36
puedes usar algo como esto, cargado por supuesto en el LOAD
Y tener en cuenta que debe haber al menos un campo comun en las 3 tablas
*
CLOSE TABLES ALL
OPEN DATABASE1, DATABASE2, DATABASE3
SELECT tabla1.campo1, tabla2.campo2, tabla3.campo.3 ;
FROM tabla1, tabla2, tabla3 ;
WHERE tabla1.compa1 = tabla2.compa2 AND ;
tabla2.campox = tabla3.campox INTO CURSOR temp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por Juan Fernando (533 intervenciones) el 18/02/2009 15:51:41
tengo un proyecto que enlaza y recorre un Grid con 3 tablas todas
únidas x un campo único .

si le sirve de pauta,puede escribir .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por richard antonio marriaga lasca (174 intervenciones) el 18/02/2009 23:18:30
SELECT Tdato001.idnegocio, Tdato001.fecha, Tdato001.cliente,;
Tdato001.id_demandado, Tdato001.codabop, Tdato001.codclpro,;
Tdato001.codclti, Tdato001.fechaveti, Tdato001.nobliga, Tdato001.radjudi,tdato001.sugerencia,;
Tdato001.codjuz, Tdato001.codciu,tdato001.ufecha,tdato001.id_alju,tdato001.fechalju,;
tdato001.id_ctri,tdato001.fechactri,tdato001.valor,ideman2,ideman3,ideman4,tdato001.fechater,;
tdato001.notificados,tdato001.clasenotifica,tdato001.idembg,tdato001.idcladema,tdato001.terminado,;
Tdata011.apellidos+""+Tdata011.nombre AS Ncliente,;
Tdata015.apellido+" "+Tdata015.nombre AS demandado,tdata015.direccion,;
Tdato006.nombrejuz,;
Tdato004.nombre as nomabg ,Tdato004.apellido as apella,;
tdato007.nombreproceso,;
tdato008.nombreciu,;
tdato009.nombretitulo,;
Tdata045.descripcion;
FROM;
data1!tdato001 ;
INNER JOIN data1!tdata011 ;
ON Tdato001.cliente = Tdata011.id_cliente ;
INNER JOIN data1!tdata015 ;
ON Tdato001.id_demandado = Tdata015.id_cddo;
INNER JOIN data1!tdato004 ;
ON Tdato001.codabop = Tdato004.cedula;
INNER JOIN data1!tdato007 ;
ON Tdato001.codclpro = Tdato007.codproce;
INNER JOIN data1!tdato009 ;
ON Tdato001.codclti = Tdato009.codtitu;
WHERE Tdato001.idnegocio = lcCodigo1 INTO CURSOR cur_001
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por richard antonio marriaga lasca (174 intervenciones) el 19/02/2009 00:04:23
espero te sirva el ejemplo : de esta forma puedes relacionar las tablas que tu quiereas crear un cursor y cargarlo al grid asi:

thisform.grid1.RecordSource = "cur_001"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bases de datos y grid

Publicado por Mario (199 intervenciones) el 19/02/2009 13:37:18
Otra forma de hacerlo sin generar una consulta SELECT

Use Tabla1 in 0
Use Tabla2 in 0 order Codigo
Use Tabla3 in 0 order Codigo

Set relation to Campoclave into Tabla2 in Tabla1
Set relation to Campoclave into Tabla3 in Tabla1Additive

Thisform.Grid1.Recordsource="Tabla1"
WITH THISFORM.Grid1
.RECORDSOURCE="Tabla1"
.Column1.CONTROLSOURCE="Tabla1.Campo1"
.Column2.CONTROLSOURCE="Tabla1.Campo2"
.column3.CONTROLSOURCE="Tabla2.Campo1"
.column4.CONTROLSOURCE="Tabla3.Campo2"
Endwith

Esto te permite trabajar directamente sobre las tablas en cuestión en lugar de un cursor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar