Filtrar una tabla es tan fácil como:
Código Delphi
[-]
tabla1.filter := 'No_control = 12245'; tabla1.fileter := 'no_control = ' + quotedStr('12245'); tabla.filtered := true;
Con un grid ligado a esa tabla, ya tienes el filtro; pero un filtro, además de costoso para el sistema, es poco flexible y tarde o temprano necesitarás algo más potente.
Puedes usar un TQuery:
Código Delphi
[-]
var periodoElegido:String;
begin
if VerPeriodo1 then
PeriodoElegido := 'Periodo1'
else if VerPeriodo2 then
PeriodoElegido := 'Periodo2'
else
PeriodoElegido := 'Periodo1, Periodo2, Periodo3';
query1.sql.text := 'select no_control, materia, ' + periodoElegido+
' from calificaciones where '+
' no_control = : prControl';
query1.ParambyName('prControl').AsString := '232354';
query1.RequestLive := true; Query1.Open;
Dbgrid1.Columns.RebuildColumns; Dbgrid1.Colums[0].ReadOnly := true; Dbgrid1.Colums[1].ReadOnly := true; end;
El Query lo tienes asociado al DBGrid1 y puedes modificar los datos directamente sobre ese grid.
Saludos