RE:como puedo en un OnFilterRecord-----???????
Para que el evento se use, la tabla tiene que tener la propiedad Filtered en True. En el evento, examinas cada registro, y pones Accept en True para aquellos registros que deben mostrarse, y False para los que no. En el caso particular que planteas:
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := AnsiCompareText(Copy(TablaCampo.AsString,
1, Length(s)), s) = 0;
end;
Uso AnsiCompareText en vez del operador "igual" (=) para comparar las cadenas porque AnsiCompareText no distingue mayúsculas de minúsculas ('a' y 'A' son iguales) y tiene en cuenta los caracteres especiales (como las letras acentuadas y las eñes).
He asumido que tienes un objeto campo creado, y que el texto lo has puesto en una variable global "s", pero puede ser de esta otra manera, aunque será un poco más lento:
Accept := AnsiCompareText(Copy(Tabla.FieldByName('Campo').AsString,
1, Length(Edit1.Text)), Edit1.Text) = 0;
Espero que te sirva.
Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php