Работа с иерархическими данными в lsfusion

В своей статье на Хабре (https://habr.com/ru/company/lsfusion/blog/468047/) Вы показали хороший пример работы с группами и подчиненными данными. Вопрос - а можно ли такую технику применить к одиночному классу без введения дополнительного класса для группировок?

CLASS Animal 'Животное';
parent = DATA Animal (Animal);
name 'Отряд/Животное' = DATA STRING[100] (Animal);
areal = DATA STRING[100] (Animal);

И как теперь это все визуализировать в виде дерева в форме?


Ответы (1 шт):

Автор решения: maxlab

Итак, техническое решение иерархического представления данных без вспомогательного класса для группировки выглядит следующим образом:

CLASS Animal;
parent = DATA Animal(Animal);
name = DATA STRING[50] (Animal);
areal = DATA STRING[50] (Animal);
nameParent (Animal a) = name(parent(a));

// Для редактирования объекта   

FORM animal 
   OBJECTS a = Animal PANEL 
   PROPERTIES(a) name, nameParent, areal

   EDIT Animal OBJECT a
;

// Для представления списка объектов с деревом

FORM animals 
   TREE animal a = Animal PARENT parent(a)
   PROPERTIES(a) READONLY name,  areal
   PROPERTIES(a) NEWSESSION NEW, EDIT, DELETE

   LIST Animal OBJECT a
;

NAVIGATOR {
   NEW animals;
}

введите сюда описание изображения

Но, все равно ждем комментариев по коду от гуру.

→ Ссылка