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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Генерация отчётов средствами Qt  (Прочитано 41778 раз)
SLK
Гость
« Ответ #15 : Август 22, 2006, 19:15 »

Цитата: "Cyrax"

Было бы неплохо ...  можно на мыло:  cyrax-temp@nm.ru.

А нельзя скомпилить статически?


Отправил .......
статически наверно можно, не озадачивался этим вопросом.
по любому dll будет, у меня mingw в динамической сборке Улыбающийся
Записан
Cyrax
Гость
« Ответ #16 : Август 22, 2006, 21:41 »

Не вижу твоего файла... Мой ящик пуст...
Попробуй ещё раз.

Хочу уточнить требование насчёт runtime-генерации шаблонов.
Нужно, чтобы пользователь (не программер) мог без проблем модифицировать существующий шаблон или слепить новый - визуально. Т.е. указываются данные и их расположение + всякие линии, прямоугольники. В основном отчёты будут в табличной форме, но везде будут подписи в конце документа.
При этом дизайнер не обязательно должен запускаться из моей программы (с NCReport такого нельзя..), можно запускать и работать с ним отдельно, создавать шаблоны и юзать их из главной проги.

Можно встроить дизайнер в свою прогу? Сырцы то все есть...
Хотя... можно запустить его и из своей проги (выполнить обычную команду запуска) без встраивания. Но самый оптимальный вариант, конечно, встроенный дизайнер. Тогда и ограничить права пользователей (на работу с шаблонами) будет легче...

В любом случае мне нужно запрятать все шаблоны, чтобы к ним не было простого доступа. Можно, например, через ресурсы. НО: шаблоны должны храниться в БД на сервере (будет MySQL), ведь клиентов может быть много... Крутой
Записан
SLK
Гость
« Ответ #17 : Август 23, 2006, 12:15 »

Твой ящик не принял письмо ... message size exceeds my databytes limit
размер zip-а почти 4мб.  

Да, задачка у тебя.  
Принципиально в ncreport уже заложена возможность хранить шаблоны в БД, хоть этого и нет в примерах.  Документации тоже нет.
(Следующее выяснил просто изучая исходники)
Структура БД для хранения шаблонов должна быть примерно такой ...
Код:
CREATE TABLE sys_reports (
  pk INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  reportdef TEXT NULL,
  PRIMARY KEY(pk)
);

