Использование GroupH и MasterD

отредактировано June 2005 Раздел: FastReport 3.0
Доброе время суток! Помогите решить проблему:
Есть быза данных: Улица, дом, квартира, Имя жильца.
Делаю выборку (SQL запросом) нужных мне домов на нужной улице и сортерую по домам и квартирам. Нужно вывести отчет след вида (номер дома, список квартир в этом доме, затем список жильцов в этих квартирах в этом доме; переходим к следующиму дому и т.д.) :
______________________________________________________________
Дом 12 {номер дома}
1 2 3 4 5 6 7 8 9 и т.д. {номера квартир в этом доме}

1 Иванов {квартира и жилец }
2 Сидоров
3 Петров
.
.
. и т.д.
______________________________________________________________
Дом 18
1 2 3 4 5 6 7 и т.д.

1 Иванова
2 Сидорова
3 Петрова

и т.д.



ВОПРОС!!!!
Как этого добиться? Использование GroupHider и MasterData приводит к тому, что сначало выводятся и перечисляются все дома и квартиры, а Жильцы полным списком после них. И не понятно какие жильцы относятся к какому дому.
Спасибо заранее всем, кто поломает голову над моей проблемой...

(прошу сильно не пинать, я навичек в FastReporter'е ;) )

Комментарии

  • DirexDirex Москва
    отредактировано 05:45
    Либо напиши грамотно один запрос, где будут сразу все данные и пользуйся GroupHeader, либо сделай запросы Master-Detail-SubDetail и т.д (Улица - Дом - Квартира - Жильцы)
  • отредактировано 05:45
    С Запросом все нормально, результирующая таблица содержит все данные. Я не могу их вывести в отчете в нужной последовательности. Дом, квартиры, жильци, дом, квартиры, жильци и т.д.
  • DirexDirex Москва
    отредактировано 05:45
    написал:
    Делаю выборку (SQL запросом) нужных мне домов на нужной улице и сортерую по домам и квартирам.
    А жильцы где?
    Если запрос будет с жильцами, то достаточно сделать сортировку дом - квартира - жильцы, кинуть GroupHeader с условием по дому и всё должно заработать.
  • отредактировано June 2005
    Дело в том, что если я отсортеровал по квартирам, то жильци отсортировались тоже, кто в какой квартире живет. Все это одна большая таблица.
    Если я кладу на страницу вот такую структуру:

    GroupHiader (Поле."Номер_Дома"){изменение по дому}
    MasterData (Поле."Ноиер_Квартиры")
    MasterData (Полею"Имя_Жильца", поле."телефон" и т.д.)

    то получаю вот такое:

    Дом1
    1 2 3 4 5 и т.д.

    дом2
    1 2 3 4 5 и т.д.

    1 Иванов {жильци из дома 1}
    2 Сидоров
    3 Петров
    .
    и т.д.
    .
    1 Иванов1 {жильци из дома2}
    2 Петров 1
    3 Сидоров 1

    А МНЕ НУЖНО ЧТОБ БЫЛО КАК Я НАРИСОВАЛ В 1-м ПОСТЕ!!!!!!!!! ЖИЛЬЦИ ПОД СВОИМ ДОМОМ, А НЕ ПОСЛЕ ВСЕХ ПЕРЕЧИСЛЕННЫХ ДОМОВ ОДНИМ СПЛОШНИМ ПОТОКОМ!!!!!
    ЧТО Я ДЕЛАЮ НЕ ТАК????
  • DirexDirex Москва
    отредактировано 05:45
    Велик и могуч русский язык!..
    У меня создаётся впечатление, что вы кидаете два бэнда MasterData и обоим назначаете один источник данных... RTFM
  • отредактировано June 2005
    Ну да, один. Я же сделал выборку SQL запросом, и теперь у меня результат выборки в компоненте IBQuery. К ней я привязал TfrxDBDataset компоненту. А из FR уже к этой TfrxDBDataset.
    Может что не так?
  • DirexDirex Москва
    отредактировано 05:45
    Так всё-таки два бэнда?
    Каждый бэнд MasterData работает независимо. И каждый выводит все данные.
    Нужно делать всё на одном бэнде или делать master-detail. А вообще смотрите примеры, задача тривиальная
  • отредактировано 05:45
    Огромное спасибо. НО...
    Я просил решение, а вы спрашиваете как я это делал? Ясно, что если у меня не работает, то я делал не правельно. И не важно сколько Я положил Мастеров и детайлов - они работают не правельно.
    Скажите как нужно, а я скажу что у меня было не так.
    Связка Гроуп-Мастер-Детаил тоже не работает как нужно. Бред вообще получается...
    Запутался совсем уже...
  • DirexDirex Москва
    отредактировано 05:45
    Короче, надо сделать так. В запросе три поля - дом, квартира, жилец (странные однако квартиры ;) ). Сортировка в том же порядке - дом, квартира.

    На лист кинуть два бэнда: GroupHeader и MasterData (остальные бэнды типа заголовков разберёшься). У бэнда GroupHeader в условии группировки (по двойному клику на нём) ставишь поле БД - номер дома. На сам бэнд кидаешь Memo и задаёшь ему в качестве текста значение поля "Номер дома".

    На единственный бэнд MasterData кидаешь два Memo и задаёшь им в качестве текста значения квартиры и жильца соответсвенно. Всё.
  • отредактировано 05:45
    ;)
    Нет не все.
    Мне нужно, чтобы был выведен список квартир, а ниже, спиаок жельцов, а не в перемешку. Сначало все квартиры, затем ниже все жильцы. В перемешку я и сам додумался...
    См. первый пост, я там расписал, какой вид хочу получить.
  • DirexDirex Москва
    отредактировано 05:45
    Дык тебе надо вертикальный бэнд туда бросать. Экспериментируй
  • отредактировано 05:45
    написал:
    Велик и могуч русский язык!..
    жельцов - жильцов
    Сначало - Сначала
    правельно - правильно
    отсортеровал - отсортировал

    и все само собой заработает
    ;)
  • отредактировано 05:45
    Люди вы меня поражаете... ;)
    Как умную вещ сказать - нет никого, а как языками потрепать - толпа...

    Оценка форуму 4 (по 12-ти бальной), и то за стремление Direx'a разобраться. Хоть он так и не понял СУТИ проблемы, к сожалению.
    Топик можно закрывать. ;)
  • DirexDirex Москва
    отредактировано 05:45
    Как раз таки СУТИ проблемы нет. Проблема в расшифровке RTFM

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

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