Ordenamiento en grid no se que indice esta usando

Hola nuevamente, no se si sea un bug o algo que tengo implementado mal pero mi aplicación me ordena de una manera que no esperaba.
Tengo una tabla de movimientos de detalle con un enlace a maestro a la tabla de proveedores.
Tengo un formulario que me muestra todos los detalles y uno de los campos es “#PRV.NAME”, es decir muestra el nombre a partir del campo de enlace con el padre.
Cuando en la rejilla hago click en la cabecera de “Proveedor” aparentemente me ordena correctamente todos los detalles por proveedor… bueno, casi todos… tengo dos que se llaman prácticamente igual en sus primeros 20-25 caracteres, solo al final se diferencían. entonces para estos dos proveedores me salen mezclados unos y otros entre ellos, de hecho me di cuenta de esto en un reporte de estos detalles que el grupo por nombre del proveedor me arrojaba varios acumulados por lo mismo que estaban mezclados.
En el reporte pude por el momento solucionarlo agregando en segundo lugar el ordenamiento “#PRV.ID” (en primero está “#PRV.NAME”) y con esto sale el truco, pero en la rejilla siguen apareciendo intercalados.
Aquí mi duda es si esto se debe a que el único indice que tengo en la tabla de proveedores que involucra el campo “NAME” es del modo “campo porción”, y de ser así, y si creo un nuevo indice con el campo en modo “campo completo” ¿Cómo le digo a la relación o a la rejilla que use ese en lugar del de porción?
Un abrazo.

Hola marco_rangel.

Lamentablemente, el sistema de ordenamiento en las Rejillas es confuso y mal implementado desde un principio. La Rejilla ordena los registros usando un algoritmo interno que nada tiene que ver con los índices que hayamos definido en la Tabla asociada.

Cuando la columna es de tipo alfabético lo que hace Velneo es indexar en memoria los valores con el modo “campo porción” y por esa razón solo funciona para strings que tengan partes diferentes en los primeros caracteres (ahora no sé exactamente los que toma, 20 o 25). Este proceso se ha acelerado en las últimas verisones porque se ejecuta siempre en tercer plano.

En resumen, si para tu interfaz de usuario es importante la ordenación de las Rejillas, puedes anular la Ordenación de la Rejilla (mediante API) e implementar un sistema propio usando los índices de la Tabla.

Mediante un sistema propio podrás ordenar una columna alfabética ignorando mayúsculas y minúsculas así como las palabras acentuadas, algo que no es capaz de hacer la Ordenación de la Rejilla.

Saludos
Paco Satué

OK, como siempre, muchas gracias Paco, intentaré ver que solución le puedo dar a la rejilla con lo que me indicas, ya que intenté ampliar la longitud del índice, que está en Alfa64 con una longitud de 12, lo cual supuse que este era el problema, ya que con esa longitud me indexaría (12/3)*4 = 16 caracteres, y lo subí al doble para que me indexara 32 caracteres, pero no funcionó. Como comentas debe de ser por la implementación de la rejilla.
Saludos Paco.