Problema de Ordenacion de Datawindow by group

Tengo 2 tablas una donde se almacena las Obras y otra las partidas, las partidas se almacena como texto ejemplo:651108,651111; etc. El grupo uno tiene a las obras, y el grupo 2 tiene a las partidas que se muestran. El problema es que cuando muestro la datawindow(en vista preliminar con margenes y preview), yo la datawindow lo ordeno por partida, siempre me sale ejemplo: 651111,651123,651129,651139 y al ultimo sale 651108 cuando eso debería salir primero.

3 Respuestas

Respuesta
1
Creo entender que lo que tienes es un datawindow, que posee un select el cual esta compuesto por la selección de datos de 2 tablas, igualmente este datawindow tiene declarado 2 grupos, A y B
Y cuando hechas a andar el datawindow no presenta los datos ordenados
Bien.
Se me ocurren muchas preguntas pero antes de esto algunas soluciones.
*- revisa el sort del datawindow es posible que la seleccion de los campos no coincida con el orden visual que necesitas.
*- es posible que la primera carga si la este haciendo bien, pero adicionalmente insertas nuevos datos por otro medio por ejemplo por teclado, entonces cada vez que insertas uno nuevo te recomiendo que llames a la funcion Sort() la cual reordena el datawindow e inmediatamente groupcalc(), esta ultima funcion, recalcula los grupos del datawindow.
*- en el caso de tener un sort compuesto por varios campos, en el datawindow, lo mejor que puedes hacer es probar con uno simple, y progresivamente aumentar los campos, es posible que encuentres algo.
Si aun con todo esto el problema persiste, entonces te agradecería incluir, el script del select de tu datawindow, y el sort, y los campos que conforman los grupos, y si estos a su vez tienen un orden propio.
Respuesta
1
1) ¿Son todas las partidas de la misma obra?
Si agrupas por obras y partidas para que el agrupamiento ande bien tienes que ordenar por el mismo criterio. Entonces si la 651108 es de otra obra va a quedar separada
2) ¿Son todos los campos texto del mismo tamaño?
2a) probá hacer dobleclick sobre la columna de ordenamiento en la ventana de opciones de ordenamiento y pone: Trim(nombre campo) o Long(nombre campo)
El agrupamiento esta muy ligado al ordenamiento de las filas.
3) En tiempo de ejecución después del retrieve PB ordena y agrupa las filas de las dw. Si vos haces alguna operación sobre las filas (x ej filter()) tienes que reordenar y reagrupar las filas. Sort() y groupCalc()
Respuesta
1
El problema puede ser que el campo por el que quieres ordenar, al ser de tipo texto, el ordenamiento se realiza de este mismo modo, es decir:
Los valores 1, 2, 3, 10, 11, ordenados NUMÉRICAMENTE son 1, 2, 3, 10 y 11, pero ordenados ALFABÉTICAMENTE se ordena 1, 10, 11, 2, 3.
Para solucionar este inconveniente se puede optar por dos opciones:
1. Convertir el campo a NUMÉRICO
2. Ordenar por el LONG(CAMPO) o DOUBLE(CAMPO)
Esta segunda opción convierte una cadena a numero y luego ordena por el resultado. El problema es que si tienes datos con caracteres no numéricos, se convierten a 0 y los ordena primero.
Espero que mi respuesta te sirva.
Suerte!
Mariano.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas