Stimulsoft Reports : советы по работе

Волей судьбы уже продолжительное время работаю с системой генерации отчетов Stimulsoft Reports. Это творение позволяет генерировать PDF и другие документы.

Процесс кодинга тут не сложный, методов не много. Но вот создание дизайна в специальной программе Stimulsoft Reports Designer это «что то с чем то». Муторный, долгий и не интересный процесс. То, что я делаю за день в дизайнере, можно сверстать за 30 минут с помощью html, но «корпоративщине» нужны PDF, поэтому приходится сидеть и карпеть над дизайном PDF. У меня накопилось несколько полезных советов по работе со «стимулом», которые я бы хотел где то сохранить , поэтому просто напишу в блог.

Stimulsoft reports designer
Stimulsoft reports designer

Вот как выглядит дизайнер .mrt файлов:

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

Никогда ничего не вычисляйте, не генерируйте и не трансформируйте в отчёте Stimulsoft Reports

Лучшее место для этих действий – ваш язык программирования. Отделите всю логику от view (файл .mrt отчёта). Удобный подход –  писать специальные классы или хранимые процедуры и использовать их в качестве view models. И так, чтобы отчёт просто показывал поля этих классов. Никаких операций над данными в отчёте!

У каждого элемента есть свойство «Стиль стыковки»

С помощью этого свойства очень просто формировать расположение данных, есть возможность выбрать «сверху», «справа» и тд. Я обычно кидаю на форму элемент «Панель»,  ставлю для неё значение «Вверху», а потом уже в этой панеле несколько текстовых блоков, каждый из которых со своим значением свойства «Стиль стыковки». Панели соответственно лежат в «бэндах». Таким образом удается добиться упорядоченного отображения элементов друг под другом.

Регистрация бизнес объектов на C#

В Stimulsoft reports есть возможность передавать в отчет C# классы. Для этого нужно их зарегистрировать, после чего они будут доступны в отчете. Делается следующим образом:

После этого в словаре во вкладке Бизнес-объекты появятся зарегистрированные в коде объекты. Удобно регистрировать объекты, потом вызывать метод report.Design() и манипулировать отчётом в интерактивном режиме, данные в таком случае будут доступны и можно просто нажимать на вкладку «Предварительный просмотр» чтобы в реалтайме видеть изменения.

Запуск отчета в режиме дизайна прямо из кода:

Как открыть скомпилированный отчёт из кода, если у вас не веб приложение, а например консольное

И да, не забудьте подключить Stimulsoft.Report.Win.dll

Как вставить электронную почту в отчет Stimulsoft

Дизайнер реализован так, что работать с частью текста нельзя (Или я не нашёл!?) . Простой кейс — вставить в текст ссылку на email. Но не тут то было! Нельзя просто так взять и вставить ссылку! Свойства навешиваются на весь текстовый элемент, и чтобы вставить ссылку, нужно создать отдельный текстовый блок, залить текст синим цветом чтобы он походил на ссылку, а потом вставить нужный код по следующему пути:

Поведение – Взаимодействие – Гиперссылка и вставляем таким образом

mailto: blabla@bla.com

И только после этого создастся ссылка, и то не настоящая, а эмулированная =). Печально!

Как сделать паддинг (отступ) сверху

У элементов в свойствах «Текст, дополнительные» есть свойство «Поля», именно там задаются паддинги (отступы). Но почему то реализовано так, что чтобы добавить паддинг сверху равный 10, нужно ввести последовательность цифр такого формата  — 0;0;10;0.  Почему так ? Почему не сделать как в html чтобы паддинг начинался поочередно от верхнего, правого, нижнего и левого края!? Странное решение.

Как вывести «что то» под таблицей (Бэнд «Данные») чтобы это «что то» не повторялось

Используйте бэнд «Итог данных». Он создан чтобы выводиться сразу под таблицей с основными данными. Путь вывода таблицы(читай листа с c#) такой:

  • Бэнд «Заголовок данных» — тут описываются заголовки таблицы
  • Бэнд «Данные» — тут вывод самих данных
  • Бэнд «Итог данных» — тут информация которая должна быть выведена после таблицы единожды

 

Также можно почитать: