Gonzalo Rementeria

12- SortByColumn usando un campo de tipo Record

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