AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2013, 09:46   #1  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Шаблонизатор в Word
Коллеги, приветствую!

Есть 10 основных сущностей, плюс 30 вспомогательных (разные там отношения 1:N), в них 1400 (да, тысяча четыреста) полей примерно.

Нужно сделать 10 печатных форм для экземпляров сущностей... причем, нужно "к четвергу" в качестве макетов печатных форм предлагается использовать экранные формы ("ну вот также, как на экране сделайте")

Делать это через SSRS - смерти подобно (правильно же я оцениваю - месяца два-три, если без ошибок делать и не по ночам? - одно вытаскивание подписей к полям из экранных форм чего стоит)

Текущий рабочий вариант такой:
1. выгружаем автоматически в ворд "рыбу" - шаблон на основе метаданных (типа <Паровоз>Инвентарный номер: [Name]</Паровоз>, плюс циклы и т.п.)
2. отдаем пользователю, чтобы он там расставил по местам поля, добавил картинок в шапку, раскрасил.. ну в общем чтобы ни в чем себе не отказывал, лишь бы порядок "тегов" не сильно нарушил.
3. рендерим записи прямо в ворд - получается то же самое, что пользователь собственноручно захотел.

В идеале работа с таким инструментом выглядит уже не так страшно как с SSRS на 1400 полей...

Собственно вопрос - есть ли такие инструменты? или может быть альтернативные способы решить задачу быстро и с перекладыванием проверки ошибок на пользователя (т.к. только он знает, как ему надо в печатной форме)?

Ворд тут хорош тем, что разметку можно пользователю отдать на откуп, а вообще HTML-ный шаблонизатор тоже подошел бы наверное. Главное - выгрузить поля с подписями и иерархией связанных записей из метаданных автоматически , а потом иметь возможность расставить как надо.
Старый 14.05.2013, 10:00   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Есть такая функция - слияние в Word. Выглядит практически так же как вам нужно. У нее есть ограничение: слияние может брать данные только из самой сущности, а так же тех, на которые она ссылается.

Для того чтобы ей воспользоваться, нужно разрешить "Слияние" в настройках объекта (по умолчанию разрешено), после чего на форме и в списках будет доступна кнопка "Слияние почты".
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 14.05.2013, 10:32   #3  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
А с помощью слияния можно вывести табличку связанных сущностей? или хотя бы не табличку а все карточки связанных сущностей? Например у Паровоза будет шапка и потом Колесо1 (степень износа: 5%), Колесо2 (степень износа: 80%)
Старый 14.05.2013, 11:36   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Нет, и я об этом уже написал. Вы можете сделать слияние по вашим колесам и в него вытащить нужные поля из паровоза. Чуть сложнее, но получится.

Если же вам в том же документе нужны не только колеса, но и вагоны, тогда, боюсь, слияние уже будет бесполезно
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Алексей Калистратов (1).
Старый 14.05.2013, 12:00   #5  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Еще связанный вопрос - есть ли какой то API к разметке формы полями и надписями? Чтобы можно было, например, выгрузить "рыбу" в ворд с максимально правильным порядком полей?

Или, будь такое API, можно было бы сделать кнопку "версия для печати", которая поддерживала бы и связанные сущности тоже. Вобщем этот весь сырбор с вордом по сути из-за того, что нельзя распечатать форму вместе с формами связанных с ней записей.
Старый 14.05.2013, 12:17   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
API есть у всех продуктов MS. Если решать задачу на форме, можно попробовать сделать по аналогии с http://www.axforum.info/forums/blog.php?b=106. Где-то на форуме есть пример, как можно формировать документ word скриптом по шаблону, но это весьма грязная магия. Лучше делать это на сервере.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 14.05.2013, 12:25   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Вот еще пример: Проблемы с выгрузкой из CRM в Word
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 14.05.2013, 13:11   #8  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Прошу прощения, не точно сформулировал - нужен API, который вернет разметку формы полями - например в XML-формате, что-то типа <форма сущность="Паровоз"><шапка>.... </форма>.

