Настройка отчетов

Свойства приложения

В этом разделе описаны свойства приложения, связанные с дополнением Reports, в алфавитном порядке.

jmix.reports.client.background-report-processing-timeout-ms

Определяет таймаут обработки в миллисекундах для выполнения отчета, если свойство jmix.reports.client.use-background-report-processing установлено в true.

Значение по умолчанию: 10000.

jmix.reports.client.enable-tab-symbol-in-data-set-editor

Определяет, должна ли клавиша TAB обрабатываться как символ \t вместо навигации по фокусу в полях Script экрана деталей отчета.

Значение по умолчанию: false

jmix.reports.client.use-background-report-processing

Позволяет установить выполнение отчета как фоновую задачу. Это свойство используется для добавления опции отмены.

Значение по умолчанию: false.

jmix.reports.curl-path

Дополнение Reports использует инструмент cURL для запуска внешних отчетов. Значение свойства представляет путь к инструменту cURL.

Значение по умолчанию: curl.

jmix.reports.display-device-available

Значение false позволяет запускать LibreOffice в серверной операционной системе без оконного интерфейса.

Значение по умолчанию: false

jmix.reports.doc-formatter-timeout

Устанавливает таймаут LibreOffice в секундах для преобразования DOCX/XLSX в HTML/PDF.

По истечении времени пользователь получит сообщение об ошибке.

Значение по умолчанию: 20

jmix.reports.formulas-post-processing-evaluation-enabled

Управляет тем, пересчитываются ли формулы в отчетах XLSX после формирования документа отчета.

Когда включено (true), LibreOffice или другое программное обеспечение для работы с электронными таблицами пересчитает все формулы в отчете XLSX, гарантируя отображение самых актуальных значений. Это особенно полезно, когда формулы в отчете не рассчитываются автоматически при открытии в некоторых приложениях для работы с электронными таблицами.

Значение по умолчанию: false.

jmix.reports.history-cleanup-max-days

Задача по расписанию удаляет все записи истории выполнения старше указанного количества дней. Если значение свойства равно 0, задача по расписанию не учитывает это свойство при удалении записей.

Смотрите Очистка истории для получения подробной информации о настройке задачи по расписанию.

Значение по умолчанию: 730

jmix.reports.history-cleanup-max-items-per-report

Задача по расписанию оставляет не более этого количества записей истории выполнения для каждого отчета. Не рекомендуется использовать число больше 1000 в качестве значения этого свойства. Если значение свойства равно 0, задача по расписанию не учитывает это свойство при удалении записей. Это полезно для часто запускаемых отчетов, таких как шаблоны электронной почты, шаблоны документов счетов-фактур и т.д.

Смотрите Очистка истории для получения подробной информации о настройке задачи по расписанию.

Значение по умолчанию: 1000.

jmix.reports.history-recording-enabled

Активирует механизм истории выполнения отчетов.

Значение по умолчанию: false.

jmix.reports.multiline-strings-processing-enabled

Включает обработку многострочных строк в значениях параметров для шаблонов отчетов DOCX. Когда включено (true), символы переноса строки (\n, \r\n), присутствующие в значениях параметров, отображаются как фактические переносы строк в сгенерированном документе DOCX. Эта функциональность применяется только при использовании шаблона DOCX.

Значение по умолчанию: false.

jmix.reports.office-path

Устанавливает путь к LibreOffice.

Значение по умолчанию: /

jmix.reports.office-ports

Определяет список доступных портов для LibreOffice, разделенных запятыми или вертикальной чертой.

Например: jmix.reports.office-ports = 8100|8101|8102|8103|8104|8105.

Значение по умолчанию: 8100, 8101, 8102, 8103.

jmix.reports.pdf-fonts-directory

Устанавливает путь к директории со шрифтами для преобразования отчетов из HTML в PDF.

Например: jmix.reports.pdf-fonts-directory = C:/Windows/Fonts.

jmix.reports.put-empty-row-if-no-data-selected

