Indice Acendente, Decendente y Ascendente para un reporte

67 views
Skip to first unread message

Sistemas Integrales de Control GapegA Nacho

unread,
Feb 28, 2017, 10:57:53 AM2/28/17
to Comunidad de Visual Foxpro en Español
ayuda, Requiero un índice que contiene   Cliente [DESCENDENTE] + Cantidad [DESCENDENTE] + Codigo [ACENDENTE], Haber si alguien me puede ayudar, he visto varias opciones pero no me da, gracias

Fernando D. Bozzo

unread,
Feb 28, 2017, 1:03:58 PM2/28/17
to Comunidad de Visual Foxpro en Español
Podrías usar un cursor temporal para eso, con un Select-SQL:

SELECT campos-que-necesites FROM tuTabla ORDER BY cliente DESC, cantidad ASC, codigo DESC INTO CURSOR C_REPORTE


Saludos.-

Carlos Miguel FARIAS

unread,
Feb 28, 2017, 4:58:47 PM2/28/17
to Grupo Fox
Si realmente necesitas un indice, deberías utilizar una expresión complementaria.
#DEFINE UN_NUMERO_GRANDE 99999999999999999999
INDEX ON STR(UN_NUMERO_GRANDE - Cliente) + STR(Cantidad) + STR(UN_NUMERO_GRANDE - Codigo)
Asumo que cliente y código son numéricos, si cliente y código tienen rangos mas pequeños, conviene que UN_NUMERO_GRANDE no sea tan grande, para que sea mas chico el indice.
También puede agregar tamaño a str para acotar el tamaño del índice.
En mi caso, preferiría usar la solución de Fernando ya sea como cursor temporal o definiendo una vista.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe

Fernando D. Bozzo

unread,
Feb 28, 2017, 5:03:25 PM2/28/17
to publice...@googlegroups.com
Había pensado en lo del índice, pero el último campo "código" me pareció que si realmente se trataba de un código podía ser alfanumérico y en ese caso se complicaba bastante hacer el reverso para que sea descendente, porque hubiera requerido de meter una UDF en el índice que genere el complemento a "Z" de la tabla ASCII...

Aprovecho para corregir un error ASC/DESC que vi en el SQL:

SELECT campos-que-necesites FROM tuTabla ORDER BY cliente DESC, cantidad DESC, codigo ASC INTO CURSOR C_REPORTE

Saludos!

Carlos Miguel FARIAS

unread,
Feb 28, 2017, 5:09:45 PM2/28/17
to Grupo Fox
Si, si alguno de los campos es alfanumérico ya no sirve, aparte, es solo para consulta secuencial, no para listar.
Por eso dije que me gustaba más tu solución (SQL) que crear un indice, que implica de por si una complejidad y un espacio muy grande (y si tenemos en cuenta que cantidad puede estar cambiando con frecuencia, un tiempo de actualización notorio).
Saludos: Miguel
Reply all
Reply to author
Forward
0 new messages