Решения по ссылкам хороши, но
1. ActiveXObject не работает нигде, кроме IE, а к скорости хрома после UR12 пользователи привыкают мгновенно.
2. Нужно чуть более комплексное решение - от выгрузки "рыбы" шаблона, до рендеринга. Я видел на javascript-e только небольшие примеры выгрузки пары значений в ворд, имена которых зашиты в код. Это работает, да, но тут другой масштаб, важно не просто выгрузить, а еще и ничего не перепутать, и "чтобы было как на форме", и не свихнуться двигая квадратики по холсту в Report Designer'e....
Старый 14.05.2013, 14:08   #9  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
ActiveX для chrome
__________________
Читайте SDK!!!
Старый 14.05.2013, 18:16   #10  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Цитата:
ActiveX для chrome
К сожалению - эта штука лишь создает видимость хрома. Под капотом там IE.
Старый 14.05.2013, 20:13   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Коллега, целью данного примера было показать сам API. Мне такие подходы тоже не нравятся. Правильное решение: создать серверное веб приложение для генерации готового документа и выдавать его по кнопке.
По вашим вопросам я делаю вывод, что вы как миннимум слабо знакомы с технологиями MS, и, очевидно, не программист, иначе свой вопрос вы задавали бы поисковику MSDN. Получить то что вы хотите можно, но делать это совершенно незачем. Форма - это лишь способ отображения информации (еще есть список, верно?), вам все равно нужно будет получить сами данные, чтобы наполнить нужный вам XML, который вы, очевидно, собираетесь потом парсить чтобы загнать в Word или отчет. Словом, начните с чтения SDK по CRM. Когда вам станет понятно как получить из системы данные, мы сможем продолжить относительно того, как засунутьэто хозяйство в Word.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 15.05.2013, 14:05   #12  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Цитата:
Правильное решение: создать серверное веб приложение для генерации готового документа и выдавать его по кнопке.
Согласен. А не знает ли кто то из аудитории форума, такого или похожего, уже готового?


Цитата:
По вашим вопросам я делаю вывод, что вы как миннимум слабо знакомы с технологиями MS, и, очевидно, не программист, иначе свой вопрос вы задавали бы поисковику MSDN.
Спасибо за наводку. Вроде то, что нужно называется "FormXML".

Цитата:
Получить то что вы хотите можно, но делать это совершенно незачем. Форма - это лишь способ отображения информации (еще есть список, верно?),
Мне нужно вот зачем - форма сущности уже создана и заказчику нравится. Он говорит "На печати мне надо также как на форме". Естественное желание "скопировать дизайн", а не перерисовывать его руками.

Цитата:
вам все равно нужно будет получить сами данные, чтобы наполнить нужный вам XML, который вы, очевидно, собираетесь потом парсить чтобы загнать в Word или отчет.
Безусловно!

Цитата:
Словом, начните с чтения SDK по CRM.
Спасибо!

Цитата:
Когда вам станет понятно как получить из системы данные, мы сможем продолжить относительно того, как засунуть это хозяйство в Word.
Текущее понимание такое:

1. делаем RetrieveEntityRequest для получения информации о связанных с нашей сущностях

2. делаем RetrieveRequest для получения экземпляра сущности, над которой пользователь нажал кнопку, вместе со связанными с ней сущностями

3. всё - данные получены - можно обходить атрибуты и выводить их значения в ворд, а также обходить связанные сущности и их также выводить в ворд
Старый 15.05.2013, 15:47   #13  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
Согласен. А не знает ли кто то из аудитории форума, такого или похожего, уже готового?
Похожие готовые решения есть, например у Sonoma Partners: http://www.youtube.com/watch?v=SicDZjvrmHc. Однако готовые решения могут не подойти.
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
Мне нужно вот зачем - форма сущности уже создана и заказчику нравится. Он говорит "На печати мне надо также как на форме". Естественное желание "скопировать дизайн", а не перерисовывать его руками.
Есть стандартная опция печати формы. Компоновка будет один к одному. Опция доступна в меню Файл - Предварительный просмотр печати. Есть готовое решение, как вытащить кнопку на свет: http://www.axforum.info/forums/blog.php?b=339
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 15.05.2013, 16:51   #14  
Fighter is offline
Fighter
Участник
Аватар для Fighter
 
108 / 31 (2) +++
Регистрация: 26.07.2011
Адрес: Kyiv
Записей в блоге: 12
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
Коллеги, приветствую!

Есть 10 основных сущностей, плюс 30 вспомогательных (разные там отношения 1:N), в них 1400 (да, тысяча четыреста) полей примерно.

....

