Тема: Nav2Word
Показать сообщение отдельно
Старый 07.12.2018, 16:55   #4  
nicotine is offline
nicotine
Участник
 
50 / 35 (2) +++
Регистрация: 15.12.2010
Цитата:
Сообщение от Sancho Посмотреть сообщение
а по поводу старших версий не уверен, что подойдет стандарт.
Разве стандарт позволит печатать или не печатать, скажем третий пункт договора (при этом сохранив нумерацию) в зависимости от, например, учетной группы клиента?
если да - пример настройки в студию
"это можно сделать используя стандарт + небольшие модификации."

Если описывать кратко, то:
1. По моему начиная с 2015 есть Custom Report Layout (Пользовательские макеты отчетов) с помощью которых можно настроить макет в Word для любого отчета (указать соответствие между XML схемой навика и шаблоном Word). Таких макетов на один отчет может быть несколько. Это стандарт

2. в таблице 77 - Report Selections есть функции PrintWithGUIYesNo, PrintWithDocPrintOption и т.д. которые вызываются при нажатии кнопки печать в большинстве случаев (например заказ покупки, продажи и т.д.) в этих функциях, в том числе, определяется, какой макет используется для отчета. Для этого используется временная таблица TempReportSelections (77).

3. В указанных выше функциях мы вызываем свою функцию, которая заполняет временную таблицу TempReportSelections. Написанная функция по переданной записи (по значению полей записи) определяет какие пользовательские макет подходят.

4. Далее отрабатывает стандартный функционал

что в итоге приходится создавать:
1. Сделать свою таблицу соответствия - таблица, фильтр, номер отчета, пользовательский макет
2. В этой таблице написать функцию, которая по переданной записи определит какие макеты подходят и вернет результат в виде временной таблицы Report Selections (77)
3. Page для созданной таблицы

Что в итоге приходится модифицировать:
1. В нескольких функциях таблицы 77 добавить вызов своей функции

т.е. модификации стандартных объектов минимальны.
Использование Пользовательских макетов отчетов достаточно просто, при этом в самом макете можно использовать все возможности Word для форматирования.

Теперь про приведенный пример (при условии небольших модификаций описанных выше):
1. Создаем два пользовательских макета (шаблона word) с разным текстом (один с пунктом 3, другой без него) и привязываем к одному отчету
2. В своей таблице настроек привязываем макеты к условиям отбора (фильтрам)

В стандарте есть пример выбора макета в зависимости от фильтров (номера клиента или поставщика) - это профиль отправки документов (Document Sending Profile) там (в коде) можно посмотреть как работает выбор макета отчета
За это сообщение автора поблагодарили: Sancho (1).