Ver Mensaje Individual
  #6  
Antiguo 27-08-2008
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
Hola de nuevo.
Tras varias pruebas ayer tarde, estoy empezando a obtener los resultados que quiero.
Os cuelgo un ejemplo ( por supuesto mejorable ) del prototipo.

PAra probar lo unico que hace falta es lo siguiente:
DElphi 7
Firebird

Se puede utilizar cualquier BBDD ya creada.
Ejecutar CreacionSQL.sql para crear la tabla Z_DEFINICION_CAMPO y el procedure Z_TABLAS
Ejecutar el procedure Z_TABLAS y localizar las foreign keys
Añadir en la tabla Z_DEFINICION_CAMPO los campos que sean FK-s. Creo que son triviales los valores que hay que poner en los campos. En el campo QUERY_SI_FK poner lo siguiente:
SELECT IDCLIENTE, NOMBRE FROM CLIENTES ORDER BY NOMBRE
en este caso campo IDCLIENTE es la sea FK de la tabla PEDIDOS, siendo la tabla clientes la que contiene los clientes, siendo IDCLIENTE la PK.
Creo que el ejemplo es bastante descriptivo.

Una vez hecho esto, abrir el proyecto, en la query MDOQUERY1 poner la select que querais ( en le ejemplo seria SELECT * FROM PEDIDOS )
Si hubiera varias FK's habría que dar de alta tantos registros en la tabla Z_DEFINICION_CAMPO como FKs hubiera.

Y nada más... a partir de aquí, lo que se quiera. Se puede combinar con la personalización de los dbgrids tal y como comenta coso. Una mezcla de ambos métodos puede dar un resultado muy grato con poco trabajo.

Ya sólo faltan los campos calculados.... en otra ocasión.

Y por supuesto, el código es mejorable.

Mejoras pendientes:
Control de errores creando campos lookup si no existiera la definición
Otros valores para los campos.
...

Saludos
Archivos Adjuntos
Tipo de Archivo: zip Aplicacion.zip (9,4 KB, 14 visitas)
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita