Developer Kit · Examples
Incorporar Custom Sort en una tabla
Incorporar Custom Sort en una tabla
Incorporar Custom Sort en una tabla
¿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:
- <a href="/documentation/customsort-einbinden">Custom Sort</a>
- <a href="/custom-table">Custom Table</a>
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
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)
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.
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
###