Публикация

Формирование печатных форм Excel по шаблону

Всем привет!
Не знаю как кому, но при разработке проектов этой возможности очень не хватает в "тройке". Я имею в виду формирование отчетов/печатных форм в Excel, используя пользовательские запросы по определенному шаблону, как это реализовано в пользовательских отчетах Word.

Детально описывать этот функционал я не буду, поскольку он довольно сложный. Главное, чтобы он работал как надо.
С этим постом идет архив, в котором помимо сервисов есть небольшой Readme-документ, который я скопирую сюда.

ВНИМАНИЕ!
Загружать сервисы из архива необходимо, если Вы уверены, что в них Вы не делали никаких изменений. Иначе Ваши изменения будут затерты.

Порядок загрузки:
1. Настоятельно рекомендуется сделать бекап базы.
2. Загрузить сервис таблицы отчетов tbl_Report.xml. В эту таблицу добавлен признак "IsExcelReportByTemplate" ("Отчет по шаблону").
3. Загрузить остальные сервисы. Порядок их загрузки не важен.

P.S.: Как это обычно бывает, этот функционал не совершенен. Например, не реализована вставка табличных данных, что, наверное, тоже необходимо. Просто на момент написания этого функционала такой задачи не было и просто нужны были вставки в готовые шаблоны из настраиваемого пользовательского запроса. Так что, если кто-то захочет доработать эту "вещь", милости прошу. Тогда не забывайте делиться с "жителями" комьюнити. :)

Нравится

Поделиться

34 комментария

Thank You !
Really good thing, we will try it :)

Спасибо :)

Скажите пожалуйста для всех ли версий подойдёт данный хак? Потому как в моём tbl_Report помимо добавленого Вами поля отсутствует поле "FilterField" Caption="Поле фильтрации"

Пробовал только на 3.3.2. По поводу 3.3.1 - не пробовал. В самой настройке отчета Excel это поле FilterField не участвует. Оставлено было только то, что на мой взгляд, было нужно: название отчета, пользовательский запрос, признак того, что отчет будет формироваться по шаблону и раздел, в котором будет выводиться этот отчет. Не более того. Поэтому, по идее, должно работать и на 3.3.1 (лишь бы сервис загрузился, т.к. его формат, по моему, менялся). Чтобы проверить, лучше сделайте бекап и вперед. Пробуйте, одним словом.

А где примеры можно посмотреть как делать такой отчет по шаблону?

Вы имеете в виду видео как пользоваться этим инструментом? Или просто шаблон Excel-файла? Ни того, ни другого нет. На самом деле, если Вы пользовались/строили пользовательские отчеты Word, то работа с этим механизмом абсолютно идентична:
1. Создать запрос в разделе "Запросы"
2. Создать настройку/запись в разделе "Отчеты", указав тип "Excel", раздел, в котором будет отображаться этот отчет.
3. Создать шаблон отчета Excel
4. В шаблоне подключиться к конфигурации Террасофта
5. Установить расположение полей из Вашего запроса (поля будут отображаться в виде макросов)
6. Отформатировать этот шаблон как Вам нужно и сохранить его
7. Все. Запускаете отчет в том разделе, который был указан на шаге 2.

Спасибо за информацию. Да мне именно это и нужно. Пользовательские отчеты Word не строил ни разу. С 3-го пункта не знаю как делать - как создать шаблон и далее... Поясните пож-ста как это делается!

Здравствуйте, Антон!

Для того, чтобы создать шаблон, необходимо:

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

"S.Kalishenko" написал:

На самом деле, если Вы пользовались/строили пользовательские отчеты Word, то работа с этим механизмом абсолютно идентична:

1. Создать запрос в разделе "Запросы"

2. Создать настройку/запись в разделе "Отчеты", указав тип "Excel", раздел, в котором будет отображаться этот отчет.

3. Создать шаблон отчета Excel

4. В шаблоне подключиться к конфигурации Террасофта

5. Установить расположение полей из Вашего запроса (поля будут отображаться в виде макросов)

6. Отформатировать этот шаблон как Вам нужно и сохранить его

7. Все. Запускаете отчет в том разделе, который был указан на шаге 2.

не ясно как создать шаблон для отчета. Первые 2 пункта я сделал.А как сделать 3-ий и 4-ый?
В карточке отчета нажал "Изменить шаблон", сохранил Exel документ, дальше по интуиции нажал:
1
Но после запуска отчета шаблон не запустился.. А появились просто данные из запроса. Что я делаю не так? подскажите пож-ста

Прошу прощения, не все скрипты были загружены.Кстати в CRM 3.4.0.87 нет скрипта scr_ExcelUtils, я его загружал, как указано в теме http://www.community.terrasoft.ru/forum/topic/7662

