Ver Mensaje Individual
  #2  
Antiguo 06-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 24
andres1569 Va por buen camino
Una opción es asignar el FielName a ambas columnas y ocultar la aparición del valor interceptando el evento OnDrawColumnCell del DBGrid. Aquí va un ejemplito:

Código:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Column.Field.FieldName = 'SubTotal' then
  with DBGrid1.Canvas do
  begin
    if gdSelected in State then Brush.Color := clHighLight
    else Brush.Color := clWhite;
    if ((Column.Field.AsCurrency >= 0) AND (Column.Index = 7)) OR
       ((Column.Field.AsCurrency < 0) AND (Column.Index = 8)) then
       FillRect (Rect);
  end;
end;
En este ejemplo, Column.Index te sirve para saber de qué columna se trata en cada caso. Si se cumple la condición se pinta el fondo de dicha celda y aparece en "blanco".
__________________
Guía de Estilo
Responder Con Cita