Cómo ordenar en una canvas app un listado por una columna de tipo record
Primero de todo vamos a aclarar que es una columna de tipo record. Y no es más que una columna que contiene más de un valor. El ejemplo típico suelen ser los campos de tipo lookUp. Vemos un par de ejemplos con los que va a quedar claro.
Vendedor | producto | cantidad | Fecha venta |
{ nombre:Juan, PrimerApellido:Goméz, SegundoApellido:Díaz } | { ID:1, Value:Martillo } | 2 | 13/10/2023 |
En esta tabla vemos 4 campos.
Cantidad –> numérico
Vendedor –> record (compuesto por nombre –>string / PrimerApellido –>string SegundoApellido –>string)
Producto –> record (compuesto por ID –> numérico y Value –> string)
Como es lógico no puedo ordenar por un campo compuesto por varios. Pero lo que si puedo, es ordenar por uno de los campos que lo componen. Por ejemplo imaginemos que tenemos 5 registros como en esta tabla y queremos ordenar por el Value de producto
Vendedor | Producto | Cantidad | Fecha venta |
{ nombre:Juan, PrimerApellido:Goméz, SegundoApellido:Díaz } | { ID:1, Value:Martillo } | 2 | 13/10/2023 |
{ ID:2, Value:caja de clavos } | 4 | 13/10/2023 | |
{ ID:15, Value:kit de brochas } | 1 | 13/10/2023 | |
{ ID:18, Value:bote de pintura blanca 5L } | 2 | 13/10/2023 | |
{ ID:51, Value:saco yeso 5kg } | 4 | 13/10/2023 |
Aqui lo lógico sería hacer algo como esto
SortByColumns(
Venta;
"Producto.Value";
SortOrder.Ascending;
);
Pero no sirve. Cual es la solución. Añadir una columna basada en si mismo, pero que contenga solo el campo por el que queremos filtrar. En este caso la he llamado ValueProducto
SortByColumns(
AddColumns(
Producto;
"ValueProducto";
Producto.Value
);
"ValueProducto";
SortOrder.Ascending
);
Lo cual haría que nuestra tabla se viese así.
Vendedor | Producto | Cantidad | Fecha venta |
| { ID:18, Value:bote de pintura blanca 5L } | 2 | 13/10/2023 |
| { ID:2, Value:caja de clavos } | 4 | 13/10/2023 |
| { ID:15, Value:kit de brochas } | 1 | 13/10/2023 |
{ nombre:Juan, PrimerApellido:Goméz, SegundoApellido:Díaz } | { ID:1, Value:Martillo } | 2 | 13/10/2023 |
| { ID:51, Value:saco yeso 5kg } | 4 | 13/10/2023 |
Espero que os haya gustado. Un saludo