LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: snakeZ on June 09, 2017, 12:26:56 PM

Title: Древоподобный отчет
Post by: snakeZ on June 09, 2017, 12:26:56 PM
Подскажите, есть ли трюк, позволяющий красиво вывести древовидную таблицу?

Под древовидностью подразумевается, что самая левая колонка должна иметь вид примерно как дерево папок в Windows Explorer, а остальные колонки - обычные. Конечно, "раскрытие" ветвей дерева не предполагается, показываться будет, как будто все уже раскрыто.

Пока что я взял таблицу, отключил в левой колонке "trimspaces" и делаю отступы для дочерних элементов. Но хотелось бы добавить картинки "открытых папок" и правильно их выровнять с последующим текстом.

В идеале левая колонка должна иметь вид:
[ отступы в зависимости от степени вложенности ][ открытая папка ][ текст ][ оставшееся пустое место в колонке ]
Элемент [открытая папка] может отсутствовать или как-то "схлопываться" до 0..1 пикселей, если в нем нет дочерних элементов.

Я не ожидаю от LimeReport поддержки древовидной структуры данных (хотя чем черт не шутит, может, оно уже есть?) Дерево я умею конвертировать в таблицу, рассчитывать нужное число отступов и т.п. Но вот как мне сделать такое выравнивание, чтобы
1) группа из трех элементов (отступы, картинка, текст) выравнивалась полевому краю как единое целое,
2) чтобы в ней средний элемент мог отсутствовать в зависимости от data source?
Title: Re: Древоподобный отчет
Post by: Subst on June 09, 2017, 02:37:05 PM
Не буду в испорченный телефон играть. Сам просил Алекса прислать пример реализации дерева, он присла, но я еще не ковырял. Спроси у него.
Основная суть (я думаю, у него не сильно отличается от моих мыслей) - это работа через callBackDatasource и разбиение твоего дерева на несколько частей по уровням Узлов, или обработка дерева в getCallbackData, соответсвенно также с учетом вложенности.
Title: Re: Древоподобный отчет
Post by: Arin Alex on June 12, 2017, 01:52:13 PM
В LimeReport можно организовать деревья, но для того чтобы сделать неограниченную глубину вложенности, нужно делать специальный банд :) Если будет время возможно прикручу эту возможность. Даже при заранее известном количестве уровней довольно муторно делать дерево в LimeReport :)