How I can make a tree?
Как я могу с помощью FastReport вывести дерево?
Есть ли возможности вывода деревьв стиля "дерево фаловой системы"?
Есть ли возможность вывода дерева сверху вниз от корня.
Есть ли возможности вывода деревьв стиля "дерево фаловой системы"?
Есть ли возможность вывода дерева сверху вниз от корня.
Комментарии
попробовать можно так:
1) все записи упорядочить в порядке их расположения на странице сверху вниз.
2) каждую запись снабдить атрибутом - Уровень вложенности.
3)на MasterData-band'е регулировать в скрипте смещение от левого края (Memo с данными и др. объекты) в зависимости от уровня вложенности на фиксированную величину.
4) снабдить выводимые записи картинками имитирующими узлы дерева и связи между ними.
Например:
A-+
|
B1-+
| |
| C1
B2-+
|
C2
записи расположем в порядке:
Данные Уровень вложенности
A 0
B1 1
C1 2
B2 1
C2 2
... ...
Думаю что должно получиться
Прикольно. Тоже думаю, что получится сделать как в файловой системе.
Тогда продолжение вопроса как сделать вот такую запчасть:
<span style='color:green'>
+
+
+
EXPRINFO1....|............Group1..........|..........Group1...........|
+
+
+
+
+
EXPRINFO2....|.SubGroup1...|...SubGroup2..|..SubGroup3..|...SubGroup4.|
+
+
+
+
+
+
+
+
+
EXPRINFO3....|..A1..|..A2..|...B1..|..B2..|..C1..|..C2..|..D1..|..D2..|
+
+
+
+
+
+
+
+
+</span>
то есть нужна таблица с возможностью объединения результата по группам.
при это данные в колонках нужно центровать и ширина колонок должна быть красивой.
есть у меня идея использовать CrossView
<span style='color:green'>
+
+--+
+--+
+--+
+--+
EXPRINFO1....|..Group1.|..|.........|..|..Group2.|..|.........|..|
+
+--+
+--+
+--+
+--+
EXPRINFO2....|SubGroup1|..|SubGroup2|..|SubGroup3|..|SubGroup4|..|
+
+--+
+--+
+--+
+--+
EXPRINFO3....|...A1....|A2|....B1...|B2|...C1....|C2|....D1...|D2|
+
+--+
+--+
+--+
+--+</span>
Но как видно из примера, это не совсем то
о чём мечтали большевики.
Eсть вторая идея - накидать на MasterBand кучу Memo.
внести в каждую что-то вроде
<span style='color:green'>[StringDS.val1]
[StringDS.val2]
[StringDS.val3]
[StringDS.val3]
...
[StringDS.val100]
[StringDS.val101]</span>...
и при получении значений авторасчехляться с позицией Memo
и выводимыми данными, но у меня есть сильное подозрение, что
это не лучшее решение .
Надоумьте меня пожалуйста
как это можно грамотно побороть .</span>
использовать TfrxRichView и просто подгружать
туда из предварительно подготовленного файла
таблицы любой сложности.
Очень жаль, что нельзя редактировать таблицы во встроенном
RichView редакторе. Хотя отображает он их вполне сносно.
А со столь экзотическими задачами в принципе можно справится и средствами самого FR3. Тут уж дело смекалки, благо простора для нее предостаточно.
Мне приходилось реализовывать псевдо-Crossview. Отчет практически целиком был основан на коде. Не скажу, что далось легко, но результатом все остались довольны.