Делать это через SSRS - смерти подобно (правильно же я оцениваю - месяца два-три, если без ошибок делать и не по ночам? - одно вытаскивание подписей к полям из экранных форм чего стоит)
Имхо, велосипед называется FetchXML + BIDS (Business Intelligence Development Studio). При наличии навыков работы с BIDS все делается очень быстро, быстрее даже чем слияние почты на основе шаблонов Word, и возможности по выборке/группированию/сортировке намного шире.

Я думаю, что наверняка "хотелки" заказчика расширяться, и он начнет требовать не просто экранную копию формы и данные, которые есть в форме, а чего-то большего... В этом случае редактирование отчета в BIDS даст как раз необходимую гибкость.
__________________
Материалы для внедренцев Microsoft Dynamics CRM теперь на сайте Infoleat.com и в моем блоге CRM для бизнеса
За это сообщение автора поблагодарили: Алексей Калистратов (1).
Старый 16.05.2013, 00:11   #15  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Цитата:
Есть стандартная опция печати формы. Компоновка будет один к одному.
Если можно было бы вывести на печать текущую форму плюс формы всех связанных с ней сущностей - это был бы хороший вариант. Сейчас же нельзя так?
Старый 16.05.2013, 11:01   #16  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
Если можно было бы вывести на печать текущую форму плюс формы всех связанных с ней сущностей - это был бы хороший вариант. Сейчас же нельзя так?
Для CRM2011: открываете форму карточки, далее в меню: "Файл" - "Предварительный просмотр печати" - PROFIT
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 16.05.2013, 17:45   #17  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Цитата:
Для CRM2011: открываете форму карточки, далее в меню: "Файл" - "Предварительный просмотр печати" - PROFIT
CRM2011, да.

Открываю предварительный просмотр, скажем "Организации", у которой есть еще пять контактов. Так вот мне нужно, чтобы на печать выводилась и форма организации, и формы всех пятерых контактов. У меня сейчас выводится только форма организации, а контакты лишь в табличке, а не их формами.

Правильно я понимаю, что как-то можно настроить вывод на печать и связанных записей тоже?
Старый 16.05.2013, 17:57   #18  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
CRM2011, да.

Открываю предварительный просмотр, скажем "Организации", у которой есть еще пять контактов. Так вот мне нужно, чтобы на печать выводилась и форма организации, и формы всех пятерых контактов. У меня сейчас выводится только форма организации, а контакты лишь в табличке, а не их формами.

Правильно я понимаю, что как-то можно настроить вывод на печать и связанных записей тоже?
Как сказал Fighter -
Цитата:
При наличии навыков работы с BIDS все делается очень быстро
Насчет того, что это выйдет быстро я сомневаюсь. Но результат вы получите какой Вам надо.
Но есть очень одна не простая проблема в вашем случае. Страница ворда не резиновая, а эффективность работы, распечатывая 5 страниц с формами контактов, является сомнительной. ИМХО
За это сообщение автора поблагодарили: Алексей Калистратов (1).
Старый 17.05.2013, 11:19   #19  
Алексей Калистратов is offline
Алексей Калистратов
Участник
 
36 / 12 (1) ++
Регистрация: 02.05.2012
Цитата:
Но есть очень одна не простая проблема в вашем случае. Страница ворда не резиновая, а эффективность работы, распечатывая 5 страниц с формами контактов, является сомнительной. ИМХО
там предметная область другая, распечатка "шапки" в виде основной сущности и кучи связанных сущностей - вполне осознанная необходимость.
Старый 17.05.2013, 12:17   #20  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Цитата:
Сообщение от Алексей Калистратов Посмотреть сообщение
там предметная область другая, распечатка "шапки" в виде основной сущности и кучи связанных сущностей - вполне осознанная необходимость.
Не могли бы вы выложить пример того, что Вам нудно сделать???
А то на пальцах, я трудно понимаю
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gustafwesterlund: Creating quotes in word Blog bot Dynamics CRM: Blogs 0 22.10.2012 11:11
вопрос по шаблонам слияния почты для word 2007 Cielo Dynamics CRM: Функционал 15 30.06.2009 17:58
Microsoft Dynamics CRM Team Blog: Microsoft Word Proposal for Microsoft Dynamics CRM Online Blog bot Dynamics CRM: Blogs 0 28.08.2008 00:17
Microsoft Dynamics CRM Team Blog: MS Word Proposal for CRM Online Blog bot Dynamics CRM: Blogs 0 12.08.2008 04:07
Проблема запуска MS WORD AlekseyS Dynamics CRM: Разработка 15 07.08.2008 00:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:00.