как проще создать отчет по БД в виде html файла + вопросы по html |
Здравствуйте, гость ( Вход | Регистрация )
как проще создать отчет по БД в виде html файла + вопросы по html |
Steklova Olga |
5.5.2012, 14:17
Сообщение
#1
|
Участник Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: 4 |
Здравствуйте! В моей программе дошло дело до создания отчета по БД (Firebird). Поделитесь, пожалуйста, опытом.
Мне раньше не приходилось заниматься ни отчетами, ни html. Только еще начала читать про разные теги html. Про генераторы отчетов говорят на форуме следующее: Проект eXaro загнулся ещё в 2009-2010, не скажу точно... Да и бедноват он по своим возможностям, нормальный экспорт только в ods и в html, что не есть супер. Из вменяемых и дружащих с Qt остался, наверное, только ncreport, но он не хило так платный. Если нет ограничений по зависимостям и подойдет отдельная утилита, генерящая репорт из xml или например прям из базы данных, то очень советую JasperReports, он халявный, но тянет за собой Java. Не сложноват ли JasperReports для начала? Jav'у не знаю. Да, к тому же, моя Qt-шная программа работает с БД Firebird просто через dll, СУБД Firebird на компе не установлена. Если документ не шибко сложный и достаточно экспорта в html, можно обойтись xslt/xquery преобразованием, при этом если использовать Qt-ишные процессоры, то даже есть способ пропустить формирование xml документа, как промежуточный этап. А чуть подробнее можете объяснить последовательность действий и где почитать про это? (Никогда еще не приходилось создавать отчет по БД, тем более используя xslt/xquery.)А задачка у меня примерно такая. БД Firebird стоит на том же компе, что и Qt-шная программа, которая с ней работает. Qt-шная программа работает с БД Firebird просто через dll, СУБД Firebird на компе не установлена. Оператор просматривает связанные между собой таблицы БД, накладывая на них фильтры. Потом нажимает кнопку "Создание отчетов", выбирает какой-то вариант отчета из списка. (Этот список "зашит" в программе и при работе программы не меняется.) Например, такой вариант отчета: "Отчет по таблице T1 (+T2)". Этот отчет подразумевает, что для каждой записи, отфильтрованной в главной таблице T1 надо в отчет вывести 1-ю таблицу со значениями полей F11, F12 из главной таблицы T1 для этой записи, под 1-й вывести 2-ю таблицу со значениями полей F21, F22, F23 из дочерней таблицы T2 для записей, соответствующих выведенной записи из главной таблицы. Отчет должен быть сохранен в виде html файла, который можно будет просмотреть или распечатать в Windows или Linux. Если не разбираться с ncreport, exaro, JasperReports, а сделать как-нибудь попроще, то, пока что, я представляю себе только один вариант создания отчета в виде html файла: после выбора варианта отчета, выполняя нужные для этого отчета запросы к БД, прямо в Qt-шной программе заносить в QString & html результаты выполнения запросов, оформляя их с помощью тегов html, затем создать QTextDocument, сделать для него setHtml с этим html, затем либо создать QTextDocumentWriter и сделать для него setFileName и write, либо вместо QTextDocumentWriter воспользоваться QFile. А в моем случае можно использовать xslt/xquery? Если даже и можно, то не сложнее ли это будет, чем использовать предложенный мною вариант? Вопрос по тегам html. Мне надо сделать выравнивание таблицы по центру окна браузера. Указываю <table align="center">. А получаю при этом в Mozilla Firefox 3 выравнивание таблицы по левому краю окна браузера, в Microsoft Internet Explorer 6 - то, что просила, по центру. В чем дело? Сообщение отредактировал Steklova Olga - 6.5.2012, 17:52 |
|
|
Гость_Гость_* |
5.5.2012, 20:42
Сообщение
#2
|
Гости |
в Mozilla Firefox 3 выравнивание таблицы по левому краю окна браузера, в Microsoft Internet Explorer 6 - то, что просила, по центру. Кстати, а зачем тебе браузеры когда есть ажно QWebKit and QTextBrowser/Edit выбирай что удобней и ориентируйся на них, уж что что а показать и распечатать html документы вполне можно и встроенными средствами. Для второго варианта даже пример есть: qtdemo->Demonstrations->Text Edit. Да и не придется запариваться что и под какой операционкой установленно у пользователя |
|
|
Текстовая версия | Сейчас: 30.11.2024, 1:39 |