PDA

Ver la Versión Completa : Modificar valor campos dbgrid


waremovil
30-08-2007, 19:31:37
Hola de nuevo,

¿alguien sabe como se puede modificar el texto presentado por un dbgrid en tiempo de ejecución?

Por ejemplo. Tengo en una BDD dos campos, uno es nombre y el otro es grupo, el grupo está representado por un número, en otra tabla tengo los grupos.

Si muestro el dbgrid conectado a la BDD me aparece:
NOMBRE GRUPO
Pepe 1
Julian 5
Raul 9

Y quiero modificarlo, si el grupo 1 es "amigos", el 5 es "general" y el 9 es "clientes", que se muestre así:

Pepe amigos
Julian general
Raul clientes


Me gustaría hacerlo en tiempo de ejecución, pero no lo consigo.
Usando el evento OnDrawColumnCell no lo consigo, ya que pongo:

grid->Canvas->TextRect(Rect,1,1,"Nombre grupo");

Pero al ejecutar el grid sigue como estaba, no modifica nada

gracias, un saludo

eduarcol
30-08-2007, 20:12:35
no se si builder los tendra, pero en delphi eso se realiza con camos lookup, una recomendacion postea un poco de codigo a ver quien te da mas ideas

waremovil
30-08-2007, 20:49:24
Hola, gracias por responder. No puedo postear código porque ¡no tengo ni idea de como se hace!

debería ser sencillo cambiar el valor de una fila de un dbgrid a partir del valor actual de los datos de esa fila, pero no encuentro nada, y he buscado por todas partes

para apañarlo lo que hago es interceptar el dataset con el evento GetText,
así cada vez que se consulta el número de grupo en el dataset , devuelve como valor el nombre del grupo... ¡pero ahora cada función que consulta el dataset no puede ver el número de grupo!

por eso solo quiero cambiar el valor en la representación del DBGrid y no en el dataset :(

a ver si alguien tiene alguna ideilla, bien sea en delphi o en c++, algo es algo

muchas gracias

eduarcol
30-08-2007, 21:18:17
Intenta por los campos de busqueda, (Lookup) esa es la solucion, lo que no se es si builder los tendra

JAVH
02-09-2007, 01:27:52
Debes crear un campo Lookup para eso C++ Builder usa las mismas librerías que Delphi.

Saludos.