Построитель сложных отчетов в Excel

Предлагаю для использования построитель сложных отчетов в Excel.

Задачи которые поставлены перед построителем:

  1. Уменьшить время на создания отчета в Excel. (Экономия времени приблизительно 50%.)
  2. Умение в точности повторять шаблон.
  3. Сделать программирование отчета в Excel сходным с программированием отчета в FastReport-е
  4. Дать пользователю возможность самостоятельно менять начертание отчета.
  5. Убрать из процесса разработки рутинную работу по созданию форматирования отчета.
  6. Добавить в отчет интерактивность.

Детальное описание настроек шаблона и как пользоваться построителем см. в прикрепленных файлах.

Примечания:

  1. Если вносились изменения в сервисы scr_ExcelUtils и scr_DateUtils их нужно соединить с текущими.
  2. scr_ReportScriptTemplate - шаблон скрипта с инструкциями для построения отчета.

Пример отчета:

Нравится

21 комментарий

Исправлена ошибка при вычисленной адреса ячейки с несколькими буквами.

s.mulyava, в ваших сервисах есть доработка окна отчета wnd_ExcelReportEdit, где указывается по шаблону он или нет? Просто в теме http://www.community.terrasoft.ua/blogs/7302#comment-33615 эти доработки есть. Так как мне нужно строить отчет по шаблону, я импортировал сервисы из темы http://www.community.terrasoft.ua/blogs/7302#comment-33615, но так как мне было мало информации по ней, меня отправили на вашу тему) Я импортировал ваши сервисы, и у меня возникла проблема, которая указана в той же теме. В чем может быть дело?

Антон, насколько я понял, Вам не разобрались как прикрепить шаблон к Excel отчету по шаблону.
Для этого Вам необходимо:

1. Создайте новый отчет в разделе "Отчеты", заполните поля: "Название", "Запрос", "Отображать в разделе" и раскройте меню кнопки "Шаблон", нажмите "Изменить шаблон отчета"

1

2. Нажмите "Да" на предложение создать шаблон для отчета.

2

3. Отредактируйте шаблон, так как Вам нужно. На панели инструментов "Надстройки" нажав на кнопку "Вставить поле" Вы можете добавить в шаблон ссылки на данные, которые "вытягиваются" запросом для шаблона.

3

4. К примеру:

4

5. Сохраните шаблон. Нажмите кнопку "Связать с отчетом" и выберите из списка нужный Вам отчет:

5

6. Результат:

6

Спасибо,Дмитрий. Попробую!

