Хранение Mrt в Visual Studio

Обсуждение Stimulsoft Reports.NET
Ответить
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Хранение Mrt в Visual Studio

Сообщение kavit »

Добрый день.

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

1. Mrt шаблон расположен в ресурсах Visual Studio (resx) как файл. Хранение шаблона mrt в виде файла, дает возможно видеть в git изменения, какие происходят с шаблоном при разработке ПО.
2. Шаблон использует бизнес-объект, представленный классом (ClassA). Свойства класса могут меняться в процессе развития продукта (переименование свойств, добавление, удаление). Чтобы MRT-шаблон содержал модель бизнес-объекта, с полями, соответствующим свойствам класса, используются подходы
2.1 в дизайнере Stimulsoft редактируется файл mrt-шаблона. Руками добавляются новые поля
2.2 на основании класса генерируется (с использованием T4) словарь (файл *.dic), который потом загружается руками в дизайнере Stimulsoft в шаблон (Словарь-Действия-Добавить словарь)

Вопрос: Как автоматизировать синхронизацию свойств класса = модель бизнес-объекта в mrt-шаблоне. Например, по Build в VusialStudio? Какие решения вы можете предложить?
Вложения
Схема шаблона.png
Схема шаблона.png (41.71 КБ) 2732 просмотра
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Хранение Mrt в Visual Studio

Сообщение HighAley »

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

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

Код: Выделить всё

report.RegBusinessObject("ClassA", a);
report.Dictionary.SynchronizeBusinessObjects();
Спасибо.
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Re: Хранение Mrt в Visual Studio

Сообщение kavit »

report.RegBusinessObject("ClassA", a);
report.Dictionary.SynchronizeBusinessObjects();
Этот код подразумевает, что при открытии mrt-шаблона при выполнении приложения: report.Design() поля будут присутствовать. Но нужно другое. Если вы откроете исходный шаблон mrt в дизайнере (Designer.exe) для редактирования (например, добавить колонку в таблицу или добавить текстовое поле), то в mrt-шаблоне не будет новых полей, добавленных в класс

Вопрос как синхронизировать поля в процессе разработки проекта в VisualStudio. Например, в исходный класс добавляются новые поля. Каким образом эти поля смогут появиться в mrt-шаблоне?
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Хранение Mrt в Visual Studio

Сообщение HighAley »

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

вы можете выполнять этот код после изменения вашего класса и сохранять шаблон отчёта. После этого при открытии его в Дизайнере (Designer.exe) вы уже увидите новые поля.

Спасибо.
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Re: Хранение Mrt в Visual Studio

Сообщение kavit »

Посмотрите, пожалуйста, на картинку. Я ее специально рисовал, чтобы наглядней объяснить сложный вопрос.
Вопрос касается процесса разработки в VisualStudio (левая часть картинки). В этом режиме код не выполняется, он только пишется, сохраняется в git и билдится на билд-сервере.

Т.о. в процессе разработки, изменения в классах (например, добавления полей) не влияют на состояния mrt-шаблона. После того, как собранное на билд-сервере ПО уходит в конечным пользователям.
Т.о. пользователи получают: новые классы (с новыми полями) и старый шаблон (новые поля в который никто не добавлял)

Вопрос: как автоматизировать процесс синхронизации свойств класса и содержимого mrt-шаблона. Какие методики вы предлагаете разработчикам?
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Хранение Mrt в Visual Studio

Сообщение Aleksey »

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

К сожалению, у нас нет такой функциональности.
Вам необходимо заново заново зарегистрировать ваши объекты в отчет и выполнить синхронизацию полей.

Спасибо.
Ответить