14.05.2013, 09:46 | #1 |
Участник
|
Шаблонизатор в Word
Коллеги, приветствую!
Есть 10 основных сущностей, плюс 30 вспомогательных (разные там отношения 1:N), в них 1400 (да, тысяча четыреста) полей примерно. Нужно сделать 10 печатных форм для экземпляров сущностей... причем, нужно "к четвергу" в качестве макетов печатных форм предлагается использовать экранные формы ("ну вот также, как на экране сделайте") Делать это через SSRS - смерти подобно (правильно же я оцениваю - месяца два-три, если без ошибок делать и не по ночам? - одно вытаскивание подписей к полям из экранных форм чего стоит) Текущий рабочий вариант такой: 1. выгружаем автоматически в ворд "рыбу" - шаблон на основе метаданных (типа <Паровоз>Инвентарный номер: [Name]</Паровоз>, плюс циклы и т.п.) 2. отдаем пользователю, чтобы он там расставил по местам поля, добавил картинок в шапку, раскрасил.. ну в общем чтобы ни в чем себе не отказывал, лишь бы порядок "тегов" не сильно нарушил. 3. рендерим записи прямо в ворд - получается то же самое, что пользователь собственноручно захотел. В идеале работа с таким инструментом выглядит уже не так страшно как с SSRS на 1400 полей... Собственно вопрос - есть ли такие инструменты? или может быть альтернативные способы решить задачу быстро и с перекладыванием проверки ошибок на пользователя (т.к. только он знает, как ему надо в печатной форме)? Ворд тут хорош тем, что разметку можно пользователю отдать на откуп, а вообще HTML-ный шаблонизатор тоже подошел бы наверное. Главное - выгрузить поля с подписями и иерархией связанных записей из метаданных автоматически , а потом иметь возможность расставить как надо. |
|
14.05.2013, 10:00 | #2 |
Moderator
|
Есть такая функция - слияние в Word. Выглядит практически так же как вам нужно. У нее есть ограничение: слияние может брать данные только из самой сущности, а так же тех, на которые она ссылается.
Для того чтобы ей воспользоваться, нужно разрешить "Слияние" в настройках объекта (по умолчанию разрешено), после чего на форме и в списках будет доступна кнопка "Слияние почты".
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
14.05.2013, 10:32 | #3 |
Участник
|
А с помощью слияния можно вывести табличку связанных сущностей? или хотя бы не табличку а все карточки связанных сущностей? Например у Паровоза будет шапка и потом Колесо1 (степень износа: 5%), Колесо2 (степень износа: 80%)
|
|
14.05.2013, 11:36 | #4 |
Moderator
|
Нет, и я об этом уже написал. Вы можете сделать слияние по вашим колесам и в него вытащить нужные поля из паровоза. Чуть сложнее, но получится.
Если же вам в том же документе нужны не только колеса, но и вагоны, тогда, боюсь, слияние уже будет бесполезно
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: Алексей Калистратов (1). |
14.05.2013, 12:00 | #5 |
Участник
|
Еще связанный вопрос - есть ли какой то API к разметке формы полями и надписями? Чтобы можно было, например, выгрузить "рыбу" в ворд с максимально правильным порядком полей?
Или, будь такое API, можно было бы сделать кнопку "версия для печати", которая поддерживала бы и связанные сущности тоже. Вобщем этот весь сырбор с вордом по сути из-за того, что нельзя распечатать форму вместе с формами связанных с ней записей. |
|
14.05.2013, 12:17 | #6 |
Moderator
|
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 |
Moderator
|
Вот еще пример: Проблемы с выгрузкой из CRM в Word
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
14.05.2013, 13:11 | #8 |
Участник
|
Прошу прощения, не точно сформулировал - нужен API, который вернет разметку формы полями - например в XML-формате, что-то типа <форма сущность="Паровоз"><шапка>.... </форма>.
Решения по ссылкам хороши, но 1. ActiveXObject не работает нигде, кроме IE, а к скорости хрома после UR12 пользователи привыкают мгновенно. 2. Нужно чуть более комплексное решение - от выгрузки "рыбы" шаблона, до рендеринга. Я видел на javascript-e только небольшие примеры выгрузки пары значений в ворд, имена которых зашиты в код. Это работает, да, но тут другой масштаб, важно не просто выгрузить, а еще и ничего не перепутать, и "чтобы было как на форме", и не свихнуться двигая квадратики по холсту в Report Designer'e.... |
|
14.05.2013, 14:08 | #9 |
Участник
|
__________________
Читайте SDK!!! |
|
14.05.2013, 18:16 | #10 |
Участник
|
Цитата:
ActiveX для chrome
|
|
14.05.2013, 20:13 | #11 |
Moderator
|
Коллега, целью данного примера было показать сам API. Мне такие подходы тоже не нравятся. Правильное решение: создать серверное веб приложение для генерации готового документа и выдавать его по кнопке.
По вашим вопросам я делаю вывод, что вы как миннимум слабо знакомы с технологиями MS, и, очевидно, не программист, иначе свой вопрос вы задавали бы поисковику MSDN. Получить то что вы хотите можно, но делать это совершенно незачем. Форма - это лишь способ отображения информации (еще есть список, верно?), вам все равно нужно будет получить сами данные, чтобы наполнить нужный вам XML, который вы, очевидно, собираетесь потом парсить чтобы загнать в Word или отчет. Словом, начните с чтения SDK по CRM. Когда вам станет понятно как получить из системы данные, мы сможем продолжить относительно того, как засунутьэто хозяйство в Word.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
15.05.2013, 14:05 | #12 |
Участник
|
Цитата:
Правильное решение: создать серверное веб приложение для генерации готового документа и выдавать его по кнопке.
Цитата:
По вашим вопросам я делаю вывод, что вы как миннимум слабо знакомы с технологиями MS, и, очевидно, не программист, иначе свой вопрос вы задавали бы поисковику MSDN.
Цитата:
Получить то что вы хотите можно, но делать это совершенно незачем. Форма - это лишь способ отображения информации (еще есть список, верно?),
Цитата:
вам все равно нужно будет получить сами данные, чтобы наполнить нужный вам XML, который вы, очевидно, собираетесь потом парсить чтобы загнать в Word или отчет.
Цитата:
Словом, начните с чтения SDK по CRM.
Цитата:
Когда вам станет понятно как получить из системы данные, мы сможем продолжить относительно того, как засунуть это хозяйство в Word.
1. делаем RetrieveEntityRequest для получения информации о связанных с нашей сущностях 2. делаем RetrieveRequest для получения экземпляра сущности, над которой пользователь нажал кнопку, вместе со связанными с ней сущностями 3. всё - данные получены - можно обходить атрибуты и выводить их значения в ворд, а также обходить связанные сущности и их также выводить в ворд |
|
15.05.2013, 15:47 | #13 |
Moderator
|
Цитата:
Цитата:
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
15.05.2013, 16:51 | #14 |
Участник
|
Цитата:
Сообщение от Алексей Калистратов
Коллеги, приветствую!
Есть 10 основных сущностей, плюс 30 вспомогательных (разные там отношения 1:N), в них 1400 (да, тысяча четыреста) полей примерно. .... Делать это через SSRS - смерти подобно (правильно же я оцениваю - месяца два-три, если без ошибок делать и не по ночам? - одно вытаскивание подписей к полям из экранных форм чего стоит) Я думаю, что наверняка "хотелки" заказчика расширяться, и он начнет требовать не просто экранную копию формы и данные, которые есть в форме, а чего-то большего... В этом случае редактирование отчета в BIDS даст как раз необходимую гибкость.
__________________
Материалы для внедренцев Microsoft Dynamics CRM теперь на сайте Infoleat.com и в моем блоге CRM для бизнеса |
|
|
За это сообщение автора поблагодарили: Алексей Калистратов (1). |
16.05.2013, 00:11 | #15 |
Участник
|
Цитата:
Есть стандартная опция печати формы. Компоновка будет один к одному.
|
|
16.05.2013, 11:01 | #16 |
Заноза в заднице
|
Для CRM2011: открываете форму карточки, далее в меню: "Файл" - "Предварительный просмотр печати" - PROFIT
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
16.05.2013, 17:45 | #17 |
Участник
|
Цитата:
Для CRM2011: открываете форму карточки, далее в меню: "Файл" - "Предварительный просмотр печати" - PROFIT
Открываю предварительный просмотр, скажем "Организации", у которой есть еще пять контактов. Так вот мне нужно, чтобы на печать выводилась и форма организации, и формы всех пятерых контактов. У меня сейчас выводится только форма организации, а контакты лишь в табличке, а не их формами. Правильно я понимаю, что как-то можно настроить вывод на печать и связанных записей тоже? |
|
16.05.2013, 17:57 | #18 |
Еда - топливо, Одежда - н
|
Цитата:
Сообщение от Алексей Калистратов
CRM2011, да.
Открываю предварительный просмотр, скажем "Организации", у которой есть еще пять контактов. Так вот мне нужно, чтобы на печать выводилась и форма организации, и формы всех пятерых контактов. У меня сейчас выводится только форма организации, а контакты лишь в табличке, а не их формами. Правильно я понимаю, что как-то можно настроить вывод на печать и связанных записей тоже? Цитата:
При наличии навыков работы с BIDS все делается очень быстро
Но есть очень одна не простая проблема в вашем случае. Страница ворда не резиновая, а эффективность работы, распечатывая 5 страниц с формами контактов, является сомнительной. ИМХО |
|
|
За это сообщение автора поблагодарили: Алексей Калистратов (1). |
17.05.2013, 11:19 | #19 |
Участник
|
Цитата:
Но есть очень одна не простая проблема в вашем случае. Страница ворда не резиновая, а эффективность работы, распечатывая 5 страниц с формами контактов, является сомнительной. ИМХО
|
|
17.05.2013, 12:17 | #20 |
Еда - топливо, Одежда - н
|
|
|
|
|