Возможности

Какой доступен функционал AurumReport на сегодняшний день.

TypeScriptBrowser + Bun

Движок AuReport JS

Чистый TypeScript, изоморфный (браузер + сервер): шаблон JSON + данные JSON → модель отчёта. Печать на бумагу, PDF (векторный и растровый), SVG / CSV / HTML / PNG / Excel / Word. Движок честный — «что пришло в JSON, то и отображаем»: подготовку данных берёт на себя внешний код или скрипт самого отчёта.

JSONrelationsIIf()??

Многоуровневые данные (JSON)

Вложенные источники и связи (relations), произвольная глубина; плоский отчёт — частный случай дерева. Binding полным путём [kinds.categories.top.personFullName], индексы [main[0].field], выражения IIf/Substring/Trim, nullish ??, системные переменные [PageNumber], [RowNumber], [AbsRowNumber].

groupHeaderKeepWithData

Группы, итоги, многоколоночные банды

Вложенные группы (группа внутри группы), groupHeader/groupFooter с итогами по каждой группе (countVar), «группа целиком на листе» (KeepWithData), детали не разрываются (KeepDetail). Многоколоночные банды: змейка (AcrossThenDown) и «газетные» колонки (DownThenAcross), номера строк [RowNumber]/[AbsRowNumber].

AuScriptnative JSDoublePass

Скрипты отчёта (AuScript)

Код шаблона на нативном JavaScript — виден и редактируется в редакторе (вкладка «Код»), переносится вместе с шаблоном. События бандов и объектов: OnBeforeData (сортировка/фильтрация потока данных), OnBeforePrint, OnGetValue; двойной проход (DoublePass) для итогов в заголовке; API Report/Engine. На сервере скрипт исполняется в песочнице с таймаутом.

OnBeforeDatasort by total

Сортировка данных в самом отчёте

Пример Sort Group By Total: товары группируются по первой букве, но группы печатаются по размеру (от большей к малой) — сортировку выполняет скрипт отчёта (OnBeforeData), движок остаётся честным и ничего не меняет.

Bookmarkcheckboxes

Интерактивность и гиперссылки

Внешние ссылки и внутридокументные якоря (Bookmark): клик по категории в каталоге переводит к её блоку; во просмотрщике — кнопка «Назад к оглавлению». Чекбоксы-галочки для булевых полей (Discontinued и т.п.).

multi-pageprintOnAllPages

Страницы

Несколько страниц шаблона, «печать на предыдущей странице» (Print on Previous Page): титул и данные на одном листе; шапка на каждой странице (printOnAllPages); «Итог отчёта» (reportSummary).

gradientseven rowsWCAG

Оформление

Заливки и градиенты, рамки по сторонам, зебра чётных строк (EvenStyle) — на всём блоке или на отдельных текстовых элементах; спокойная дизайн-палитра с WCAG-контрастом (пары «фон + текст», без неоновых цветов из старых отчётов).

Figma-like snapData Lensgrid

Редактор форм

Ядро на чистом TS: дерево объектов, панель свойств (включая события скрипта — чипсы и мини-код), бейджи бандов, расширение банда вверх, привязка и smart guides в духе Figma, сетка, Data Lens, locked, культура, вкладка «Код» для скрипта отчёта.

searchlight/darkexport

Просмотрщик

Лента страниц, поиск с подсветкой, экспорт и печать, светлая/тёмная тема, эскизы страниц, режим чтения, «Назад к оглавлению» после перехода по якорю.

.mrt.frxStimulsoftFastReport

Перенос шаблонов

Импорт StimulSoft (.mrt) и FastReport (.frx) в AurumTemplate: банды, text/image, шрифты, рамки, bindings, locked, скрипты, культура, метаданные.

100k ≈ 1.5 s1M ≈ 2 s (Bun)

Производительность: 100 тыс и миллион ячеек

Стресс-тесты движка (в примерах — отдельная группа): таблица 100 000 ячеек (10 000 строк × 10 колонок, 182 листа) строится прямо в браузере за ~1,5 с — просмотрщик сам включает виртуализацию (содержимое строится окном вокруг видимой страницы). Миллион ячеек (100 000 × 10, 1819 листов): модель ~1,2 ГБ в браузер не помещается, поэтому отчёт строит сервер и отдаёт страницы готовыми изображениями. Листайте ◄ 1/1819 ►, печатайте или сохраняйте любой лист в PDF/PNG.

in progress

AI в редакторе (в работе)

Панель AI: подсказки по данным и шаблону, помощь в подготовке отчёта (развивается).