Загрузка...

пятница, 28 октября 2011 г.

PyNCReport: сборка и установка под Windows

Всякой уважающей себя учетной программе, даже самой маленькой, требуется подсистема отчетов. Ну любят клиенты бумажные отчеты. Времена, когда подсистемы отчетов писали руками и с нуля каждый под себя, слава высшему разуму, давно прошли. Сегодня разработчик ищет подходящий генератор отчета (далее репген) и прикручивает его к своему творению, чем экономит собственное время, деньги работодателя и нервы заказчика. Подходящесть репгена определяется кучей критериев, по большей части проектоспецифичных. Такие критерии есть и у меня:
  1. Главный критерий - поддержка PyQt, в крайнем случае Qt, написание биндера - задача решаемая. В идеале репген должен быть написан на Qt и в поставке иметь биндер для PyQt.
  2. Наличие симпатичного и простого в использовании визуального дизайнера шаблонов отчетов.
  3. Возможность печати предпросмотра, печати и экспорта в какие-нибудь распространенные форматы.
  4. Поддержка кросс-таблиц.
  5. Очень желательно использование парадигмы бэндов, бо так привычнее.
Мук выбора не было - первый же критерий безжалостно сузил круг подозреваемых, до двух продуктов, способных, по отзывам, работать в боевых условиях. Это NCReport и OpenRPT.
OpenRPT мне совсем не понравился, больно страшненький дизайнер у него, биндера к PyQt нет и отсутствует документация, что значит перекапывание кучи кода для написания биндера. Короче, отвернуло.

А вот NCReport понравился. Профессионально выглядящий дизайнер, биндер прилагается, достаточное количество документации - все хорошо. По п.4, правда, не удовлетворил, но разработчики скоро обещают. Еще одна незадача - платный. Но сегодня не об этом. Сегодня я расскажу, как приготовить NCReport для употребления в PyQt. Для приготовления использовалась кухонная утварь следующих версий:
  1. NCReport 2.6.2
  2. PyNCReport 2.6.0
  3. MSVC 2008
  4. Python 2.7
  5. Qt 4.7.3, сборка MSVS2008
  6. PyQt 4.8.4
Завести PyNCReport на этих версиях продуктов мне удалось, однако неизвестно, что будет в дальнейшем. Самая большая опасность - прекращение поддержки биндера, и следовательно, невозможность его собрать с более свежими NCReport и Qt.

Повторюсь: разработка ведется под Windows, пробовать собирать биндер под Linux просто нет времени.

Установка репгена


Для начала нужно установить сам NCReport:
  1. Скачать дистрибутив для Windows, сборка MSVS2008
  2. Запустить инсталлятор, устанавливать с параметрами по-умолчанию
Уже можно читать документацию и пробовать создавать первые шаблоны отчетов. А вот написать отчет на питоне пока не получится. Для этого нужно собрать и установить биндер.

Сборка и установка биндера


  1. Установить всю вышеперечисленная утварь (естественно, кроме PyNCReport).
  2. Скачать архив PyNCReport и распаковать его куда-нибудь ( )
  3. Открыть консоль MSVS2008 ((Пуск/Все программы/Microsoft Visual Studio 2008/Visual Studio Tools/Visual Studio 2008 Command Promt)
  4. Выполнить в консоли следующие команды (консоль после этого не закрывать):
     
    cd PyNCReportDir
    python configure.py
    
    
  5. Заменить все вхождения "C:\Qt\4.7.*" в файле \Makefile на путь к директории, куда установили Qt, по-умолчанию "C:\Qt\4.7.3"
  6. В консоли MSVS2008 выполнить команду
     
    nmake
    
    
  7. Для установки собранного биндера в консоли MSVS2008 выполнить команду
     
    nmake install
    
    

Проверка работоспособности биндера


В консоли питона выполнить
 
>>> import PyNCReport

Питон может наругаться на невозможность загрузить dll, скорее всего он не может найти зависимости для PyNCReport.pyd - python27.dll и/или ncreport2.dll. Нужно прописать пути к этим dll в переменную окружения PATH. Можно также самостоятельно посмотреть зависимости для PyNCReport.pyd и как они грузятся, утилитой Dependency Walker



0 коммент.:

Отправить комментарий