Устанавливает режим, при котором бэнды, наборы данных которых не вернули записей, все равно отображаются один раз.

Значение по умолчанию: true

jmix.reports.save-output-documents-to-history

Если установлено в true, файлы результатов отчетов сохраняются в файловом хранилище, если свойство jmix.reports.history-recording-enabled включено. Смотрите Выходные документы для получения подробной информации.

Значение по умолчанию: false.

jmix.reports.use-office-for-document-conversion

Включает использование LibreOffice для преобразования отчета с шаблоном DOCX в HTML/PDF, что значительно повышает точность преобразования.

Значение по умолчанию: false

jmix.reports.view-file-extensions

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

Значение по умолчанию: htm, html, jpg, png, jpeg, pdf

Установка и настройка LibreOffice

Дополнение Reports использует пакет LibreOffice для вывода отчетов в форматах PDF и DOC. Ниже мы предоставляем инструкции о том, как установить и настроить его на сервере приложений:

Для Microsoft Windows

  • Скачайте приложение на www.libreoffice.org.

  • Установите приложение.

  • Настройте свойство приложения jmix.reports.office-path, установите путь к LibreOffice, например:

jmix.reports.office-path = C:/Program Files (x86)/LibreOffice 5/program

На сервере Ubuntu

  • Установите пакет libreoffice, например, выполнив следующую команду:

    $ sudo apt-get install libreoffice
  • Настройте свойство приложения jmix.reports.office-path, установите путь к LibreOffice:

    jmix.reports.office-path = /usr/lib/libreoffice/program
  • Если на сервере не установлен оконный интерфейс, LibreOffice запустится с ошибкой Caused by: java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it или просто завершит работу без сообщений об ошибках. Чтобы решить эту проблему, установите свойство приложения jmix.reports.display-device-available:

    jmix.reports.display-device-available = false
  • Вы можете выполнить следующую команду для диагностики ошибок при запуске LibreOffice:

    $ strace -e trace=signal /usr/lib/libreoffice/programs/office.bin --headless --accept="socket,host=localhost,port=8100;urp" --nologo --nolockcheck

Для пользователей Ubuntu, которые установили tomcat с помощью apt, необходимо скопировать ~/.config/libreoffice в $CATALINA_HOME. Для tomcat10 это /usr/share/tomcat10.

После этого следует изменить владельца этой папки:

sudo mkdir /usr/share/tomcat10/.config
sudo cp -pr ~/.config/libreoffice /usr/share/tomcat10/.config/
sudo chown -R tomcat10.tomcat10 /usr/share/tomcat10/.config/

Для macOS

  • Скачайте приложение на www.libreoffice.org.

  • Установите приложение.

  • В свойстве приложения jmix.reports.office-path укажите путь к LibreOffice.app, например:

    jmix.reports.office-path = /Applications/LibreOffice.app/Contents/MacOS

Пересчет формул LibreOffice при загрузке

Настройка LibreOffice Calc, находящаяся в разделе Tools > Options > LibreOffice Calc > Formula > Recalculation on File Load, управляет тем, как LibreOffice обрабатывает пересчет формул при открытии файла электронной таблицы (например, отчета XLSX).

По умолчанию LibreOffice может не пересчитывать формулы автоматически при открытии файла, чтобы ускорить загрузку, особенно для больших и сложных электронных таблиц. Это может привести к ситуациям, когда формулы отображают устаревшие результаты до тех пор, пока пользователь вручную не инициирует пересчет (например, нажав F9 или отредактировав ячейку).

Установка параметра Recalculation on File Load в значение Always recalculate заставляет LibreOffice пересчитывать все формулы каждый раз при открытии файла. Это гарантирует, что отображаемые значения всегда актуальны, но может увеличить время открытия файла, особенно для больших или сложных в вычислительном отношении электронных таблиц. Таким образом, эта настройка представляет собой компромисс между скоростью открытия и точностью данных. Хотя она решает проблему устаревших результатов формул в большинстве случаев, стоит учитывать последствия для производительности очень больших файлов.