Шаблон создал, и пишет что для отчета создан шаблон. Но при запуске отчета из раздела Отчеты шаблон не появляется.А при запуске из раздела, в котором нах-ся отчет, вообще ничего не происходит((

Нет, все же у меня не получается прикрепить шаблон к отчету! что для этого нужно?

Антон, вы ознакомились с примером шаблона, прикрепленным в соответствующей теме?

http://www.community.terrasoft.ru/forum/topic/7662

Вам следует создать шаблон Excel и загрузить его в базу данных, воспользовавшись соответствующим пунктом меню.

Корректное сохранение нового шаблона, создаваемого в Terrasoft требует настроенной интеграции с Excel и запущенной надстройки:

20

"Alimova Anna" написал:

Вам следует создать шаблон Excel и загрузить его в базу данных, воспользовавшись соответствующим пунктом меню.

Корректное сохранение нового шаблона, создаваемого в Terrasoft требует настроенной интеграции с Excel и запущенной надстройки:


Анна, а интеграция с Excel настраивается отдельно или при установке TS это идет по умолчанию?
Я так пробовал:
21

Не получается

Здравствуйте, Антон.

Предлагаю провести сеанс удаленного подключения к Вашему рабочему месту для разрешения проблемы.
Пожалуйста, сообщите удобную для Вас дату и время.

Хорошо, буду очень благодарен! Могу сегодня после обеда, с 13.30.

Дмитрий, мой скайп ant.kan89, удобнее будет договориться!

А шаблон EXEL то должен быть в формате xlsx? Если да, то почему при выборе загрузки в БД
2
тип Word?

Проблема с сохранениям шаблона для отчета была решена в ходе удаленного подключения.

Последний вопрос: Можно ли в одном отчете иметь 2 таблицы, раздельные, и было бы хорошо разделить фильтры в окне фильтрации, чтобы фильтровать данные 2 таблиц. Возможно ли это в пользовательском запросе? отчет все тот же, по шаблону Excel

Здравствуйте, Антон! Как мы уже обсуждали, использовать в шаблоне (и как в следствие в отчете) две таблицы можно, однако заполнить их данными можно только из одного пользовательского запроса. Соответственно, разделять фильтры в окне фильтрации нет необходимости, так как все они относятся к одному запросу, только к разным полям.

В продолжение темы. Для версии 3.4

Добрый день.
Подскажите с какими версиями Excel тестировался функционал создания отчета по шаблону?

"Кошкаров Андрей" написал:Добрый день.
Подскажите с какими версиями Excel тестировался функционал создания отчета по шаблону?

Тестировалось на MS Excel 2007.

Добрый день.
У нас весия 3.2.0.
Попробовала загрузить сервисы - при загрузке выдает ошибку:
Error executing script method 'wnd_MainOnPrepare'. Information for service 'scr_UserReportConsts' not found.
Скажите, пожалуйста, есть шанс использовать данный функционал в нашей версии?

Здравствуйте, Наринэ!

Вопрос переноса сервисов на версию 3.2.0 ранее не рассматривался. Для того, чтобы их перенести, необходимо действовать по следующему алгоритму:

1. Найти сервисы с аналогичными именами в коробочной базе данных 3.2.0

2. Одинаковые сервисы сравнить специальной утилитой (например, Araxis Merge). В зависимости от результата либо провести слияние (перенести измененные фрагменты программного кода) либо реализовать какие-то части заново.

3. Протестировать функциональность, в зависимости от результата, может потребоваться еще перенос некоторой коробочной функциональности с 3.3.2.

Применение данных серсисов к версии 3.2.0 может быть выполнено в рамках проектной доработки.

Здравствуйте! В отчет выгружается только одна запись. Не подскажете, как выгрузить все записи?

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

Здравствуйте.
Проверьте, пожалуйста, пользовательский запрос для отчета - в нем точно не одна запись?
Также, в настройках отчета, режим отображения выбран для выделенных записей или для всех?
Попробуйте запустить отчет прямо из раздела "Отчеты".

В пользовательском запросе несколько записей. Режим отображения выбран для всех записей. Если запустить из раздела "Отчеты", то выводит все записи не по шаблону. Если запустить из интересующего раздела, то выводит одну запись по шаблону. В авторском варианте нельзя выбрать режим для отображения, это поле скрывается при установке галочки "по шаблону". Я просто вытащил это поле. Я так понимаю, скрипт нуждается в доработке. Не подскажете с чего начать? Или, может быть, Вы знаете какое-нибудь готовое решение?

Андрей, еще одно маленькое уточнение - версия у Вас 3.4.0 либо Выше? Если да, уточните, Вы загружали сервисы из этой темы?
http://www.community.terrasoft.ua/blogs/8466

Александр, проверил. Ситуация следующая: если запускать отчет из раздела "Отчеты" он строится не по шаблону.
Если запускать отчет из раздела - он строится по шаблону, но только для одной записи. Нужно изменять логику... Посмотрите и "отдебажте" в скрипте scr_UserReportCommon функцию
function ShowExcelReportByQueryID(QueryID, Workbook, RecordIDs)

Здравствуйте, а где взять архив?

Показать все комментарии