Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   buscar facturas (https://www.clubdelphi.com/foros/showthread.php?t=421)

omar_cremona 14-05-2003 13:33:01

buscar facturas
 
buscar una factura por un item en su detalle.
con tablas dbe.

delphi.com.ar 14-05-2003 17:36:09

Podés hacer un Locate, y el TTable se posicionará en el registro encontrado, si no lo encuentra el resultado es false.
Código:

Table1.Locate( 'ID', 26, [] );
O podes utilizar filtros, para retornar mas de un registro
Código:

Table1.Filter := 'ID = 26';
Table1.Filtered := True;

Solo tendrías que jugar con que campos queres buscar/filtrar.


Saludos!

superhopi 20-05-2003 13:52:43

Me explico, si es una cadena de caracteres y solo sabes los dos primeros?
como seria con locate?
Table1.Filter := 'ID = 26*';
Table1.Filtered := True;
... asi? es que no me sale asi, me sale todo en blanco.

jceluce 20-05-2003 14:21:05

Podrias hacer así:

tabla1.Locate('ID', '26', [loPartilKey]);

la tabla se posiciona en el primero que empiece con '26'.

guillotmarc 20-05-2003 14:24:05

Hola.

Más bien debería ser :

Table1.Filter := 'ID Like 26%';
Table1.Filtered := True;

Pero el Operador Like no es aceptado en los datasets normales. Solo funcionará si utilizas un ClientDataSet.

Es decir, de la pestaña MIDAS o DataAccess (depende de la versión de Delphi), añades un TDataSetProvider y un TClientDataSet.

La propiedad DataSet del TDataSetProvider la asignas a tu Table1, y la propiedad ProviderName del TClientDataSet la asignas al DataSetProvider1 (el Provider que has añadido antes).

Ahora solo tienes que cambiar el código, de forma que en lugar de trabajar con Table1, debes trabajar con el ClientDataSet. Incluso los Open, etc. ... los tienes que hacer sobre el ClientDataSet. Y finalmente en los filtros si que te permitirá filtrar con Like :

ClientDataSet1.Filter := 'ID Like 26%';
ClientDataSet1.Filtered := True;

Saludos.

superhopi 20-05-2003 14:25:51

gracias mi a los dos, asunto solucionado ^_^


La franja horaria es GMT +2. Ahora son las 08:33:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi