Как разбить отчет на группы
Всем доброго времени суток!
Отчет делается в среде программирования Delphi 7, в качестве БД используется MS Access, в Delphi используется связка компонентов DataSource + ADOQuery + DBGridEh.
В общем суть вопроса такова. Есть таблица "Номенклатура", которая в свою очередь делится на несколько групп (к примеру "Товары" и "Услуги"). Необходимо напечатать прайс-лист, в котором, к примеру после заголовков столбцов, выводилась бы строка с надписью "Товары", затем шли данные из таблички "Номенклатура", которые относятся к группе "Товары", затем, строка "Услуги" и далее данные из той же таблички, которые относятся к группе "Услуги"
Для наглядности, я набросал в экселе, как должна выглядеть табличка в отчете.
Заранее большое спасибо всем тем кто откликнется и уж тем более поможет!!!
Отчет делается в среде программирования Delphi 7, в качестве БД используется MS Access, в Delphi используется связка компонентов DataSource + ADOQuery + DBGridEh.
В общем суть вопроса такова. Есть таблица "Номенклатура", которая в свою очередь делится на несколько групп (к примеру "Товары" и "Услуги"). Необходимо напечатать прайс-лист, в котором, к примеру после заголовков столбцов, выводилась бы строка с надписью "Товары", затем шли данные из таблички "Номенклатура", которые относятся к группе "Товары", затем, строка "Услуги" и далее данные из той же таблички, которые относятся к группе "Услуги"
Для наглядности, я набросал в экселе, как должна выглядеть табличка в отчете.
Заранее большое спасибо всем тем кто откликнется и уж тем более поможет!!!
Комментарии
Заранее спасибо
Создаёшь один датасет, пишешь запрос, например (select group, name, cnt from my_table order by group, name). Сортируешь в запросе по группе.
Потом в дизайнере добавляешь элементы Header, GroupHeader, MasterData (если нужно GroupFooter и Footer). В GroupHeader указываешь, что группировка идет по полю "group" и всё.
А если нужно формировать группы на ходу? Например, есть количество заказов от клиентов. Нужно было сгруппировать их по заказам(Группы до 20-ти заказов, до 100, больше 100). Я сделал три бэнда, в каждом прописал в фильтре условия. Вроде работает, но мне кажется, что это не изящно
0 - до 20;
1 - 21-100;
2 - более 100
и в условии группировки поставить это поле. Датасет должен быть отсортирован по этому полю