Delphi - como puedo en un OnFilterRecord-----???????

 
Vista:

como puedo en un OnFilterRecord-----???????

Publicado por Juanº (17 intervenciones) el 06/03/2003 06:49:30
.... lo que quiero hacer es que en el DBgrid me muestre todos los registros que su nombre inicia con una latra o palabra que yo escriba en una caja de texto????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como puedo en un OnFilterRecord-----???????

Publicado por Ernesto D'Spirito (706 intervenciones) el 06/03/2003 17:00:07
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar