Russian Qt Forum
Ноябрь 11, 2024, 04:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Отчеты  (Прочитано 19984 раз)
beginner
Гость
« : Январь 24, 2006, 02:03 »

Каким лучше образом генерировать отчеты из под Qt? Нужно ли влоб забивать текстом файлик и получать из него то, что нужно (например html) или же есть более удобные способы создания отчетов, например какая-нибудь интеграция с OpenOffice?
Записан
LestorN
Гость
« Ответ #1 : Январь 24, 2006, 07:59 »

Я сделал отчёты пользуясь QTextDocument. Без графиков, но таблички вполне прилично получаются, а в QT4.1 можно выгружать в PDF так что всё в ажуре!
Записан
yshurik
Гость
« Ответ #2 : Январь 24, 2006, 13:44 »

А можно про "выгружать в PDF" по-подробнее пожалуста? Что тут имеется ввиду?
Записан
LestorN
Гость
« Ответ #3 : Январь 24, 2006, 14:44 »

У QT4.1 можно сделать так

QPrinter printer();
printer.setOutputFileName(fileName);
printer.setOutputFormat(QPrinter::PdfFormat);
report->print(&printer);

и в файле с именем fileName будет PDF документ... Смотрится вполне хорошо...
Записан
nEoN
Гость
« Ответ #4 : Январь 24, 2006, 15:07 »

А кто нибудь знает, есть ли в Qt 4.1 возможность просмотра PDF ?
Очень удобно было бы в качестве print preview использовать.
Записан
LestorN
Гость
« Ответ #5 : Январь 24, 2006, 15:14 »

Вот с print preview облом... Мне пока не сильно нужно, я не особо копал... Идея вертится около того что и QPrinter и QWidget являются наследниками от QPaintDevice. Пытался распечатать на QWidget или что-то типа того (давно было не помню уже) но ничего не получилось. Есть идеи?
Записан
nEoN
Гость
« Ответ #6 : Январь 24, 2006, 16:50 »

С отображением PDF похоже нереальная задача, разве что в Win использовать ActiveQt+Adobe Acrobat Reader.

А вообще, если повозиться, помоему реально сделать "Print preview widget".
Если отчёт у нас в виде HTML, то можно сделать функцию, аналогичную методу QTextDocument::print(QPrinter *printer) , т.е. используя настройки принтера выводить результат не на принтер (там это QPainter(printer)), а на экран QPainter(widget), преварительно масштабируя под размеры виджета.

В исходниках QTextDocument::print() всё подробно описано ;-)
Записан
beginner
Гость
« Ответ #7 : Январь 26, 2006, 00:56 »

Так всё-таки, для создание html и openoffice доков нет никаких спецсредств?
Записан
Вудруф
Гость
« Ответ #8 : Январь 26, 2006, 07:21 »

ИМХО, html-то можно и руками создавать...
Записан
beginner
Гость
« Ответ #9 : Январь 26, 2006, 19:36 »

Цитата: "Вудруф"
ИМХО, html-то можно и руками создавать...
Ясно что можно, и OpenOffice тоже можно, как и многие другие, но думал, что есть какие-нибудь средства которые упрощают этот процесс. Нет так нет.
Записан
crocus
Гость
« Ответ #10 : Январь 27, 2006, 06:01 »

to LestorN:
А подскажи пожалуйста как ты добился на печать всех страниц документа, я использую пример imageviewer для просмотра,
там image отображается в Qlabel и далее в  QScrollArea, и мне отображается только первая страница.
Записан
LestorN
Гость
« Ответ #11 : Январь 27, 2006, 08:53 »

to crocus

Я немного не понял вопроса. Если ты про предпросмотр, то я его так и не расколдовал, не заработало. А сам QTextDocument смотрю через QTextEdit
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #12 : Январь 27, 2006, 09:27 »

Цитата: "LestorN"
to crocus

Я немного не понял вопроса. Если ты про предпросмотр, то я его так и не расколдовал, не заработало. А сам QTextDocument смотрю через QTextEdit


Расшифруй кодом
 Веселый
Записан
LestorN
Гость
« Ответ #13 : Январь 27, 2006, 10:08 »

QTextDocument *doc = QTextDocument();

// издеваемся над doc

QTextEdit *te = new QTextEdit();
te->setDocument(doc);
Записан
crocus
Гость
« Ответ #14 : Январь 27, 2006, 10:17 »

Под рукой проекта нет только вечером,
смысл такой как и рекомендовал товарищ nEoN используем исходник
QTextDocument::print и скрещиваем с http://prog.org.ru/forum/topic_2433.html,  основная проблема была как загнать текст в QRect.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.