powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / QReport и Query в C++Builder
9 сообщений из 9, страница 1 из 1
QReport и Query в C++Builder
    #34239549
Giker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, все. Нужно вывести в QReport результаты SQL запрса из Query. Подскажите пожалуйста как это делается правильно. Я делаю так:
Положил на отдельную форму QuickRep, положил 4 QRBand, со свойствами BandType rbTitle, rbColumnHeader, rbDetail и rbPageFooter. Положил на этуже форму в QRBand со свойством rbDetail TQRDBText 4 штуки - по количеству возвращаемых полей SQL-запросом. У всех TQRDBText и у QuickRep назначил в свойстве DataSet MainForm->Query1.
Далее по нажатию кнопки на главной форме выполняется следующий код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Query1->Close();
   Query1->SQL->Clear();
   Query1->SQL->Add("SELECT * FROM 'check' WHERE checkdate BETWEEN '"+DateToStr(Date)+
                    "' AND '"+DateToStr(Date)+"';");
   Query1->Open();
    QReportForm->TQRDBText1->DataField=Query1->Fields->Fields[ 0 ]->AsString;
    QReportForm->TQRDBText2->DataField=Query1->Fields->Fields[ 1 ]->AsString;
    QeportForm->TQRDBText3->DataField=Query1->Fields->Fields[ 3 ]->AsString;
    QReporForm->TQRDBText4->DataField=Query1->Fields->Fields[ 2 ]->AsString;

Запрос возвращает правильный результат, но он не отображается в QReport.
Подскажите в чем дело. Может я вообще что-то принципиально неправильно делаю?
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34239600
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаешь репорт, щелкаешь на него 2 раза, появится окно, ставишь там шоб отобразило, пейдж хедер, колумхедер, детейлбенд. потом ложишь в детейлбедн твои TQRDBText, у TQRDBText датасет ставишь твой квери аля Form1->Query1 и всему квикрепорту установи датасет аля Form1->Query1.
потом делай свой запрос
и после него вызывай Quikrep1->Preview();
и будет тебе щастье, может шо нетакнаписал - сори, пишу на автопилоте без билдера :)
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34239618
Giker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все делаю так как ты сказал, а оно все равно не пашет. Обьясни пожалуйста по подробней.
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34239795
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что конкретно непашет?
хоть чтото отображается на отчете? вызывается вообще превью?
положил ли ты TQRDBText в детейлбенд?
видит ли твоя фотма с репортом юнит где лежит квери?
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34240044
Giker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Превью работает. Но данные в отчете совсем не отображаются. QRBand со свойством rbDetail положил TQRDBText, Установил свойство DataSet у TQRDBText и QuickRep в Form1->Query. Юниты форм видят друг друга. Для сопоставления полей в Query и TQRDBTextов написал код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   Query1->Close();
   Query1->SQL->Clear();
   Query1->SQL->Add("SELECT * FROM 'check' WHERE checkdate BETWEEN '"+DateToStr(Date)+
                    "' AND '"+DateToStr(Date)+"';");
    Query1->Open();
    QReportForm->TQRDBText1->DataField=Query1->Fields->Fields[ 0 ]->AsString;
    QReportForm->TQRDBText2->DataField=Query1->Fields->Fields[ 1 ]->AsString;
    QeportForm->TQRDBText3->DataField=Query1->Fields->Fields[ 3 ]->AsString;
    QReporForm->TQRDBText4->DataField=Query1->Fields->Fields[ 2 ]->AsString;

Но не работает.
Я даже когда делаю статичный запрос в Query и подключаю его статично как выше описано к QReport. Все равно данные в режиме исполнения не отображаются, а в режиме дизайна отображается отолько первая строка, хотя их там 4.
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34240062
Giker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предыдущий вопрос снимается потому что я делал неправильное присвоение полей запроса TQRDBTextу, правильно вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT * FROM 'check' WHERE checkdate BETWEEN '"+DateToStr(Date)+
                    "' AND '"+DateToStr(Date)+"';");
Query1->Open();
QReportForm->TQRDBText1->DataField="checknum";
QReportForm->TQRDBText2->DataField="checktime";
QeportForm->TQRDBText3->DataField="checkdate";
QReporForm->TQRDBText4->DataField="checksum";
QReportForm->QuickRep1->Preview();
Но теперь в отчете отображается только 1-я строка результатов запроса а их 4 и может быть больше, как отобразить все строки?
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34240157
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут только вариант один:
ты неположит всетаки в детейлбанд свой QRDBText, или неподключил весь репорт к квери. еще может в запросе несделал
Query1->FatchAll(); после опена, но это может и не быть такого.
а еще как ты добавлял детейл бенд? брас с панели или два раза щелкал и в окне ставил галочку шоб был детейлбенд?
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34240419
Giker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое! Все наконец заработало. Я убрал дейтелбленд который был с панели, и поставил галочку. Хотя я чесно говоря не понимаю в чем разница, но тем не менее все равно спасибо!
...
Рейтинг: 0 / 0
QReport и Query в C++Builder
    #34240939
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GikerЯ убрал дейтелбленд который был с панели, и поставил галочку. Хотя я чесно говоря не понимаю в чем разница
умом квикрепорт не понять :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / QReport и Query в C++Builder
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]