Страница 1 из 1

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

Добавлено: 22 май 2014, 11:23
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? Какие решения вы можете предложить?

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

Добавлено: 23 май 2014, 15:21
HighAley
Здравствуйте.

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

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

report.RegBusinessObject("ClassA", a);
report.Dictionary.SynchronizeBusinessObjects();
Спасибо.

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

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

Вопрос как синхронизировать поля в процессе разработки проекта в VisualStudio. Например, в исходный класс добавляются новые поля. Каким образом эти поля смогут появиться в mrt-шаблоне?

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

Добавлено: 23 май 2014, 17:10
HighAley
Здравствуйте.

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

Спасибо.

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

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

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

Вопрос: как автоматизировать процесс синхронизации свойств класса и содержимого mrt-шаблона. Какие методики вы предлагаете разработчикам?

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

Добавлено: 26 май 2014, 16:13
Aleksey
Здравствуйте,

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

Спасибо.