CREATE TABLE sys_reportforms (
  form_id VARCHAR(255) NOT NULL,
  report_fk INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(form_id, report_fk),
  INDEX sys_reportforms_FK(report_fk),
  FOREIGN KEY(report_fk)
    REFERENCES sys_reports(pk)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

При этом в генераторе для выборки шаблона отчёта нужно пользоватся в место report->setReportFile( "myreport.xml" ); функциями report->setReportID( reportID ); где reportID может быть как int так и QString Перед этим нужно предворительно выполнить report->setParseMode(NCReport::fromDatabase)

Если модифицировать ncreportdesigner так чтобы он писал и открывал отчёты не из файлов, а из БД, то твоя задача вполне может быть решена.
"Я так думаю" (с) Мимино  

PS Буквально вчера вышла beta2 версия ентого дизайнера отчётов ...ещё даже не смотрел.
Записан
Cyrax
Гость
« Ответ #18 : Август 28, 2006, 00:12 »

... возникли проблемы с инетом ...

SLK, если ты ещё на связи, скинь скомпиленный designer на cyrax-temp@mail.ru - там ограничение на 10 метров.
Если можно, beta2... Крутой
Записан
SLK
Гость
« Ответ #19 : Август 30, 2006, 19:01 »

Отправил beta2
Записан
Cyrax
Гость
« Ответ #20 : Сентябрь 22, 2006, 22:44 »

SLK, спасибо за дезинёр. Закачал с ящика только на днях...
Но я вот о чём подумал. Если для дезайнера нужен Qt3, а мой проект будет
написан на Qt4, то ничего хорошего из этого не выйдет. К тому же, если
как-то получится встроить дизайнер в код, то тем более понадобится Qt4-дизайнер.

Теперь по поводу генератора NCReport. Его сырцы я скомпилил, получил ncreport.exe.
Что ему нужно для запуска. И вообще, что он делает. При запуске выводит сообщение
об ошибке: Could not load database driver.
В исходниках копаться тяжко, особенно вечерком. Хочется сразу всё и быстро... Улыбающийся

(*) Что касается генератора отчётов, то я представляю себе набор классов, которые ты в своей программе используешь для генерации отчётов по шаблонам. Меня смуща ют твои слова (предыдущие посты) о том, что в NCReport генератор легко встраивается в код. А как можно работать с генератором не иначе, как в своём коде...
Он что, самостоятельная программка (ncreport.exe) ?


А вообще, думаю, может стоит остановиться на OpenRPT. Дело в том, что необходимо выполнить следующие требования:
1. Генератор отчётов должен быть кросслпатформенным, желательно написан на Qt
2. Обязательно наличие дизайнера шаблонов.
3. Русская и английская локализации этого дизайнера
4. Работа генератора отчётов (включая дизайнер) с MySQL
5. Возможность сохранения шаблонов в базе данных
6. Желательно (но не обязательно) вызывать дизайнер шаблонов из своей программы (в runtime). Подобно FastReport'у у Builder'а. При этом в своей программе должен осуществляться максимальный контроль за действиями пользователя в дизайнере. Подобные средства, как я помню, предоставляет FastReport. Что именно - не знаю (кроме вызова дизайнера шаблонов в runtime), но что-то такое там есть.
Кстати, если кто работал с FastReport'ом, неплохо было бы изложить в двух словах, как там осуществляется такой контроль и чем может управлять главная программа (вызвавшая дизайнер шаблонов)...

Теперь рассмотрю все пункты в отношении NCReport'а и OpenRPT.
1. Оба написаны на Qt. Но дизанер NCReport - на Qt3. Такой вариант не подойдёт, если только не дождаться, пока выйдет Qt4-дизайнер. OpenRPT, вроде написан на Qt3, но можно использовать Qt3 Support Library.
2. Дизайнеры шаблонов есть и там, и там.
3. С NCReport'ом, наверное будут проблемы. А вот OpenRPT имеет многоязыковую поддержку.
4. NCReport с MySQL работает, а вот с OpenRPT не совсем понятно...
5. В OpenRPT - запросто (функционально обеспечивается), а вот в случае с NCReport'ом - придётся немного модифицировать код, а ведь это нежелательно... Да и не проверено, будет ли работать...
6. В NCReport такого нет, а в OpenRPT - не зн...

Кстати, 6-й пункт нужен для того, чтобы, во-первых пользователям не пришлось работать с двумя программами - основной и дизайнером шаблонов, и, во-вторых, чтобы контролировать пользователя во время его работы с дизайнером, в-третьих, чтобы компилить всё можно было через один makefile...

Преимущества OpenRPT:
1. Многоязыковая локализация
2. Возможность сохранения шаблонов в БД
3. Функциональность шире. Здесь на меня оказал впечатление его интерфейс - солидно выглядит по сравнению с NCReport'ом. Сам я пока не работал с OpenRPT (не могу скомпилить - у меня Qt4)

Преимущества NCReport:
1. Возможность перемещения группы объектов в дизайнере
2. Проще встраивается генератор в код - здесь не совсем понятно (* выше)

Таким образом, OpenRPT удовлетворяет больше требований (главным образом, локализация и
шаблоны в БД)...
Но вот проблема вызова дизайнера шаблонов из своей программы (в runtime) остаётся...

________________________________________
Что из себя представляет Qt3 Support Library ?
На каком Qt написан OpenRPT ?
В OpenRPT какие языки поддерживаются ?
OpenRPT ориентирован на PostgreeSQL, а как он ладит с MySQL ?
В OpenRPT есть возможность реализации пункта 6 ?
В NCReport 2.0 не появилась возможность перемещения группы объектов ?
В OpenRPT есть footer'ы и header'ы для всего отчёта ?
Как компильнуть OpenRPT (2.0) ?
Как в FastReport, кроме вызова дизайнера шаблонов в runtime, реализуются элементы пункта 6 (в 2 словах) ?
Крутой
Даже если никак не получится встроить дизайнер шаблонов в код, то как создать файл проекта, чтобы можно было компилить и свою прогу, и дизайнер одним махом...
Записан
Cyrax
Гость
« Ответ #21 : Сентябрь 23, 2006, 23:46 »

Забыл про одно требование:
7. Возможность препросмотра.
Как OpenRPT и NCReport справляются с этим делом ?
Записан
C.H.
Гость
« Ответ #22 : Сентябрь 24, 2006, 21:48 »

NCReport компилял под Вин и Ку4 вместо MySQL базы подпихнул ему QSqlLite.
Все сдорово заработало и предпросмотр тоже Улыбающийся
Записан
Cyrax
Гость
« Ответ #23 : Сентябрь 24, 2006, 22:17 »

А почему не MySQL ?
И как ты формируешь шаблоны без дизайнера ?
Что за exe'шник ncreport.exe, что с ним делать (см. пост -3, позиция: 5;0)
*)
з.ы.ж. С OpenRPT дел не имел ?
Записан
C.H.
Гость
« Ответ #24 : Сентябрь 24, 2006, 23:02 »

а мне над без муСКЛ Улыбающийся
с шаблонами пока жопа Грустный дизайнер-то ток под Ку3...
да ncreport.exe получился - запускаешь его с разными  параметрами  - разные отчеты получаешь.
OpenRPT пробовал компилить под Ку4 - так до конца и не собралось -  но некторые вещи даже запускаются и работают.
Так что ncreport пок мне больше нравится, но вот дизайнер бы еще под Ку4
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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