Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10

Вывод данных запроса в отчёт word

03.06.2015, 06:52. Показов 3529. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане. Нужна помощь с созданием запроса и выводом его результатов в отчёт word. Прошу сразу помидорами не кидаться. Поиском пользовался, но либо я настолько уже отупел, либо действительно ничего по моей проблеме нету.
Код кнопки для запроса:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM "+ComboBox1->Items->Text);
ADOQuery1->SQL->Add("WHERE "+ComboBox2->Items->Text+" = "+Edit2->Text);
ADOQuery1->Open();
}
Результат этого запроса необходимо воткнуть в wordовский документ с титульником и прочими штуками отчётов, используемых на кафедрах.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2015, 06:52
Ответы с готовыми решениями:

Отчёт в шаблон Word
Возникла такая проблема: Необходимо вывести отчет из базы данных в заранее созданный шаблон Word. Где можно почитать об этом? Может...

Печатный отчёт выводящий в MS Word
Я сделал печатный отчёт посредством компонентов вкладки QReport. При нажатии на кнопку, выводятся на печать поля выделенной строки из...

Вывод данных в word
какой код прописать, что бы когда вводишь данные для визитных карточек, эти данные выводились в word?

14
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
03.06.2015, 08:02
http://wladm.narod.ru/Borland/word.html
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
03.06.2015, 12:43  [ТС]
Спасибо, конечно, за ответ. Но по этой ссылке я всё и делал. Там не описывается как правильно использовать DataSource для вывода табличных данных по определённому запросу. И мне необходимо составлять многостраничный отчёт с титульным листом. Пример отчёта приложил.
Вложения
Тип файла: rar Отчет.rar (112.2 Кб, 18 просмотров)
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
03.06.2015, 14:20
Выводите данные из DataSource в текстовые переменные, а далее в отчет:
Например вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void TDM_Base::ViewNameField(TStrings *list,AnsiString tabl)
{
AnsiString str = "select RDB$FIELD_NAME from RDB$RELATION_FIELDS where RDB$RELATION_NAME = '" + tabl + "'";
 
OpenSysTabl(str);
 
   while(!QuerySys->Eof)
  {
   list->Add((QuerySys->FieldByName("RDB$FIELD_NAME")->AsString).Trim());
   QuerySys->Next();
  }
 
void TDM_Base::OpenSysTabl(AnsiString str)
{
if(TransactionSys->Active == true){TransactionSys->Commit();}
 TransactionSys->StartTransaction();
 
 QuerySys->SQL->Clear();
 QuerySys->SQL->Add(str);
 QuerySys->Open();
}
 
}
Функция ViewNameField возвращает значения из DataSource в переменную list

Вот часть которая пробегает по всему DataSource
C++
1
2
3
4
5
   while(!QuerySys->Eof)
  {
   list->Add((QuerySys->FieldByName("RDB$FIELD_NAME")->AsString).Trim());
   QuerySys->Next();
  }
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
04.06.2015, 09:49  [ТС]
Ладно, надеюсь с этим кодом разберусь. А вот что делать с запросом? При том коде который у меня написан при нажатии на кнопку ничего не происходит.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.06.2015, 21:16
Цитата Сообщение от Killercross Посмотреть сообщение
А вот что делать с запросом?
Я не телепат, не зная структуры БД запрос ну не как не напишу за Вас.
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
04.06.2015, 21:19  [ТС]
Саму структуру запроса я знаю. Мне нужно разобраться с кодом который я писал в самом первом сообщении. Я перепробовал разные варианты, но ни один из них не сработал.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.06.2015, 21:29
Цитата Сообщение от Killercross Посмотреть сообщение
ADOQuery1->SQL->Add("SELECT * FROM "+ComboBox1->Items->Text);
ADOQuery1->SQL->Add("WHERE "+ComboBox2->Items->Text+" = "+Edit2->Text)
ADOQuery1->SQL->Add("SELECT * FROM "+ComboBox1->Text);
ADOQuery1->SQL->Add(" WHERE "+ComboBox2->Text+" = "+Edit2->Text);
Вот что я вижу
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
04.06.2015, 21:39  [ТС]
Пробовал. Не работает.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.06.2015, 21:44
Уже писал
Цитата Сообщение от Витальич Посмотреть сообщение
Я не телепат
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
04.06.2015, 21:49  [ТС]
Хорошо. Спасибо за помощь. Буду дальше разбираться=)
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
05.06.2015, 04:44
Цитата Сообщение от Killercross Посмотреть сообщение
Пробовал. Не работает.
Ошибку выдает или как?
Поставь вместо
C++
1
ADOQuery1->Open();
такой вот текст
C++
1
ShowMessage(ADOQuery1->SQL->Text);
и посмотри, верно ли формируется запрос. Попробуй сохранить свой сформированный запрос в файл
C++
1
ADOQuery1->SQL->SaveToFile("111.sql");
и выполни его непосредственно в своей БД без своей программы. Если проканает - дальше код надо будет твой смотреть, если нет - данные где-то неверно подставляются. Возможно условие отбора надо так записать
C++
1
ADOQuery1->SQL->Add("WHERE " + ComboBox2->Text + " = '"+Edit2->Text + "'");
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
05.06.2015, 17:59  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Поставь вместо
Код C++
1
ADOQuery1->Open();
такой вот текст
Код C++
1
ShowMessage(ADOQuery1->SQL->Text);
и посмотри, верно ли формируется запрос.
спасибо за код. Да, запрос формируется верно. Почему-то не срабатывает именно нажатие на кнопку, т.е. кнопка нажимается, но ничего не происходит, никаких ошибок или вылетов
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
05.06.2015, 18:10
Цитата Сообщение от Killercross Посмотреть сообщение
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM "+ComboBox1->Items->Text);
ADOQuery1->SQL->Add("WHERE "+ComboBox2->Items->Text+" = "+Edit2->Text);
ADOQuery1->Open();
}
Дык это вот что, весь код кнопки? Ну дык а что же должно произойти? Запрос выполнился и все.
Добавь в конце такую строчку
C++
1
ShowMessage(IntToStr(ADOQuery1->RecordCount));
и посмотри, какое количество записей он тебе выдаст

Добавлено через 2 минуты
И, кстати, ты вариант с апострофами проверял?
C++
1
ADOQuery1->SQL->Add("WHERE " + ComboBox2->Text + " = '"+Edit2->Text + "'");
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
05.06.2015, 18:27  [ТС]
Всем спасибо за помощь. С запросом разобрался, оказалось неправильно были выставлены привязки к DataSource и DataSet
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2015, 18:27
Помогаю со студенческими работами здесь

Вывод данных в Word
Господа программисты, посоветуйте пожалуйста литературу, подробно-описывающую вывод информации из программы в Word

Печатный отчёт выводящий активную строку из DBGrid в MS Word
Я сделал печатный отчёт посредством компонентов вкладки QReport. При нажатии на кнопку, выводятся на печать поля выделенной строки из...

Вывод поля в отчёт в с++ Builderжно
Всем доброго времени суток. Есть вопрос по реализации отчёта по бд в с++ Builder . Вот я написал поиск записей: void...

Вывод запроса в ms word
Может уже тему поднимали. Подскажите где можно посмотреть процедуру обработки событий кнопки на форме вывести в word результаты запроса в...

Вывод запроса в шаблон Word
Здравствуйте. У меня такой вопрос. Как можно вывести все записи из запроса в закладку Word или просто в шаблон, не заменяя в нем исходной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru