Russian Qt Forum
Ноябрь 22, 2024, 17:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Печать
>
Генерация отчётов средствами Qt
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Генерация отчётов средствами Qt (Прочитано 41788 раз)
Cyrax
Гость
Генерация отчётов средствами Qt
«
:
Август 17, 2006, 23:56 »
Мне необходимо написать большое клиентское приложение с возможностью генерации новых отчётов в runtim'е. Нужно выбрать инструментарий из [C++ Qt] и [C# .NET]. Сам я сторонник Qt, хотя явных (крупных) преимуществ... [Сравнению C++, Qt и C# скоро быдет посвящена отдельная тема.] Всё бы хорошо, но есть одно НО: у Qt нет развитых средств для генерации отчётов. :cry:
По генерации отчётов средствами Qt в инете информации очень мало. В основном, предлагают использовать внешние генераторы отчётов. Но мне
необходимо, чтобы генератор работал вместе с Qt и под Win'ду, и под Linux (и др.), т.е. был таким же кроссплатформенным
. Но таких нет! (буду рад, если ошибаюсь...)
Вот одно из сообщений, которое я нашёл:
Цитировать
Посмотри
http://hardclub.donntu.edu.ua/projects/qt/pages/index.htm
FastRepot'а в QT нет, но возможность формирования отчетов есть, не
делал, но читал. По ссылке ты найдешь книгу на русском, там указано
более внятно, чем я смогу объяснить. Печать и генерация отчетов в QT
почти одна и та же тема.
Здесь ссылаются на книгу по Qt, где рассматривают средства печати отчётов в Qt. Довольно интересный материал, но тем не менее: если других средств нет, то получается, что фактически придётся самому писать генератор. В первую очередь это касается некоторой оболочки типа FastReport'а, которая позволит визуально "лепить" форму (шаблон) отчёта (обязательное требование - в runtime'е).
Что касается C#, то там много всяких генераторов, наиболее развитые и эффективные - FastReport Studio, Report Sharp-Shooter и StimulaReport .NET. Хоть они и платные, но всё же можно найти кряки.
Получается, что в отношении генерации runtime-отчётов у C# есть явное преимущество (буду рад, если меня переубедят...).
Так вот, хотелось бы иметь объективную картину по этому вопросу, узнать мнение специалистов. Что препятствует разработке Qt-генератора отчётов?
Может быть, в последних 4-х версиях что-то появилось?
И вообще интересно, что по этому поводу считает сама Trolltech, ведь этот вопрос возник давно.
Помню, на каких-то форумах люди рассуждали о деталях разработки генератора отчёта под Qt - похоже, собирались его написать. Так вот, может быть сейчас уже что-то есть, что можно использовать?
Даже в худшем случае, если ничего и нет, неплохо было бы услышать убедительные доводы в пользу Qt (против C#), несмотря на отсутствие развитых средств генерации runtime-отчётов...
Записан
Hordi
Гость
Генерация отчётов средствами Qt
«
Ответ #1 :
Август 18, 2006, 09:23 »
Что-то не пойму я... Qt - это GUI библиотека, ну может чуть больше. С# - это язык, ну тоже чуть больше. При чем здесь отчеты? Вы от MFC тоже отчетов требуете?
Проблема в том, на каком языке написаны генераторы отчетов, т.к. от этого зависит интеграция в программный продукт, также имеет значение, предусматривалась ли возможность в генераторе интерграция в произвольные программные продукты.
На данный момент можно ОДНОЗНАЧНО сказать - под Линукс развитых (типа FastReport) генераторов отчетов НЕТ! Есть всякие jasper'ы и т.п., с которыми можно делать, в общем-то многое, и все как бы и хорошо, но это если человек никогда ранее не работал на виндовых тулзах.
Делаем вывод: если у тебя программа серьезно ориентирована именно на отчеты, то не парь себе мозги, если отчеты - это просто показ в табличном виде данных + шапки-сноски, то под Линукс этих тулзовин достаточно, и из Qt их заюзать очень даже можно.
Собственно, мое ИМХО...
Записан
SLK
Гость
Генерация отчётов средствами Qt
«
Ответ #2 :
Август 18, 2006, 22:04 »
есть неплохие генераторы, которых вполне достаточно для простеньких отчётов ....
http://sourceforge.net/projects/ncreport
,
http://www.openrpt.org
сам сейчас использую ncreport.
до ncreport пользовал только QTextDocument::print для отчётов ..... правда пришлось подредактировать в исходниках QT функцию print, чтоб уменьшить отступы по краям, а то 2 см больно много по дефолту.
А так, хорошо развитых генераторов типа FastReport Studio и иже с ним, чтоб под windows\linux да под QT4 были ..... действительно нету пока.
Зато есть над чем работать
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #3 :
Август 19, 2006, 00:59 »
:? Что Qt - прежде всего GUI библиотека, это конечно так. Что "чуть больше" - тоже верно. И возможно (и даже скорее всего) требовать от неё генератора отчётов как составную часть библиотеки будет излишним. Достаточно QtDesiner'а как необходимого средства для визуального построения интерфейса.
Что касается MFC, то в отличие от Qt это чистая GUI-библиотека, не содержащая "чего-то большего", даже визуального построителя интерфейса. Она не претендует ни на что, кроме графической библиотеки. Поэтому, от MFC требовать генератора отчётов, естественно, глупо. Есть, конечно, расширения библиотеки MFC, вплоть до визуального построителя диаграмм и таблиц (может быть и генератора отчётов - не уточнял), но всё это - результат работы сторонних фирм и не имеет непосредственного отношения к Microsoft'овской MFC.
Теперь вернёмся к Qt. Qt - это не просто графическая библиотека. Это кроссплатформенная графическая библиотека. И даже не только графическая, а кроссплатформенная библиотека, ориентированная на разработку приложений различной сложности (сочетание "любой сложности" будет звучать неоправданно громко) (конечно, о комбайнах типа C++ Builder'а речь не идёт). Поэтому, с одной стороны, для разработки полноценных программ дополнительные требования к библиотеке предъявляет реальная кроссплатформенность (в отличие от ложной в случае с .NET), с другой стороны - ориентация на широкий спектр приложений. В результате мы имеем средства для работы с: базами данных, таймером, потоками, XML, принтером, звуком. Даже контейнеры, входящие в STL, были переписаны в Qt.
Тем, кто сомневается,предлагаю ответить на вопрос "Зачем графической библиотеке нужно работать с сетью?" Здесь я имею ввиду естественную необходимость, а не причины искусственного характера.
Таким образом, Qt уверенно выходит за рамки простой GUI-библиотеки.
Следовательно, предположение о возможности существования генератора отчётов в составе Qt не бессмысленно...
Наиболее вероятными решениями (по крайней мере, на данный момент) задачи генерации отчётов в Qt являются:
1. Разработка генератора отчётов исключительно средствами Qt. Это может сделать кто угодно, только займёт это много времени.
2. Разработка сторонними компаниями совместимого с Qt генератора отчётов, написанного тоже на С++, такого же кроссплатформенного. Здесь можно привести пример генератора отчётов StimulaReport .NET для C#, полностью с ним совместимого, также под платформу .NET.
Все вышеизложенные рассуждения выражают моё личное мнение. Многие могут со мной не согласиться.
Теперь конкретно по теме.
Что имелось ввиду под словами "не парь себе мозги"? Насчёт самостоятельной разработки небольшого генератора под Qt (средствами Qt)? Или на счёт того, стобы остановиться на С#?
Отчёты в моей программе довольно простые (без группировки и без графики). Главное требование - генерация новых шаблонов (форм) в runtim'е. Так вот, основной вопрос заключается в том,
есть ли какие-нибудь средства генерации отчётов (runtime-отчётов!), которые не свели бы на нет все преимущества кроссплатформенности библиотеки Qt.
_____________________________________________
Всё вышеизложенное относится к сообщению Hordi.
SLK, спасибо за ссылки, но пока твоё сообщение не переварил - спать охота...
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Генерация отчётов средствами Qt
«
Ответ #4 :
Август 19, 2006, 01:58 »
все таки хотелось бы сказать
кроссплатформенных отчетов нет, пока нет, может в QT5 появится
в винде я с переменным успехом пользовал FastReport3, они только начинали писать COM обвязку для C++. Потом забросил.
Всех лучше с отчетами у Builder с его VCL.
Записан
Hordi
Гость
Генерация отчётов средствами Qt
«
Ответ #5 :
Август 19, 2006, 10:07 »
Попробуй jasper.
Если отчеты простые и есть время - напиши сам, для простых случаев - это месяц работы для 1-2 программистов.
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #6 :
Август 19, 2006, 21:37 »
Почему я не рассматриваю вариант использования FastReport'а - по некоторым причинам я против C++ Builder'а. Что касается переносимости, то и с CLX, и с Kylix есть определённые проблемы.
Кстати, с C# тоже имеются проблемы с переносимостью - Microsoft'овских Framework'ов для других ОС нет, только сторонних производителей. А их Framework'и полностью и без глюков оригинальную функциональность не обеспечивают... :?
Отчёты, конечно, у меня простые. И я бы с удовольствием написал Qt-ный генератор, но со временем у меня довольно туго. Поэтому вынужден искать готовые решения. Как варианты - OpenRPT, NCReport и Jasper. С ними я пока ознакамливаюсь, поэтому сейчас ничего конкретного написать не могу. Думаю, завтра ситуация прояснится...
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #7 :
Август 20, 2006, 19:07 »
Насколько я понял, OpenRPT написан на Qt. Но в OpenRPT нельзя создавать отчётные шаблоны в runtim'е (нет runtime-дизайнера). Кроме того, он ориентирован прежде всего на PostgreeeSQL. Работа с другими БД возможна только после установки Qt-драйверов для этих БД и модификации каких-то исходников... :?
Что касается NCReport, то с БД у него попроще - работа с ними идёт через Qt.
Но может ли он генерировать новые шаблоны отчётов в runtim'е?
На каком Qt написан дизайнер?
И как быть с header'ами и footer'ами в дизайнере? Ставить программно?
Допустимы ли вертикальные надписи?
И где найти доки по NCReport?
Какие объективные преимущества у NCReport'а по сравнению с OpenRPT?
Что касается jasper'ов, то, как я понял, там динамически формировать шаблоны отчётов нельзя (только до компиляции). Да и написаны они на Java...
P.S.: как расшифровывается "jasper"?
Записан
SLK
Гость
Генерация отчётов средствами Qt
«
Ответ #8 :
Август 21, 2006, 12:25 »
Цитировать
Но может ли он генерировать новые шаблоны отчётов в runtim'е?
Не может (не представляю, зачем такое может понадобится), хотя ничего не мешает сделать генерацию шаблонова самому .... там не слишком сложная XML структура. Если имеется в виду как-то зашивать XML шаблон в exe, а не держать его отдельно в файле (чтоб юзеры не добрались) .... так это делается запросто через ресурсы, пробовал сам - работает.
Цитировать
На каком Qt написан дизайнер?
на QT3, изначально делался, как я понимаю, под linux. Но я его прекрасно скомпилил и под win32 (mingw).
Цитировать
И как быть с header'ами и footer'ами в дизайнере? Ставить программно?
header-ы и footer-ы задаются в шаблоне своими тегами .... естественно в дизайнере это сделать можно. Можно сделать для листа и\или для секций (группировка details по признаку) нельзя только сделать Header и footer для всего отчёта, это минус, но он мне не слишком мешает. (теоритически если у всего details один признак, то для Report Header\Footer можно воспользоватся Section header\footer .... но я так делать не пробовал пока)
Цитировать
Допустимы ли вертикальные надписи?
Да, в том числе и так называемые водяные знаки\надписи
... для любого объекта в шаблоне можно задать Rotation angle
Цитировать
И где найти доки по NCReport?
таких нет .... есть примеры шаблонов и пример кода
Цитировать
Какие объективные преимущества у NCReport'а по сравнению с OpenRPT?
OpenRPT вроде как мощнее и старше .... но мне их дизайнер не очень понравился ... к примеру нельзя выдилить группу обьектов на шаблоне и переместить ..... всё надо таскать по одному ..... в ncreport это можно .... и не нашел я примеров встраивания в код генератора openRPT ... может плохо искал?
Ncreport моложе, а дизайнер вообще только недавно вышел в бета версии и пока компилится только под QT3. Но зато генератор легко встраивается в код и есть в полноценной QT4 версии (без использования Qt3Support4)
Записан
Gryz
Гость
Генерация отчётов средствами Qt
«
Ответ #9 :
Август 22, 2006, 08:22 »
Цитата: "Cyrax"
На каком Qt написан дизайнер?
На том же, что устанавливалось вместе с дизайнером
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #10 :
Август 22, 2006, 11:49 »
Designer я ещё не поставил. У меня Qt4...
Вопрос к Gryz: какой ещё Qt ставится вместе с дизайнером
...
Записан
SLK
Гость
Генерация отчётов средствами Qt
«
Ответ #11 :
Август 22, 2006, 11:52 »
Цитата: "Gryz"
Цитата: "Cyrax"
На каком Qt написан дизайнер?
На том же, что устанавливалось вместе с дизайнером
Надо читать с начала
... речь шла о дизайнере отчётов для NcReport, а не про дизайнер форм QT
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #12 :
Август 22, 2006, 12:49 »
Цитата: "SLK"
Цитата: "Gryz"
Цитата: "Cyrax"
На каком Qt написан дизайнер?
На том же, что устанавливалось вместе с дизайнером
Надо читать с начала
... речь шла о дизайнере отчётов для NcReport, а не про дизайнер форм QT
Я так и понял. Вопрос остаётся: какой Qt ставится вместе с дизайнером отчётов NCReport
Записан
SLK
Гость
Генерация отчётов средствами Qt
«
Ответ #13 :
Август 22, 2006, 13:35 »
Цитата: "Cyrax"
Вопрос остаётся: какой Qt ставится вместе с дизайнером отчётов NCReport
шутка? :?
Написал вверху уже ... для компиляции дизайнера NcReport нужен QT3 !!!
Если собиралось под win32(mingw) то в папку к полученному exe, добавляем qt-mt3.dll и mingwm10.dll
всё, дизайнером можно пользоваться.
Могу поделится уже готовым, но не куда выложить .......
Записан
Cyrax
Гость
Генерация отчётов средствами Qt
«
Ответ #14 :
Август 22, 2006, 18:11 »
Да я понял, что Qt3 нужен!..
Цитировать
Могу поделится уже готовым, но не куда выложить .......
Было бы неплохо ... можно на мыло:
cyrax-temp@nm.ru
.
А нельзя скомпилить статически?
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...