Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ayuda con colores en DBGrid

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ayuda con colores en DBGrid Responder citando

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. Crying or Very sad
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola! Shocked

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 Twisted Evil
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola MAC Mr. Green

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 Exclamation
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

MUCHISIMAS GRACIAS lycopersium me funciono perfectamente es exactamente lo que necesitaba te lo agradesco mucho gracias
Very Happy
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.