Построение дерева номенклатуры 7.7

Новая тема
Собственно сабж...
Не могу придумать алгоритм, в целом понятно, но как лезу в дебри путаюсь, да и отвлекают постоянно.
Может кто кинет в меня алгоритмом по сабжу или готовым отчетом?
Во всех задачках про деревья я пользуюсь рекурсивными алгоритмами.
Быстрый пример: http://depositfiles.com/files/4h4abfsz6
P.S.
>
; Отвлекают постоянно
Меня тоже все время интересует вопрос, почему когда я сижу и придумываю как разрулить задачку, те, кто ее задал, считают возможным сесть рядом и пообщаться друг с другом по поводу того сколько стоит съездить в отпуск в какую нибудь Турцию? Им не приходит в голову, что мне это мешает? :)
> Во всех задачках про деревья я пользуюсь рекурсивными алгоритмами.
Прошлый свой заход/попытку реализовать таки дерево я то же с применением рекурсии делал, но опять же "дернули" в бухгалтерию отчет модифицировать @#%$%^ и процесс стал...
> Им не приходит в голову, что мне это мешает?
Я даже прямым текстом говорил, но не помогает - "А ты не обращай внимания..." ответ.
Посмотрел пример. Да дерево, но хочется реализовать как в справочнике, в форме списка дерево групп.
То есть с
|-
|_
и т.п.
А то замучился PrentScreen'ом копии экрана снимать, а потом в Corel'е собирать...
Еще разок пример посмотрите внимательнее, я там для этого и сделал вывод "распорки" (вертикальная секция с названием "Узкая") и каждый уровень справочника выводится с требуемым отступом, на самом деле там не "в кучу". Осталось только картинки веток нарисовать навставлять их в шаблон печатной формы.
Это понятно, но я когда реализовал, наткнулся на то, что нужно отслеживать последний элемент в группе и соответственно выводить ему не
|-
а
|_
а так же местами вместо
|  |  |
|  |  |
|  |  |
выводить
|     |
|     |
|     |
то есть отсеивать не существующие ветви...
Вот тут и запнулся...
Ага, понял, сейчас посмотрю
Все ведет к тому, что придется предварительно собрать элементы в какую то структуру, а уж потом выводить их, прямым проходом по справочнику как то сложновато определять является ли элемент последним в выборке подмножества и являются ли его родители последними в своих выборках, а это нужно для того чтобы корректно решать как полоски рисовать
Я так думаю загнать иерархическую структуру справочника сначала в ТЗ, обработать ее подобно:
0 - нет ничего
1 - |
2 - |-
3 - |_
и потом уже формировать печатную форму на ее основе
Надо как нибудь по пробовать
Можно глянуть в ТиС обработку ДеревоДокументов...
Можно в vcl Delphi (генофонд :)) по копать...
Ага, я и делаю сейчас через ТЗ, только варианты пронумеровал не так, сделаю как у вас, чтобы меньше расхождений было в реализации задачи, проще понять будет
Вот что вышло:
http://depositfiles.com/files/vvax3si0q
кто
сделает проще, тому медаль :)
+100500!!!
Про использование маски я и не думал...
Оказалось все проще чем я представлял...
Спасибо!
Читают тему
(гостей: 1)

Быстрый переход