Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Color distintivo en DBgrid segun fechas (https://www.clubdelphi.com/foros/showthread.php?t=48624)

amadis 29-09-2007 15:50:48

Color distintivo en DBgrid segun fechas
 
Que tal Gente.

Estoy tratando de pintar lor registros de un DBgrid de dos colores segun un campo fecha.

Si bien hay varios hilos sobre colorear DBgrids, de todos no logré el pintado que deseo.

Que es simplemente saber si el registro siguiente tiene la misma fecha que el actual, si tiene la misma fecha lo pinto del mismo color que el actual(clInfoBk), caso contrario lo dejo color blanco.

Y eso para cada registro, de modo que en la grilla se vean separadas las distintas fechas.

Resultando el pintado de la grilla algo asi.

Fecha (color de pintado)
10/09/07 blanco
10/09/07 blanco
10/09/07 blanco
12/09/07 clInfoBk
12/09/07 clInfoBk
12/09/07 clInfoBk
13/09/07 blanco
13/09/07 blanco
14/09/07 clInfoBk

Lo que me falta es saber por medio del metodo DBgrid1.Dataset ¿que valor de fecha tiene el siguiente registro??

Espero haberme explicado bien!

Gracias

aeff 29-09-2007 17:31:35

saludos, no se si te entendí, de todas formas revisa el pequeño codigo que he estado desarrollando para por medio del metodo DBGrid.DataSource.DataSet sacar el valor del campo siguiente al campo en el que estas actualmente, ¿me entiendes no?, entonces, estos codigos van en el evento DrawColumnCell del DBgrid, quedando así:

Código:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  fIndex: Integer;
begin
  fIndex := DBGrid1.DataSource.DataSet.FieldByName(Column.FieldName).Index;
  if fIndex < DBGrid1.DataSource.DataSet.FieldCount -1 then
    Caption := DBGrid1.DataSource.DataSet.Fields[fIndex + 1].AsString
end;

ahora, esto da un poco de dolor de cabeza, a veces se queda sin mostrar el valor del campo siguiente pero eso ya debe ser problema del evento en el que programes para calcular este valor,

espero que te sirva de algo,

saludos!
aeff!!

amadis 03-10-2007 20:00:21

Estube tratando de adaptar ese codigo a mi necesidad pero no hay forma!

Con eso obtengo el valor dle campo siguiente.

Necesito saber el valor del campo FECHA del regsitro siguiente. Simplemente eso para compararlo al valor del campo actual y si es diferente pinto la celda de otro color.

¿alguna idea?

¿Algun evento o propiedad que sugieran estudiar?

Gracias


La franja horaria es GMT +2. Ahora son las 14:40:15.

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