Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Añadir columna a dbrid, que muestre sentencia calculada, en runtime (https://www.clubdelphi.com/foros/showthread.php?t=40828)

niñotaliban 28-02-2007 00:48:11

Añadir columna a dbrid, que muestre sentencia calculada, en runtime
 
Ufff no me acaba de convencer el título que he puesto, pero no sabia como expresarme en pocas palabras jeje.

Mejor os pongo en situación:

Tengo un dbgrid enlazado a una tabla, en esta, ademas de otros campos tengo un identificador foraneo (es decir de otra tabla).

El dbgrid me muestra todos los campos muy bien, pero querria mostrar, en vez del identificador foraneo, el resultado de una sentencia contra la tabla del que proviene, es decir:

en vez de '1' : el identificador
quiero mostrar 'pepito' : un campo que corresponde al registro con el identificador '1'

La cosa la tengo bastante clara si no fuera porque lo quiero hacer en tiempo de ejecución, el tablename de la tabla se asigna en tiempo de ejecución dependiendo de que tabla quiero mostrar, por lo tanto deberia crear los tfields que necesitara en tiempo de ejecucion y luego jugar con el oncalcfields, pero no me aclaro y creo que deberia haber una manera más sencilla.

Bueno espero que me podais dar algún consegillo, almenos pa donde tengo que tirar jejeje.

gracias de antemano

jhonny 28-02-2007 01:04:59

En el siguiente Post encontraras como crear el campo en tiempo de ejecución:

http://www.clubdelphi.com/foros/show...24&postcount=4 y para asignarle el evento al dataset deberas crear pun procedure que reciba los mismos parametros del evento y decirle algo como por ejemplo:

Código Delphi [-]
 
Ttable1.OnCalcFields := EventoDeCalculo;

niñotaliban 28-02-2007 11:54:28

Grácias jhonny, ya he conseguido crear el field, no exactamente como indicas en tu mensaje ya que queria crear un campo calculado pero me has dado la pista que queria jejeje.

Ahora la cosa está en que si abro la tabla antes de crear el field me salta el error de que no se puede crear el field si la tabla está abierta, cosa normal porque en diseño ya te lo dice ya, pero si la abro después solo me muestra el field que he creado y los demás no.

Y me pregunto:

Tengo que añadir todos los fields, con su configuracion y tal, a manija (bueno por codigo) antes de abrir la tabla??

No puedo simplemente añadirlo a los que ya reconoce automáticamente??


Grácias por la pronta y eficaz respuesta :) este foro es un recurso buenísimo, hasta ahora solo he tenido que preguntar esplicitamente un par de veces y la primera fué una tonteria de novato y despistao jeje, pero con solo consultar los hilos que hay he resuelto un montón dudas.


La franja horaria es GMT +2. Ahora son las 07:35:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi