FoxPro/Visual FoxPro - Ordenar GRID Ascendente y Descendente

 
Vista:

Ordenar GRID Ascendente y Descendente

Publicado por sebastian (7 intervenciones) el 15/06/2010 20:12:03
Hola gente, necesito ordenar mi grid dandole un click en la cabecera en forma ascendente y descendente, ayudenmeeeeeeee.

Gracias de antemano
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
sin imagen de perfil

RE:Ordenar GRID Ascendente y Descendente

Publicado por Chente (81 intervenciones) el 16/06/2010 02:06:25
Primero tendrías que generar los indices necesarios:
Ejemplo1: nombre ascendente
Ejemplo2: nombre descendente

Luego en las propiedades del Grid, en el evento Click del Header puedes poner:

1
SET ORDER TO 1
o bien
1
SET ORDER TO 2

segun lo necesites.
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

RE:Ordenar GRID Ascendente y Descendente

Publicado por ACM (162 intervenciones) el 16/06/2010 06:43:46
Hola Sebastian

Hay varias formas de hacerlo, pero siguiendo el ejemplo del amigo chente usa un swch definie como publico en el init del form.

ejemplo en init

public sworde

sworde=0

en el evento click del header

1
2
3
4
5
6
7
if sworde=0
  set orde to 1
  sworde=1
else
  set orde to 2
  sworde=0
endif

espero te sirva

Acm.
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

RE:Ordenar GRID Ascendente y Descendente

Publicado por Gabriel Sànchez (2 intervenciones) el 18/06/2010 23:39:17
Hola,

Lo primero que debes hacer es indexar las columnas de tu cursor.

Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
* Crear cursor.
create cursor cPersonal(codigo c(5), apellidos c(50), nombres c(50))
 
* Indexar.
index on codigo tag xcodigo
index on apellidos tag xapellidos
index on nombres tag xnombres
 
* Programaren los headers(Click)
 
*-----------------------------------------------------------------------------------
* column1.header1.click()
*
*  Inicializar la propiedad Tag de cada header con la letra 'A'
*----------------------------------------------------------------------------------
select cPersonal
if This.Tag = 'A'
   set order to xcodigo desc
   This.Picture = 'imagen descendente'  && Cualquier imagen referente.
   This.Tag = 'D'
else
   set order to xcodigo asc
   This.Picture = 'imagen ascendente'
   This.Tag = 'A'
endif
go top
 
This.Parent.Parent.Refresh()


Lo mismo en cada header.
Suerte,
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

RE:Ordenar GRID Ascendente y Descendente

Publicado por Eduari1508 (1 intervención) el 14/10/2012 20:47:25
Amigo gracias por el aporte, todo bien pero te comento que solo me funciona por primera vez.
Te comento como estructure mi cursor
1. Primero paso todo mi tabla Alumnos a un cursor csrTemp, esto para poder mostrarlo en grid
2. Actualizo mi grid segun mi busqueda a travez de un metodo que cree. Aqui un ejemplo:

Metodo Buscar:
1
2
3
CASE xesc<>'' AND xdep<>'' AND xcat='' AND xedad=''
 
SELECT item,codalum,edad,dep,esc,esc_dist,esc_prov,cat,apepat,apemat,nom,dni FROM Alumnos WHERE Esc = xEsc AND Dep = xDep ORDER BY 9 INTO CURSOR csrTemp READWRITE

y asi sucesivamente con otras alternativas

En el Header de mi Grid en Click le coloque:

1
2
3
4
5
6
7
8
9
10
11
12
13
INDEX on Codalum TAG oCodalum
IF 	This.Tag = 'A'
	SET ORDER to oCodalum DESCENDING
	This.Picture = 'Descendente.png'
	This.Tag = 'D'
ELSE
	SET ORDER TO oCodalum ASCENDING
	This.Picture = 'Ascendente.png'
	This.Tag = 'A'
ENDIF
GO TOP
 
This.Parent.Parent.Refresh()

TODOS LOS HEADER FUNCIONAN EXCELENTE PERO SOLO CUANDO HAGO LA PRIMERA CONSULTA CON EL METODO BUSCAR, CUANDO REALIZO NUEVAMENTE LA CONSULTA UTILIZANDO EL METODO BUSCAR, YA NO ME GENERA NINGUNA FUNCION EN EL HEADER.

Antes que nada mil disculpas si soy un poco torpe al explicar mi problema.
Agradecere muchisimo tu ayuda.
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

RE:Ordenar GRID Ascendente y Descendente

Publicado por irene (1 intervención) el 21/11/2014 05:23:56
hola mira lo que pasa es que el index se aplica inmediatamente despues de crear tu cursor
SELECT item,codalum,edad,dep,esc,esc_dist,esc_prov,cat,apepat,apemat,nom,dni FROM Alumnos WHERE Esc = xEsc AND Dep = xDep ORDER BY 9 INTO CURSOR csrTemp READWRITE
INDEX on Codalum TAG oCodalum

y en el procedimiento clik del header

1
2
3
4
5
6
7
8
9
10
11
12
IF This.Tag = 'A'
SET ORDER to oCodalum DESCENDING
This.Picture = 'Descendente.png'
This.Tag = 'D'
ELSE
SET ORDER TO oCodalum ASCENDING
This.Picture = 'Ascendente.png'
This.Tag = 'A'
ENDIF
GO TOP
 
This.Parent.Parent.Refresh()

a mi me funciona a la perfeccion
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

Ordenar GRID Ascendente y Descendente

Publicado por Jorge L. (1 intervención) el 16/06/2020 19:09:33
Tengo un Form con un Grid hecho con el Asistente. Y la tabla tiene dos indices Id_Insumo que es Principal y Descripcion que es Normal
Para ordenar el grid en dandole click en el encabesado de la columna Descripcion
puse:
en el Metodo Click

1
2
3
4
Select insumos
Set order to descripcion descending
goto top
thisform.refresh

en la columna Id_insumo en Click

1
2
3
4
Select insumos
Set order to Id_insumo ascending
goto top
thisform.refresh

Listo
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