Дизайнер отчетов на основе Stimulsoft Report Js


License
MIT
Install
pip install creadoc==0.0.9

Documentation

Дизайнер отчетов Creadoc

Краткое описание

Инструмент для создания и редактирования отчетных форм на основе Stimulsoft Report Js.

Возможности

  1. Создание и редактирование отчетных форм с последующей выгрузкой их в ряд различных форматов.
  2. Возможность создания пользовательских шаблонных переменных и источников данных, а также их динамическое подключение к шаблону отчетной формы.
  3. Возможность загрузки и выгрузки шаблонов подходящего формата, подготовленных в иных редакторах.

Список доступных для выгрузки на текущий момент форматов - txt, pdf, html, xlsx, docx

Creadoc состоит из двух базовых компонентов - Designer и Viewer. Designer используется непосредственно для формирования и редактирования отчетных форм. Viewer используется для предварительного просмотра подготовленного отчета, а также предоставляет возможности отправки отчета на печать и выгрузки в указанные выше форматы.

Необходимые библиотеки

Актуальный набор требуемых для работы библиотек находится в файле REQUIREMENTS

Установка

Прописать в файле settings.py своего проекта в список INSTALLED_APPS следующие строки:

INSTALLED_APPS = [
  ...
  'south',
  'm3_mutex',
  'm3_users',
  'creadoc',
  ...
]

В случае необходимости запуска демонстрационного приложения также следует добавить следующие строки:

INSTALLED_APPS = [
  ...
  'demo.app',
  'demo.app.designer',
  'demo.app.reports',
  'demo.app.example',
  ...
]

Затем необходимо добавить ссылку на кнопку запуска дизайнера отчетных форм в нужное место своего проекта. Для запуска используется пак CreadocDesignerActionPack. Пример добавления ссылки на верхнее меню рабочего стола через файл app_meta.py:

def register_desktop_menu():
  generic_metarole = metaroles.get_metarole(GENERIC_USER)

  designer_root = DesktopShortcut(
      name=CreadocDesignerActionPack.title,
      pack=find_pack(CreadocDesignerActionPack),
      index=10
  )

  DesktopLoader.add(
      metarole=generic_metarole,
      place=DesktopLoader.TOPTOOLBAR,
      element=designer_root,
  )

После этого нужно добавить пак, использующийся для загрузки источников данных в какой-либо контроллер:

def register_actions():
    my_controller.extend_packs([
        CreadocDataSourceActionPack(),
    ])

Далее необходимо создать требуемые для работы таблицы с БД, выполнив команды

./manage.py syncdb

./manage.py migrate

С этого момента дизайнер отчетов уже доступен по добавленной нами ссылке.

Для запуска просмотрщика используется действие CreadocViewerActionPack.action_show. Чтобы вывести наш отчет в окно просмотрщика нам нужно отправить запрос на данное действие, передав обязательный параметр report_id, который должен содержать идентификатор сохраненного шаблона. Также есть возможность передать необязательный параметр params, представляющий из себя json объект. Данный объект будет передан всем подключенным к шаблону источнику данных и может использоваться для их автоматического конфигурирования.

Настройки модуля

Существует возможность дополнительной настройки отдельных компонентов модуля путем установки специфичных параметров в файле settings.py. Доступные для изменения параметры:

# Фрагмент url, по которому доступен контроллер модуля CreaDoc. Обязательный для заполнения.
CREADOC_URL = 'creadoc'
# Наименование директории в MEDIA_ROOT, в которую сохраняются шаблоны. Обязательный для заполнения
CREADOC_REPORTS_DIR = 'reports'
# Путь до директории с шаблонами
CREADOC_REPORTS_ROOT = os.path.join(MEDIA_ROOT, CREADOC_REPORTS_DIR)
# URL, по которому доступны шаблоны
CREADOC_REPORTS_URL = MEDIA_URL + CREADOC_REPORTS_DIR + '/'
# Промежутки (в миллисекундах) между запусками процедуры автосохранения.
# Сохранение производится в локальный браузерный кэш (localStorage).
CREADOC_DESIGNER_LOCAL_AUTOSAVE_TIMEOUT = 1000