Древовидная иерархия

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
nikorn
Сообщения: 342
Зарегистрирован: 02 апр 2016, 22:26
Имя: Корняков Никита
Откуда: РФ, Ярославль
Организация: Тяжмаштрейд
Контактная информация:

Древовидная иерархия

Сообщение nikorn »

Прочитал весь форум, потратил несколько дней на эксперименты, но пока так и не нашел приемлемого решения.

Есть ли какой-нибудь разумный способ организовать простую иерархию (например, для задач). Чтобы, с одной стороны можно было бы увидеть список всех задач с подзадачами на одном экране. Но при этом, чтобы было понятно, к какой задаче относится подзадача. Достаточно было бы глубины 3-4 уровня (Проект/Подпроект/Задача/Подзадача)

Самое интересное, что в движке эта возможность заложена, так как для каждого элемента можно указать родителя. Но в интерфейсе реализовать нужный вид не получается.

Пробовал следующие варианты

1) Создать сущность "Подзадача". Это плохой вариант, так как подзадачи можно будет увидеть либо только зайдя в родительскую задачу, либо сплошным списком без привязки к родительским задачам

2) Создать иерархическую структуру категорий и присваивать задаче нужную категорию. Тут есть минус - если нет задачи с родительской категорией, то задачи из разных подкатегорий сваливаются в общую кучу.

Возможно, проблема бы решилась, если было бы можно сортировать в списке подсущности по полю Связь (отображающему родительские сущности). Но сейчас этой возможности нет

На картинке, как это выглядит в Wrike, примерно такое хотелось бы получить
Вложения
Screen.png
Аватара пользователя
support
Техническая поддержка
Сообщения: 9024
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Древовидная иерархия

Сообщение support »

Древовидного отображения пока нету.

Многие просят, по этому подумаю на будущее.
Возможно, проблема бы решилась, если было бы можно сортировать в списке подсущности по полю Связь (отображающему родительские сущности). Но сейчас этой возможности нет
Сортировка/поиски/фильтры по полю Связь уже реализовано и будет в версии 1.7
Аватара пользователя
nikorn
Сообщения: 342
Зарегистрирован: 02 апр 2016, 22:26
Имя: Корняков Никита
Откуда: РФ, Ярославль
Организация: Тяжмаштрейд
Контактная информация:

Re: Древовидная иерархия

Сообщение nikorn »

А у Вас уже все сделано. И даже иерархическое отображение есть - отображение сущностей в главной навигационной панели.

Осталось сделать отчет, в котором, нужно реализовать тот же алгоритм, но не для сущностей, а для записей в базе данных.
Аватара пользователя
nikorn
Сообщения: 342
Зарегистрирован: 02 апр 2016, 22:26
Имя: Корняков Никита
Откуда: РФ, Ярославль
Организация: Тяжмаштрейд
Контактная информация:

Re: Древовидная иерархия

Сообщение nikorn »

Удалось немного разобраться с древовидным (иерархическим) отображении записей

1) В настоящее время иерархическое отображение реализовано для сущностей и выпадающих списков. В первом случае родительские и дочерние сущности имеют разную структуру записей, поэтому принципиально не могут быть показаны общим списком (что вызывает огорчение многих пользователей, но здесь вряд ли что-то можно изменить). Во втором случае родительские и дочерние записи имеют одинаковую структуру, поэтому проблем с отображением общим списком не возникает.

2) Место, где иерархическое отображение еще не реализовано, является таблица записей сущности (например, список задач). Все записи здесь имеют одинаковую структуру, поэтому нет никаких принципиальных ограничений на иерархическое отображение. Но здесь есть один важный момент - обычное (плоское) и иерархическое отображения принципиально не совместимы. В иерархическом отображении нет понятий "сортировка" и "фильтрация", которые очень важны в плоском отображении. Поэтому многие разработчики (например, с картинки выше) предлагают пользователю возможность переключаться между плоским и иерархическим отображением.

3) Технически иерархическое отображение реализуется в виде отчета. Для иерархического отображения записей можно использовать ту же форму, что и для выпадающих списков (см. изображение ниже). Для построения иерархического отчета на php используется простая рекурсивная функция (буквально 5 строк кода, см., например, http://biznesguide.ru/coding/179.html). В базе данных Руководителя для каждой записи есть поле parent_id, которое в настоящее время не используется, но, похоже, предназначено именно для этих целей.

Сейчас экспериментирую с иерархическим отображением записей Руководителя, пока все получается, но родителя приходится вводить в поле parent_id руками прямо в БД.
Вложения
Screen.png
Ответить