Древовидная структура

отредактировано September 2004 Раздел: FastReport 2.xx VCL
Уважаемые знатоки!
Используя FastReport 2.51 необходимо вывести меню некоего ресторана.
Беда в том, что меню древовидное, скажем, <span style='color:blue'>Горячие блюда</span>, внутри него <span style='color:blue'>блюда из мяса</span>, <span style='color:blue'>блюда из рыбы</span>, в которых тоже могут быть вложения (число вложенности не известно).
Имеется некая таблица с полями
KOD KODPAR NAME CENA BLUDO
где KOD - первичный ключ
KODPAR - код записи родителя (для вложенности)
NAME, CENA и др. поля - характеристики блюд и разделов
BLUDO типа BOOLEAN (то есть это лист дерева (в нашем случае блюдо) или раздел).
Что бы не быть голословным, привожу картинку.

tree.gif

Так как можно этот самы отчет в бумажной форме вывести?

Комментарии

  • отредактировано 14:03
    пиши рекурсивную процедурку(имею ввиду для SQL -сервера )
    и пусть она тебе дополнительно возвращает поле Deep, кот. обозначает глубину вложенности объекта
    к примеру 0 - корневые объекты
    их дени - 1, внуки - 2 и т.д.
    В обработчике мемо формируешь отступ от края листа в соответствие с глубиной вложенности
    пишешь так примерно:
    tmp:=' ';
    for i:=1 to [Query."Deep"] do tmp:=tmp+' ';
    memo:=tmp+memo;
  • отредактировано 14:03
    пиши рекурсивную процедурку(имею ввиду для SQL -сервера )
    и пусть она тебе дополнительно возвращает поле Deep, кот. обозначает глубину вложенности объекта
    к примеру 0 - корневые объекты
    их дени - 1, внуки - 2 и т.д.
    В обработчике мемо формируешь отступ от края листа в соответствие с глубиной вложенности
    пишешь так примерно:
    tmp:=' ';
    for i:=1 to [Query."Deep"] do tmp:=tmp+' ';
    memo:=tmp+memo;
  • отредактировано September 2004
    gritz написал:
    пиши рекурсивную процедурку(имею ввиду для SQL -сервера )
    Интересная мысль насчет дополнительной процедурки, я тоже об этом стал подумывать. Просто я хотел поинтересоваться, то есть в FastReport такой возможности еще нет? Ведь уже во многих библиотеках ввели такую компоненту как дерево что-то типа DBTreeView. Там просто задаешь код записи, код родителя, поле для названия ветвей и начальный (корневой) код.
    Здесь стало быть таких отчетов еще нет... ;)

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

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