PDA

Ver la Versión Completa : editar solo celdas vacías del dbgrid


yuyidt
23-03-2017, 17:10:24
Hola buenas tardes. Quiero hacerles una consulta:
Tengo un dbgrid conectado a un FDQuery me muestra los siguientes campos (pregunta-respuesta-puntos)
Quisiera poder editar únicamente las celdas que se encuentren vacías de la pestaña puntos. Como puedo hacerlo?

ecfisa
23-03-2017, 17:47:27
Hola.

Fijate si te resulta de este modo:

procedure TtuForm.FormCreate( Sender: TObject );
var
i : Integer;
begin
for i := 0 to FDQuery.FieldCount - 1 do
FDQuery.Fields[i].ReadOnly := True;
end;

procedure TtuForm.FDQueryAfterScroll( DataSet: TDataSet );
begin
FDQuery.FieldByName( 'PUNTOS' ).ReadOnly :=
not FDQuery.FieldByName( 'PUNTOS' ).IsNull; // Suponiendo que el campo se llama "puntos"
end;

No dispongo del componente TFDQuery para corroborarlo, pero dada esta información (http://docwiki.embarcadero.com/Libraries/Berlin/en/FireDAC.Comp.Client.TFDQuery), el código debería hacer lo que solicitas.

Saludos :)

yuyidt
23-03-2017, 18:10:46
pero donde coloco este código, en que evento? o yo misma debo agregar el procedure?
procedure TtuForm.FDQueryAfterScroll( DataSet: TDataSet );
begin
FDQuery.FieldByName( 'PUNTOS' ).ReadOnly :=
not FDQuery.FieldByName( 'PUNTOS' ).IsNull; // Suponiendo que el campo se llama "puntos"
end;

olvide comentar que el query al que se conecta el dbgrid lo tengo en un datamodule

yuyidt
23-03-2017, 19:05:07
El código lo coloque en el query del datamodule y funciono. Muchísimas Gracias ecfisa