How I can make a tree?

отредактировано 22:19 Раздел: FastReport 3.0
Как я могу с помощью FastReport вывести дерево?
Есть ли возможности вывода деревьв стиля "дерево фаловой системы"?
Есть ли возможность вывода дерева сверху вниз от корня.

Комментарии

  • отредактировано 22:19
    beemaster написал:
    Как я могу с помощью FastReport вывести дерево?
    Есть ли возможности вывода деревьв стиля "дерево фаловой системы"?
    Есть ли возможность вывода дерева сверху вниз от корня.
    теоретически развернутое дерево можно вывести и представить в FR...
    попробовать можно так:
    1) все записи упорядочить в порядке их расположения на странице сверху вниз.
    2) каждую запись снабдить атрибутом - Уровень вложенности.
    3)на MasterData-band'е регулировать в скрипте смещение от левого края (Memo с данными и др. объекты) в зависимости от уровня вложенности на фиксированную величину.
    4) снабдить выводимые записи картинками имитирующими узлы дерева и связи между ними.

    Например:
    A-+
    |
    B1-+
    | |
    | C1
    B2-+
    |
    C2

    записи расположем в порядке:

    Данные Уровень вложенности
    A 0
    B1 1
    C1 2
    B2 1
    C2 2
    ... ...

    Думаю что должно получиться ;)


  • отредактировано August 2005
    <span style='font-family:Courier'>
    Прикольно. Тоже думаю, что получится сделать как в файловой системе.
    Тогда продолжение вопроса ;) как сделать вот такую запчасть:

    <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>
  • отредактировано 22:19
    Похоже, что я сам нашёл решение, нужно
    использовать TfrxRichView и просто подгружать
    туда из предварительно подготовленного файла
    таблицы любой сложности.

    Очень жаль, что нельзя редактировать таблицы во встроенном
    RichView редакторе. Хотя отображает он их вполне сносно. ;)
  • отредактировано 22:19
    beemaster написал:
    RichView редакторе. Хотя отображает он их вполне сносно
    Жаль-то оно жаль ;) ...но качественная реализация редактирования таблиц, сам понимаешь, дело далеко не тривиальное. Итак виват разработчикам за отличную поддержку формата RTF, мощьность продукта возросла в разы.
    А со столь экзотическими задачами в принципе можно справится и средствами самого FR3. Тут уж дело смекалки, благо простора для нее предостаточно.
    Мне приходилось реализовывать псевдо-Crossview. Отчет практически целиком был основан на коде. Не скажу, что далось легко, но результатом все остались довольны.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.