Fórum Pintar celula DBGrid de acordo com valor no TclientDataSet #349454
22/11/2007
0
procedure TForm1.dbgridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if BuscaTipoResultado(IBDataSet.RecNo)= 4 then begin if Column.Field = IBDataSet.fieldByName(´resultado) then begin dbgrid.Canvas.Brush.Color:= clwhite; dbgrid.Canvas.FillRect(Rect); dbgrid.DefaultDrawDataCell(Rect,Column.Field,State); end; end else begin dbgrid.Canvas.Brush.Color:= clBtnFace; dbgrid.Canvas.FillRect(Rect); dbgrid.DefaultDrawDataCell(Rect,Column.Field,State); end; end;
Já no ClientDataset não funciona. Não sei porque mas no TclientDataSet o RecNo só retorna 1. Preciso saber qual linha do dbgrid esta sendo pintada no evento onDrawColumnCell para verificar no meu TclientDataSet qual é o tipo de resultado.
Se alguem puder me ajudar eu agradeço muito....
Pcsilva
Curtir tópico
+ 0Posts
22/11/2007
Edilcimar
Gostei + 0
22/11/2007
Joaoshi
if BuscaTipoResultado(IBDataSet.RecNo)= 4 then
para
if ClientDataSet.FieldByName(´TipoResultado´).as integer = 4 then
deve funcionar.
Espero ter ajudado.
Gostei + 0
24/11/2007
Pcsilva
Mas desta forma não funciona pois ela pinta toda a coluna com o tipo de resultado do registro corrente. Preciso saber qual é o numero do linha do bdgrid para verificar qual é o tipo resultado de cada linha. Criei um vetor para armazenar a linha e tipo independete do CLientDataSet.
Gostei + 0
24/11/2007
Luciano.lirio
Altere o código abaixo para que funcione na tua rotina.
no exemplo abaixo todos os saldos menor que 200 serão pintados de vermelho.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if Column.Field = ClientDataSet1SALDO then if ClientDataSet1SALDO.AsCurrency < 200 then begin DBGrid1.Canvas.Font.Style := DBGrid1.Canvas.Font.Style + [fsBold]; DBGrid1.Canvas.Font.Color := clRed; DBGrid1.DefaultDrawDataCell(rect,Column.Field,State); end; end
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)