Page 1 of 1

Cual puede ser el problema - estoy confundido ??

Posted: Mon Jun 19, 2006 11:55 pm
by jcaro
Hola Foro:

Necesito una ayudita por favor, llevo 2 dias buscando una respuesta y no encuentro una explicación lógica.

El problema es con los Scope , no hay caso no me funcionen.

Adjunto un ejemplo pequeño , donde quiero que se muestren solo las ciudades de la "A a la C"


#Include "FiveWin.Ch"
#Include "Ord.Ch"
#Include "Apollo.ch"

Function Main()

USE Ciudades
SET INDEX ON Ciudades->Codigo TAG Ciudad1 TO Ciudades
SET INDEX ON Ciudades->Nombre TAG Ciudad2 TO Ciudades

// test 1
Ciudades->( OrdSetFocus( "Ciudad2" ) )
Ciudades->( DbGoTop() )
Ciudades->( ORDSCOPE( 0 , "A" ) )
Ciudades->( ORDSCOPE( 1 , "C" ) )
Ciudades->( DbGoTop() )

Browse()

// test 2 - otra forma de acotar

Ciudades->( OrdSetFocus( "Ciudad2" ) )
Ciudades->( sx_scope( 0 , "A" ) )
Ciudades->( sx_scope( 1 , "C" ) )
Ciudades->( DbGoTop() )

Browse()

set scope to

RETURN( NIL )

En ambos test el browse muestra todos los registros.

Que estaré haciendo mal. Habrá que poner un include adicional,
una libreria o algo extra.

Lo he probado todo y no le encuentro explicación.

Lo raro es que en el tag estan bien los indices y si los voy cambiando
me ordena bien la informacion, pero cuando aplico el scope,
no restringue los datos, se muestra simepre todo.

Si alguien sabe algo, se los agradecía.

Utilizo xHarbour 0.95 y FWH y Apollo RDD.

Saludos

Juan

Posted: Tue Jun 20, 2006 4:33 am
by RuFer
Juan:
Yo uso los Scopes hasta con 3 browse.

Lo que hago es en el init del dialogo que estan los browses
tengo una funcion que acciona el scope.


Saludos
Ruben Fernandez.

Posted: Tue Jun 20, 2006 2:06 pm
by jcaro
Hola Ruben:

Gracias por responder, pero creo que no es ese el problema, pues ya tambien probé eso y no funcionó.

Posted: Tue Jun 20, 2006 3:51 pm
by Manuel Aranda
¿No estará el problema en la creación del índice?
Has probado así SET INDEX ON SUBSTR(Ciudades->Nombre,1,1) TAG Ciudad2 TO Ciudades

Un saludo,
Manuel Aranda

Posted: Tue Jun 20, 2006 5:12 pm
by RuFer
Juan:

Prueba esto: Hace un indice substr(ciudad,1,1)

Me parece que por ahi anda la cosa.

Saludos

Ruben Fernandez.

Posted: Wed Jun 21, 2006 2:09 pm
by Alvaro Urdaneta
Juan:

No será el problema el SET INDEX, quita el SET:

INDEX ON Ciudades->Codigo TAG Ciudad1 TO Ciudades
INDEX ON Ciudades->Nombre TAG Ciudad2 TO Ciudades

Saludos

Posted: Wed Jun 21, 2006 2:43 pm
by jcaro
Sigo por aqui:


1) Yo creo los indices con INDEX ON ... asi que no creo que sea eso.

2) Voy a probar lo del Substr( )

3) Sino no funciona, pienso regenerar de nuevo todas las librerias y cambiar de version del compilador.

4) Se que el problema es bien tonto, pero me tiene complicado.

Gracias a todos por sus sugerencias. Le estare contando luego.

Juan

Posted: Wed Jun 21, 2006 5:22 pm
by RuFer
Juan:
Asi te debe funcionar:
Al crear el indice con substr(ciudades,1,1)
no tienes problemas.
Esto lo tengo funcionando.

Ciudades->( OrdSetFocus( "Ciudad2" ) )
Ciudades->( DbGoTop() )

Ciudades->( ORDSCOPE( 0 , "A" ) )
Ciudades->( ORDSCOPE( 1 , "C" ) )
Ciudades->( DbGoTop() )

Despues me cuentas

Saludos
Ruben Fernandez