![]() |
|
|
![]()
|
|
| Demo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.10.2006 Репутация: нет Всего: нет |
Здавствуйте, уважаемые программисты! Очень срочно нужна ваша помощь!!!
В DBGrid создаю таблицу из БД при помощи запроса, а затем необходимо данные из DBGrid отправить в Excel. НО!!! Тут возникла проблема... Пишу код: index:=2; DBGrid1.SelectedField.Value; for i:=0 to DBGrid1.FieldCount do begin Sheet.Cells[3,index]:=DBGrid1.SelectedField.DataSet.Fields.Fields[1].AsString; Sheet.Cells[4,index]:=DBGrid1.SelectedField.DataSet.Fields.Fields[3].AsString; Sheet.Cells[5,index]:=DBGrid1.SelectedField.DataSet.Fields.Fields[5].AsString; Sheet.Cells[7,index]:=DBGrid1.SelectedField.DataSet.Fields.Fields[8].AsString; Inc(index); DBGrid1.SelectedField.NewValue; end; Я переворчиваю таблицу - строки становятся столбцами..... Но столбцов всего 11, а строк 200, в Итоге получается таблица 11х11, и то построчно повторяются данные... Скажите, пожалуйста, как лучше это сделать? Была попытка с использованием промежуточного компонента Memo, но пришлось отказаться...Много всталяю формул, объединяю поля, шрифты везде разные... Из DBGrid отправляю в Excel не все поля, а только те, которые нужны... Пожалйста! Очень срочно нужен совет!!! |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Demo,
Цикл выполнится FieldCount раз. Если FieldCount = 11 - получишь 11 строк. Несколько раз нажмешь на кнопку - получишь 11* несколько. Пиши цикл правильно. Добавлено @ 17:49 Ой. Ошибся. В Excel - Row,Col, т.е. получишь 3.4.5.7 строки заполненными. |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
||||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 1 Всего: 108 |
значит нет перехода на новую запись... думаю лучше будет получать данные для экселя оттуда же, откуда формируешь запрос... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| x77 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
пример ниже копирует ВСЕ поля текущего запроса (или таблицы - неважно) в Sheet. если хочешь копировать выборочно, то просто вместо цикла for ACol поставь несколько операторов присваивания, как у тебя.
з.ы. код не копилировал и не проверял. Это сообщение отредактировал(а) x77 - 13.12.2006, 13:54 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
||||
|
|||||
| Sansa |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 18.10.2006 Где: Королев Репутация: 2 Всего: 6 |
В JVCL есть компонент TJvDBGridExcelExport, которому надо указать DBGrid, имя файла, и выполнить метод ExportGrid
Это сообщение отредактировал(а) Sansa - 18.12.2006, 16:45 --------------------
- Здравствуйте, я Ваш патологоанатом |
|||
|
||||
![]()
|
| Правила форума "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. |