PDA

Ver la Versión Completa : buscar facturas


omar_cremona
14-05-2003, 13:33:01
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.
Table1.Locate( 'ID', 26, [] );
O podes utilizar filtros, para retornar mas de un registro
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 ^_^