Ordenacion de registros


([N1] lsmsusvilla) #1

Hola, una consulta de ordenación. Tengo una tabla con tipos de documentos con un campo REF y otro NAME, esta tabla luego la presento en una rejilla normal de forma arbolada segun el campo REF. El problema es cuando la quiero ordenar si pongo ordenar por REF y luego por NAME los registros que cuelgan de la rama aparecen ordenados por el campo REF pero no por le campo NAME.
En el caso de por ejem. DOCUMENTOS MEDICOS, el primer registro es Receta (Medica) y el ultimo por ejemplo Ecografia que empieza por la E.
Adjunto imagen del ejemplo.
Mi pregunta es: ¿Como se puede ordenar dentro de la rama por orden alfabetico?


([N1] lsmsusvilla) #2

Imagen de ejemplo



([N1] wikan) #3

Estás ordenando por #REF, así que el orden que te aparece es normal.
Si hubieran dos #REF iguales, entonces si ordenaría por nombre.

Por eso te aparece Receta al principio y Ecografía al final, por que estás ordenando primero por #REF


([N3] pacosatu) #4

Hola lsmsusvilla.

Para conseguir que ordene por Nombre dentro de la rama debes ordenar por: left(REF,3) y NAME.

Tendrías que añadir un campo nuevo a la tabla REF_L3 cuyo contenido inicial sea left(REF,3) y entonces ya puedes Ordenar correctamente por los campos REF_L3 y NAME.

Otra opción más óptima es crear un Índice con la fórmula left(#REF,3) + #NAME y cargar la lista por este índice.

Saludos
Paco Satué


([N1] lsmsusvilla) #5

Ok muchas gracias perfecto sabia que había una forma mas lógica de hacerlo que multipartiendo lista ordenando y etc etc.

De las dos que me has comentado me quedo con la mas optima, osease por indice rapida, sencilla y optimizada,

Lo dicho gracias.