duda sobre la localizacion de registros mediante indices...

Post Reply
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

duda sobre la localizacion de registros mediante indices...

Post by Elias Torres »

Hola a todos..

Tengo una duda sobre la busqueda por indices y es que al declararme la tabla y especificarle el indice intento realizar un seek sobre el indice y me da error...

La tabla la declaro de la siguiente forma:

USE ( CurDir() + "\articulos" ) VIA "DBFCDX" new
articulos->( OrdSetFocus( "cod_art" ) )
cAliasArticulos := Alias()

Luego intento hacer un seek("codigodelarticulo") y me da error. Puede ser simplemente que la declaracion del seek no sea asi. La verdad es que no he encontrado nada que me diga como es. Por eso recurro de nuevo aqui....

¿Alguien sabe algo?

Saludos y gracias.


Elías Torres.
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Post by Carles »

Hola,

(cAliasArticulos)->( DbSeek( tucodigodelarticulo ) )

Adios
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Hola Carles,

Gracias por la información pero no me funciona. Se supone que el dbseek() lo que hace es posicionar el puntero en el registro de la tabla que se indique en base a la relación que se ponga y a partir de ahi se podría mostrar cualquier campo del registro, correcto?, pues no me va.....

No me da error pero no me muestra nada...


Seguiré averiguando el por que.....


Saludos y gracias.

Elías Torres.
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Post by Carles »

Elias,

- Tienes correctos los indices ?
- Hay registros q cumplen la condicion ?

Prueba de abrir la tabla y crear el indice de nuevo.

Code: Select all

USE ...
INDEX ON .. TO ...
...

(cAlias)->( DbSeek( codigodearticulo, .t. ) )

WHILE (cAlias)->codigo == codigodearticulo .AND. (cAlias)->( !Eof() )
 
   MsgInfo( (cAlias)->(FieldGet(1) ) )

   (cAlias)->( DbSkip() )

END
Siau.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Hola Carles,

Al final he solucionado el tema de los indices, gracias. Lo que me pasa es que me surgió otro problema... Cuando me posiciono con el indice en la tabla me muestra de ahi para abajo. Te pongo un ejemplo, supongamos que de la tabla solo quiero mostrar los dos primeros registros que son los que cumple las condicion de los indices, pero me muestra esos dos mas el resto....

Estoy utilizando un LISTBOX para mostrar la informacion, pero no se como decirle que si cambia el codigo del cliente no me siga mostrando ningun registro.

En definitiva, lo que pretendo es hacer lo mismo que hace set filter pero con indices, no se si me he explicado.....

(cAliasArticulos)->( DbSeek( (cAliasCliente)->codcli, .t. ) )

DEFINE dialog odlg resource "Cliente_articulos"

redefine LISTBOX oBrw ;
FIELDS articulos->cod_art,articulos->nom_art,STR(articulos->cant),STR(articulos->precio) ;
HEADERS "Código", "Descripción", "Cant", "Precio" ID 100 OF oDlg

ACTIVATE dialog odlg

Saludos y gracias....

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Añade esto:

redefine LISTBOX oBrw ;
FIELDS articulos->cod_art,articulos->nom_art,STR(articulos->cant),STR(articulos->precio) ;
HEADERS "Código", "Descripción", "Cant", "Precio" ID 100 OF oDlg ;
SELECT articulos->cod_cli FOR (cAliasCliente)->codcli
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply