FoxPro/Visual FoxPro - duda con indice y ordenamiento

 
Vista:
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 30/07/2015 05:25:56
Hola, buenas noches a todos(as) de antemano mil gracias por detenerse a leer esta solicitud de ayuda.
Estoy haciendo unas rutinas para llevar competencias de KARATE de manera mas o menos en orden y las estoy programando en Visual Fox Pro 9.
Ahora bien, imaginen que en una tabla libre (DBF) tengo los estados que compiten (estado 1, estado2, estado3 ...) y en ella tengo las medallas que han ganado (oro, plata y bronce) y al final quiero totalizar y ordenar con indices descendentes esos totales y el estado que tenga mas de oro seria el ganador con el 1er lugar, le seguiria el estado con la segunda mayor cantidad de oro o como suele ocurrir pueden existir 2 o mas estados con lamisma cantidad de oro y tendriamos que tomar en consideración las medallas de plata y seria ganador quien tuviera mayor cantidad de medallas de plata aun cuando esten empatados con las cantidades de medallas de oro (es aca el problema). esta logica tambien aplicaria para las medallas de bronce

por ejemplo:

ESTADO ORO PLATA BRONCE LUGAR
estado 1 oro(3) plata(2) bronce(4) lugar( 3)
estado 2 oro(3) plata(1) bronce( 2) lugar(2)
estado 3 oro(5) plata(0) bronce(5) lugar(1)

Logran entender la pregunta...=??
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

duda con indice y ordenamiento

Publicado por Mauricio Antonio (1541 intervenciones) el 30/07/2015 12:24:29
Casi se entiende, pero que tienes hecho, pon el codigo para ver como se te 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
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 30/07/2015 17:27:40
Hola MAuricio, mil gracias por tu ayuda.
Con respecto a la duda te puedo comentar lo siguiente: he agregado un boton (command) con evento CLICK con la siguiente rutina:
SELECT 5 &&&& tbla con los estados y las medallas obtenidas x estado
SET ORDER TO FINAL DESCENDING && TOTAL_BRON+TOTAL_PLAT+TOTAL_ORO

LOCATE FOR ESTADO='AMAZONAS'
IF FOUND()
thisform.grdMedallero.column9.total_oro.value=KUMI_ORO+KATA_ORO
thisform.grdMedallero.column10.total_plata.value=KUMI_PLATA+KATA_PLATA
thisform.grdMedallero.column11.total_bronce.value=KUMI_BRON1+KUMI_BRON2+kata_bronc
thisform.grdMedallero.Refresh
ENDIF
este es un ejemplo solo para un estado, esta rutina se repite tantas veces como estados hayan (24). Se me pasaba por alto, esta informacion se muestra en una GRID con el nombre GRDMedallero

GRacias
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
sin imagen de perfil
Val: 309
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

duda con indice y ordenamiento

Publicado por santiago (551 intervenciones) el 30/07/2015 20:02:37
Hola, el problema no esta en la programación, sino mas bien en la "valoración" de cada medalla, o sea la lógica de posicionar al "estado ganador", y eso te lo tienen que dar los organizadores de la competencia, por ejemplo: (siguiendo tu lógica), si un estado X tiene 3 medallas de bronce --> entonces esta en mejor lugar que el estado Y que solo tiene 2 medallas de oro; no creo que 2 medallas de oro sean pues menos que 3 de bronce.

La solución estaría en dar una puntuación por cada medalla, entonces el tema quedaría mas o menos así:

medalla de oro = 5 puntos
medalla de plata = 3 puntos
medalla de bronce = 1 punto

Estado X = 3 medallas de bronce = 3 puntos
Estado Y = 2 medallas de oro = 10 puntos

¿quien esta en primer lugar?

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
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 31/07/2015 02:17:58
Hola Santiago, gracias por ayudarme. te informo que para poder declarar los ganadores por estado se debe hacer por "tipos" de medalla. por ejemplo: quien tenga mas de oro "gana" si hay un empate en la cantidad de medallas de oro se procede a comparar las medallas de plata, si alguien tiene mas de plata aunque estén empatados en oro, pues gana el que tenga la mayoria de plata, si persiste el empate, entonces se comparan las medallas de bronce para tratar de romper el empate. Me explique?? Luego que resuelva este pequeño dilema les presento otro...
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

duda con indice y ordenamiento

Publicado por Fidel José (657 intervenciones) el 30/07/2015 21:34:52
Yo agregaría un campo Algoritmo N(8,0) o Integer, donde se calcula:
Select Tabla
SCAN
REPLACE ALGORITMO WITH Estado1*1000 + Estado2*100 + Estado3
ENDSCAN
INDEX ON ALGORITMO TAG IALGORIT DESCENDING
GO TOP

Esto es más sencillo que trabajar un índice con: Padl(transform(Oro),3,"0")+Padl(transform(Plata),3,"0")+Padl(transform(bronce),3,"0")
Que también lo puedes hacer. Solo que a mí no me gustan este tipo de índices.

En cuanto a la grdMedallero, la asignación de valores por .value a las columnas no corresponde a la naturaleza de un control grid. El control grid asigna automáticamente por ControlSource los campos de la tabla asociada, hasta que declares la cantidad de columnas y los respectivos ControlSource de cada columna.
Por varios motivos no resulta aconsejable cambiar los nombres de los Textbox de las columnas. Entre otras cosas, porque cualquier reasignación del cursor asociado los hará desaparecer.
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
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 31/07/2015 02:25:25
Hola Fidel, gracias por ayudarme. Primeramente quisiera excusarme con todos ustedes debido a lo "NOVATO" que resulto estar en la programacion con esta herramienta de VFP. Realmente soy un poco nuevo en esto.
No logro entender muy bien lo que intentas mostrarme con el ejemplo.
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

duda con indice y ordenamiento

Publicado por Fidel José (657 intervenciones) el 31/07/2015 15:43:56
Leonardo
En el adjunto tenes una planilla de excel con dos ejemplos. Con la versión ordenada por "algoritmo" determinás el mejor puntuado (oro,plata,bronce).
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
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 01/08/2015 20:57:29
gracias, lo estoy descargando y comienzo a analizar. Posteare los resultados.
Dios les pague...
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
Imágen de perfil de Leonardo

duda con indice y ordenamiento

Publicado por Leonardo (8 intervenciones) el 03/08/2015 23:01:57
Buenas tardes amigo Fidel, te comento que tu ayuda me funciono perfectamente,
MIl gracias... hermano...
ya estaré pidiendo otra manito con el mismo proyecto pero esta vez de otra indole.
Como dije anteriormente; mil gracias.
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