![]() |
|
|
![]()
|
|
| Nikius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: нет |
Есть иерархическая БД (MySQL v.4.0.15). Одна таблица - собсно дерево, а вторая - данные. Дерево содержит три поля: номер, название, номер_родителя.
Хочу чтобы в отчете в качестве заголовка была вся ветвь дерева. Например, "Завод Искра. Цех №5. Группа 1." и ниже список работников. Понятно, что напечатать просто "Группа 1" будет недостаточно, вот и приходится печатать всю ветвь. Задача усложняется тем, что заранее не извесна длина ветви (уровень вложенности). Можно, конечно, в цикле делать запросы, используя MyQuery, и постепенно выстраивать ветвь. Но как-то мне этот способ не нравится. Особенно если учесть то, что юзер будет распечатывать и результаты поиска и значит число заголовков будет намного больше 1, а уровень вложенности может достигать 6. Может кто-то знает способ по-лучше? |
|||
|
||||
| Mikh@il |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Detail
и соответственно SubDetail |
|||
|
||||
| Nikius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: нет |
Это где такие свойства? И как мне это поможет с шестью уровнями вложенности?
|
|||
|
||||
| Mikh@il |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Я отчеты делаю в FastReport, в чем собрался делать ты - я не знаю.
Detail - Subdetail - это не свойства, а обьекты Самый простой колхозный способ, это сделать: 1. Ложишь шесть Table на форму, затем через свойство MasterField создаешь свою иерархию 2. Detail связываешь с Table1, Subdetail - с table2 и т.д. 3. И ВОТ ТЕБЕ СЧАСТЬЕ Если надо выборочные данные - используй FILTER |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Древовидные структуры читаем здесь, по аналогии и для mysql сделать можно.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Nikius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: нет |
Прочитал. Та статья в основном про то, как построить дерево. Мне это не нужно. Дерево у меня строится автоматически в компоненте dxDBTreeView. Вопрос был в том, есть ли способ не прибегая к излишнему программированию построить ветвь дерева в отчете или нужно делать серию запросов с помощью компонента MyQuery?
|
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Ну видимо рекурсия, пока не вернется null.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Nikius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: нет |
Рекурсия или обычный цикл - это уже не так важно. Мне не нравилось, что прийдется много раз включать-выключать MyQuery. Если другого способа нет, значит оставлю этот.
|
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Если вы не знаете количество вложений, то обычный цикл никак не катит, а остается именно рекурсия -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Uragan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 29.10.2005 Репутация: нет Всего: 0 |
Ну а такой отчет никак не реализовать в Fastreport? А если делать в тривиев, как распечатать?
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |