| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
MAC Lt

Registrado: 11 Ago 2002Mensajes: 77
|
Publicado: Sab 19 Oct, 2002 1:48 am Asunto: Ayuda con colores en DBGrid |
|
|
Saludos necesito porfavor me ayuden, estoy trabajando con un DBGrid a donde muestro los siguientes campos
Nombre,Descripcion,Precio
y lo que necesito hacer es que al editar el campo precio en el DBGrig la fila en la cual se cambio el precio cambie de color por si la fila era de color azul cambie a verde y a los 5 dias vuelva al color azul lo he estado intentado hacer utilizando los eventos del DBGrid OnDrawDataCell y OnDrawColumnCell pero no me funciona y no tengo ni idea de como hacer el codigo si alguine tiene una idea o un ejemplo el cual me pueda ayudar se lo agradeceria mucho ya que tengo algun tiempo sin poder lograrlo muchas gracias
Mac.  |
|
| Volver arriba |
|
 |
MAC Lt

Registrado: 11 Ago 2002Mensajes: 77
|
Publicado: Lun 21 Oct, 2002 2:58 am Asunto: |
|
|
Saludos lycopersium muchas gracias por la ayuda pero he probado lo que me dices pero no me funciona entiendo que el ejemplo que me das es para compara la fecha con el campo fecha del producto y poner el color correspondiente pero como puedo hacer para decirle al DBGrid que al modificar unicamente el campo precio cambie de color, tambien probe el ejemplo que me enviastes pero estoy trabajando con TQuery y al cambiar en el codigo el TTable con el TQuery osea esto:
DBGrid1->DefaultDrawDataCell(Rect, Tabla->Fields->Fields[DataCol], State);
por
DBGrid1->DefaultDrawDataCell(Rect, Quey1->FieldsValues["Precio"], State);
me da errores al compilarlo nose si es distinto o hay algo mal
te agradeceria mucho me puedas ayudar a resolver el problema agradesco tu ayuda
Mac. |
|
| Volver arriba |
|
 |
MAC Lt

Registrado: 11 Ago 2002Mensajes: 77
|
Publicado: Lun 21 Oct, 2002 3:04 am Asunto: |
|
|
Saludos lycopersium muchas gracias por la ayuda pero he probado lo que me dices pero no me funciona entiendo que el ejemplo que me das es para compara la fecha con el campo fecha del producto y poner el color correspondiente pero como puedo hacer para decirle al DBGrid que al modificar unicamente el campo precio cambie de color, tambien probe el ejemplo que me enviastes pero estoy trabajando con TQuery y al cambiar en el codigo el TTable con el TQuery osea esto:
DBGrid1->DefaultDrawDataCell(Rect, Tabla->Fields->Fields[DataCol], State);
por
DBGrid1->DefaultDrawDataCell(Rect, Quey1->FieldsValues["Precio"], State);
me da errores al compilarlo nose si es distinto o hay algo mal
te agradeceria mucho me puedas ayudar a resolver el problema agradesco tu ayuda
Mac. |
|
| Volver arriba |
|
 |
lycopersium Lt


Registrado: 12 Oct 2002Mensajes: 90Ubicación: Roquetas de Mar - Almería
|
Publicado: Lun 21 Oct, 2002 10:45 pm Asunto: |
|
|
Hola!
Utilizando el evento OnDrawColumnCell pienso q te va a funcionar. Lo q si deberías añadir es otro campo para guardar la fecha. Podrías poner algo así:
| Código: | void __fastcall TForm1::DbGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
TColor color;
if ((Date()-5)==Tabla->FieldByName("Fecha")->AsDateTime) color=clBlue;
else color=clGreen;
DbGrid1->Canvas->Brush->Color=color;
DbGrid1->DefaultDrawDataCell(Rect, Tabla->Fields->Fields[DataCol], State);
} |
"Fecha" es el campo nuevo q pondria para almacenar la fecha
ESpero q t sirva. TAluego  |
|
| Volver arriba |
|
 |
lycopersium Lt


Registrado: 12 Oct 2002Mensajes: 90Ubicación: Roquetas de Mar - Almería
|
Publicado: Lun 21 Oct, 2002 11:20 pm Asunto: |
|
|
Hola MAC
Si utilizas un query solo tienes q cambiar "tabla" por "query1" . Así:
| Código: | DBGrid1->DefaultDrawDataCell(Rect, Query1->Fields->Fields[DataCol], State); |
Si quieres q solo cambie cuando modifiques el campo precio lo q se me ocurre es q si utilizas el nuevo campo para almacenar la fecha solo lo modifiques cuando tambien modifiques el campo precio. Esto lo puedes hacer declarando una variable global (p ej PrecioAnt) y en el evento BeforeEdit del Query le das el valor del campo precio. Luego en el evento BeforePost compruebas si ha cambiado el valor del precio y si ha cambiado le das al campo fecha el valor de la fecha actual.
| Código: | if (PrecioAnt!=Query1->FieldValues["Precio"]) Query1->FieldValues["Fecha"]=Date();
|
A ver si asi si  |
|
| Volver arriba |
|
 |
MAC Lt

Registrado: 11 Ago 2002Mensajes: 77
|
Publicado: Mar 22 Oct, 2002 9:06 am Asunto: |
|
|
MUCHISIMAS GRACIAS lycopersium me funciono perfectamente es exactamente lo que necesitaba te lo agradesco mucho gracias
 |
|
| Volver arriba |
|
 |
|