Сделал как Вы и сказали, но ничего не поменялось(( Мой шаблон не появляется при запуске отчета

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

При запуске отчета будет сгененирована новая XLS книга на основе шаблона, т.е. шаблон при запуске отчета и не должен "появляться".

Уточните, пожалуйста, следующее: после того как Вы выполнили указанные мною выше действия, если нажать кнопку "Просмотр отчета" в разделе [Отчеты], генерируется ли отчет? Либо укажите ошибки которые возникают.

Спасибо.

После нажатия на кнопку просмотр отчета появл-ся окошко фильтрации, которое я создал в окне редактирования отчета, а потом сам отчет, но в нем не просматриваю моих настроек шаблона. Отсюда у меня вывод, что отчет не связан с шаблоном видимо. Не знаю, прав ли я. С шаблонами впервые работаю.

Антон, так как используется иной функционал построения отчетов чем тот который описан в этой теме, ответил Вам в теме по ссылке: http://www.community.terrasoft.ua/blogs/7302
Предлагаю перевести обсуждения вопроса в эту ветку.

Здравствуйте! Загрузила сервисы для создания печатной формы счета . Но почему то при выводе счета Террасофт зависает.

Каким образом выводить отчет для конкретного счета, а также - деталь 2 (список продуктов в счете)?

Здравствуйте, Марина.

В доработке используется довольно сложная логика построения отчета. Уточните пожалуйста, каким образом Вы строите отчет.
Также попробуйте открыть Excel вручную - возможно всплывает какое либо дополнительное окно, которое необходимо закрыть, чтобы иметь возможность работы с документом. Т.к. окно Excel не отображается, скорее всего Terrasoft и подвисает, ожидая закрытия этого окна.
Также хочу отметить, что в данный момент этот функционал не предназначен для пользователя.

Здравствуйте, Дмитрий!

Делаю как описано в файле ("Описание построителя отчетов").

Создала запрос для отчета. В отчетах (Terrasoft) выбрала Excel. В шаблоне 2 листа, на одном сам шаблон, на другом - разбивка.

Открыла файл с шаблоном, в нем документ (не выведенный отчет), заполнилось только номер счета и дата, а все что ниже осталось вот в таком виде:

...
Плательщик:        <#Деталь 1>.<Клиент>
Грузополучатель: <#Деталь 1>.<Клиент>
...

Здравствуйте, Марина.

На сколько мне известно в данной доработке не используется следующий формат вывода данных в отчет:

Плательщик:        <#Деталь 1>.<Клиент>
Грузополучатель: <#Деталь 1>.<Клиент>

здесь используется датасет, как источник данных

[ds_Account].[OfficialAccountName]

Остальное - либо базовый функционал, либо иная доработка.

"Олейник Дмитрий" написал:

Здравствуйте, Марина.

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

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

Также хочу отметить, что в данный момент этот функционал не предназначен для пользователя.

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки


То есть, табличку(данные с детали) не получится вывести?

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

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

Добрый день, Дмитрий

Вопрос по сервису scr_MacroParser: для него USI = Contracts\Reports\Plan-fact incoming CA\scr_MacroParser.
это значит что только этот сервис нужно загружать в созданный пользователем отчет?
а все остальные сервисы в соответствии с их USI ?

C уважением, Олег

Здравствуйте, Олег.

К сожалению, эта утилита написана один из участников сообщества, и официально она не тестировалась и не поддерживается. Вся информация, которая есть у нас - лишь инструкция от автора. Более того, этот функционал не предназначен для пользователя и может быть использован, если у Вас есть базовые знания языка программирования JScript, конфигурации Террасофт и отладчика.
Подробнее, к сожалению, не могу Вас проконсультировать.

Но по сути: не имеет значения, в какой папке находится сервис. Поиск сервиса идет лишь по названию сервиса: к примеру Scr_MacroParser. Полный путь система определяет самостоятельно.

Как

"Олейник Дмитрий" написал:

Здравствуйте, Олег.

К сожалению, эта утилита написана один из участников сообщества, и официально она не тестировалась и не поддерживается. Вся информация, которая есть у нас - лишь инструкция от автора. Более того, этот функционал не предназначен для пользователя и может быть использован, если у Вас есть базовые знания языка программирования JScript, конфигурации Террасофт и отладчика.

Подробнее, к сожалению, не могу Вас проконсультировать.

Но по сути: не имеет значения, в какой папке находится сервис. Поиск сервиса идет лишь по названию сервиса: к примеру Scr_MacroParser. Полный путь система определяет самостоятельно.

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки

Получается этот сервис привязан к Contracts (Договора). Верно?

Как я понял, сборка этих сервисов обеспечивает включение в отчет Деталь (которая через обратные связи) в виде таблицы из n строк данных.
Вы можете подсказать как это обеспечить?

С уважением, Олег

Нет, этот сервис нужен только для того, чтобы распарсить макросы, а также внутрь него можно добавлять свои какие либо функции, которые потом можно будет использовать в отчете:

[function()] – используется в тех случаях, когда невозможно составить корректный оператор JScript-та. Название функции должно совпадать с названием функции, которая попадает в зону видимости scr_MacroParser 

Здраствуйте, Дмитрий! Я загрузила все скрипты из прилагающегося архива, но в клиентской части не появилась возможность редактирования. Версия TS XRM Distribution 3.4.0

Здравствуйте.

К сожалению, мы не поддерживаем данный функционал, т.к. он был реализован одним из пользователей сообщества, поэтому постичь логику его работы сторонним пользователям достаточно сложно. Все что могу Вам предложить - это попробовать снова, на чистой БД Террасофт, плюс дополнительно внимательно изучить инструкцию от автора.

Также, если это покрывает Вашу задачу, рекомендую Вам воспользоваться другим, уже проверенным на практике и протестированным решением:
http://www.community.terrasoft.ua/blogs/7302

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