PDA

Ver la Versión Completa : Enlazar varias tablas en un DBgrid


Alesius
17-04-2013, 17:09:21
Hola a todos,
soy nuevo en el foro y en Delphi, por lo que pido disculpas de ante mano si este post no va aqui y/o estoy preguntando una barbaridad. Tengo conocimiento en Pascal, C++, ActionScript, PHP, MySQL y otros lenguajes de la web. Luego de aclarado esto continuo.

Tengo una base de datos en MS Access, con cuatro tablas (Empleado, Funciones, Ubicacion, Orden).

BD Empleados
legajo
Nombre
funcion (codigo interno de dos letras)
ubicacion (codigo interno de dos letras)

BD Funciones
ID_funciones (codigo interno de dos letras)
nombre_funcion

BD Ubicacion
ID_ubicacion (codigo interno de dos letras)
nombre_ubicacion

bd Orden
no viene al caso, por ahora no la voy a utilizar

En mi formulario tengo un TADOConnection que lo tengo enlazado a cuatro TADOtable (Templeado, Tfunciones, Tubicacion, Torden) y de ahi los derivo a sus respectivos datasource para poder enlazarlos a cuatro DBgrid diferentes, hasta ahi funciona correctamente.

el tema es que en el DBgrid de Empleados quiero que tanto las funciones como la ubicacion no me salga el codigo interno sino el nombre que se especifica en cada tabla.

Un saludo y muchas gracias por su tiempo.

red_dragon
17-04-2013, 18:22:12
No se si te entiendo, o tal vez me equivoque con la respuesta pero hal hacerle doble clic al dbgrid en tiempo de diseño, aparece un pequeño frmulario con los campos que lleva el dbgrid, sino quieres que salgan simplemente con la tecla suprimir eliminas los campos que quieres que no aparezcan, y si quieres que tengan otro titulo haces clic en el campo y en el panel de propiedades puedes modificar la propiedad caption de cada unos de los campos segun veas por conveniente. Bueno creo que es eso lo que quieres.

TOPX
17-04-2013, 19:13:48
Hola,

Sobre campos lookup, vea,


Celda de DbGrid que funcione como ComboBox | Clubdelphi (http://www.clubdelphi.com/foros/showthread.php?t=63435)
Using ADO from Delphi (http://zeus.nyf.hu/~bajalinov/my_special/SW/Delphi%20eBooks/Delphi/Delphi%20-%20Using%20ADO%20from%20Delphi.pdf) (pág. 70)
La Cara Oculta de Delphi 6 (http://www.intitec.com/varios/TheDarkSideOfDelphi6.pdf) (pág. 390)

-

Alesius
17-04-2013, 20:37:10
Estimado red_dragon, antes que nada te agradezco por tu rápida respuesta. Mi intención no es cambiar el nombre del campo en el dbgrid sino los valores. Te paso un ejemplo de lo que quiero, haber si me puedo explicar mejor:

Tabla Empleado
legajo_____Nombre____________Función_____________Ubicación
34678_____Argento, Pepe__________05___________________BA


Tabla Funcion
ID_Funcion_____Nombre_Funcion
05____________Operario

Tabla Ubicacion
ID_Ubicacion_____Nombre_Ubicacion
BA_____________Buenos Aires

Función 05 significa operario y eso esta almacenado en la tabla de función, y ubicación BA significa Buenos Aires y esta especificado en la tabla ubicación.

Ahora bien, lo que yo necesito es que me convine las tablas y en el dbGrid en vez de aparecer como arriba me aparezca de la siguiente manera:

legajo_____Nombre________________Función__________Ubicación
34678_____Argento, Pepe____________Operario__________Buenos Aires

Una vez más muchas gracias muchachos..

PD: TOPX gracias por esos libros, ya los baje, me van a ser de mucha ayuda. Un saludo.

red_dragon
17-04-2013, 23:33:39
Haber yo nunca use ADOy es que de frente me pase a usar Dbexpress, y haciendo conexion con el componente tsqlquery (en ado debe hacer un componente similar) en la propiedad commandtext le pondria el mas o menos asi:

select empleado.legajo,emleado.nombre,nombre_funcion.funcion,nombre_ubicacion.ubicacion from empleado,funcion,ubicacion

bueno si hay algun criterio de seleccion ponerle where y la condicion en la parte final. Y si la recoleccion de datos fuera especial presentar la sentencia de otra manera con left join o inner join bueno eso ya depende de ti.

ese tsqlquery (u el similar en ado) conectarlo con un clientdataset, datasource y este a su vez con el dbgrid que recuperara los campos declarados en la seccion select de la consulta.

Solo por curiosidad, por que trabajas con access lo digo por que tiene muchas limitaciones, podrias usar otro motor que te permita hacer mas cosas en cuanto a consultas y vistas, supongo que este programa lo haces con fines educativos osea con la finalidad de aprender como es Delphi.

Te recomiendo que te bajes estos dos cursos en dvd, te enseñan dbexpress al detalle y desde cero (como si estuvieras en primero de primaria) y lo mejor en videos (que no te espante el que este en portugues ya que es igual al español). Bueno te dejo los links por privado si es que quieres.

Casimiro Notevi
18-04-2013, 03:59:21
Mensaje para los nuevos foreros:
Bienvenidos a clubdelphi, ¿ya leísteis nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por vuestra colaboración :)

Y recordad poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

Alesius
18-04-2013, 04:18:44
Hola Red_Dragon, el fin es un poco y un poco, me sirve para aprender un poco de delphi y porque ellos utilizan toda la base de datos en excel, y me es mucho más sencillo migrarla mes a mes a access o por lo menos es la forma m'as facil que encontre.

Con respecto a los cursos estaria encantado, pasame los link asi los descargo, me estoy enganchando mucho con esto de delphi y todo lo que sume lo consumo... jejejeje...

Muchas gracias por tu respuesta.
Voy a ver como lo resuelvo.
Un saludo.