---
title: "Incorporar Custom Sort en una tabla"
slug: "customsort-einbinden"
category: "Ejemplos"
hosts: "ninox"
locale: "es"
reactExampleKind: "recipe"
reactExample: "recipe-custom-sort.tsx"
---

# Incorporar Custom Sort en una tabla

# Incorporar Custom Sort en una tabla

<iframe src="https://www.youtube.com/embed/RLm7EmMAgEM?iv_load_policy=3&rel=0&modestbranding=1&playsinline=1&autoplay=1&mute=1" data-thumbnail="Medium Quality" frameborder="0" allow="presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"></iframe>¿Quieres ordenar tus registros directamente dentro de la Custom Table con Custom Sort? En este artículo encontrarás una guía detallada de qué ajustes de Ninox necesitas y el código de aplicación correspondiente. En el siguiente ejemplo se muestra una lista de tareas (child / subtabla) dentro de un pedido (parent / tabla superior) como Custom Table. Con Custom Sort se quiere determinar manualmente el orden de las tareas.

Widgets que necesitas para esto:

- [Custom Sort](/documentation/customsort-einbinden)
- [Custom Table](/custom-table)

Ajustes de Ninox que necesitas:

- un campo de función sortId en la tarea (child)
- un campo numérico Sortierung en la tabla donde se deben ordenar los registros
- un campo de texto sortItems en el pedido (parent)

## Código de aplicación


```javascript
let current := this;
arcCustomSort({
        uniqueId: Nr,
        editable: false,
        recordId: current.Nr,
        fieldId: "",
        direction: "horizontal",
        title: Sortierung,
        value: Sortierung,
        valuePrefix: number(Nr) + ",",
        size: "",
        color: "",
        showIconsAlways: true,
        iconStart: "",
        iconEnd: ""
    })
```

#### Campo de función sortId en la Tarea (Child)


```javascript
let entities := Auftrag.Aufgaben;
if Sortierung != null then
    let sortValue := format(Sortierung, "000") + "-" +
        (number('Zuletzt geändert') - number(datetime(3000, 1, 1))) +
        "-" +
        number(Nr);
    number(cnt(entities[Sortierung != null and
            format(Sortierung, "000") + "-" +
                    (number('Zuletzt geändert') - number(datetime(3000, 1, 1))) +
                    "-" +
                    number(Nr) <= sortValue]))
else
    let sortValue := max(entities.Sortierung) + 1 + " + Nr;
    number(cnt(entities[max(entities.Sortierung) + 1 + " + Nr <= sortValue]))
end
```

#### Campo de texto sortItems en el Pedido (Parent)

El siguiente código lo pones en tu campo de texto sortItems, en el trigger tras cambio.


```javascript
let current := this;
if sortItems != null then
    let splitItem := split(sortItems, ",");
    let itemNr := item(splitItem, 0);
    let itemPos := item(splitItem, 1);
    let item := first(Aufgaben[number(Nr) = number(itemNr)]);
    item.(Sortierung := number(itemPos) +
        if itemPos > item.Sortierung then
            1
        else
            0
        end);
    for item in Aufgaben order by Sortierung do
        item.(Sortierung := item.sortId)
    end;
    sortItems := null
end
```

###
