|
Вопрос # 1 827/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Очень нуждаюсь в помощи!!!
Имеется БД, созданная в Access. Эта БД соединена с Delphi 7. В DBGrid отображается одно, а необходимо немного по-другому. Как есть и как надо прилагается в архиве.
Буду очень признательна, если поможете!!!
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задала: Yanhik777 (статус: Посетитель)
Вопрос отправлен: 19 августа 2008, 23:02
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Yanhik777!
Я так понимаю, что Вы не знаете, как называется та таблица, которую вы хотите получить. Именно по этой причине вы не можете воспользоваться гуглом ( или Вашим любимым поисковиком) и найти готовое решение. Эта таблица имеет много названий. Вот они "сводная таблица", "перекрёстная таблица", "шахматка", "Pivot table".
В многие компании давно написали готовые решения данной задачи и как не дивно, есть готовые компоненты.
Вот решение от известного производителя компонент.
Вот решение от менее известного.
Эти компоненты могут значительно больше, чем Вам нужно, но зачем изобретать велосипед, если проще погнуть готовый до нужной кондиции?
Если всё таки надо свой велосипед, то его можно сделать. в данном случае наиболее проще на базе StringGrid. Сам DBGrid таких "чудес" не умеет. Если интересно все таки велосипедное решение - пишите в минифорум, попробую рассказать.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 19 августа 2008, 23:44
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Шичко Игорь
Здравствуйте, Yanhik777!
В таких случаях я обычно пользуюсь следующим алгоритмом:
- анализируя исходный набор данных создаются два динамических массива (фамилий и дат), таким образом чтобы не было повторов фамилий и дат
- сортируем оба массива по фамилии и по дате соответственно
- организуются два цикла встроенных друг в друга по фамилии и по дате
- внутри цикла по дате (внутреннего цикла) SQL - запросом выбираем из набора данных оценку и загоняем в соответствующую ячейку StringGrid
- После завершения циклов получившуюся таблицу можно сбросить во внешний файл Excel например
Если усть какие уточняющие вопросы - пишите.
 |
Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Время отправки: 20 августа 2008, 08:53
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 24 августа 2008, 02:20; участников в обсуждении: 2.
|
Yanhik777 (статус: Посетитель), 21 августа 2008, 23:05 [#1]:
Вадим К, Вы просто Гений!!!!!
спасибо за совет.
Зацепившись за слова "перекрестная таблица", у меня получилось вывести в dbgrid так, как это было необхидимо))
теперь я застряла на другом, как все это корректно вывести в word'е либо в excel'е, либо еще куда-то (это уже не принципиально).
жду советов)))
|
|
Вадим К (статус: Академик), 22 августа 2008, 00:03 [#2]:
многие с этих компонентов имеют функцию печати. Можно поставить какой-нибудь бесплатный pdf принтер и всех делов.
Между тем, есть хорошее решение - FastReport. Он умеет генерить шахматку. Правда он платный, но есть бесплатный аналог FreeReport (он того же производителя).
Кроме генерирования собственно отчета, он умеет экспортировать их в Word/Excel. Сайт компонентов - Freereport.ru
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Yanhik777 (статус: Посетитель), 24 августа 2008, 01:18 [#3]:
Ну, вот, скачала я FreeReport и ничего у меня с ним не получается((((
Кинула на форму frDBDataSet (связала с DataSource) и frReport.
В дизайнере вставляю Master Data, выбираю для него источник данных (frDBDataSet), а вот когда пытаюсь вставить поля из БД, то там пусто((
Подскажите, что не так?????????
а-то я совсем в этом профан(
|
|
Вадим К (статус: Академик), 24 августа 2008, 02:20 [#4]:
Рекомендую сделать так. пойти к ним на сайт на эту страничку (http://fast-report.com/ru/products/fr4-flash-demo.html и скачать оттудова все обучающие видео ролики. После просмотра их у Вас должно пропасть как минимум половина вопросов.
Кстати, там один с примеров как раз по Вашей теме (третий сверху), так что всё хорошо
Галочка "подтверждения прочтения" - вселенское зло.
|
31 января 2011, 19:31: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|