Как добавить галочку (checkbox) , связанную с колонкой Sharepoint библиотеки документов, в документ Word.
Задача:
На портале Sharepoint есть библиотека документов. В библиотеке есть логическое поле checkboxcolumn.
В библиотеке документов есть документ Word. Необходимо в тело документа добавить checkbox, связанный с данным полем.
После того как я не смог найти в гугле решение, решил написать пост. А то некоторые пишут, что это невозможно..
Решение.
Короткая версия (для тех, кто понимает, как это в принципе работает):
Проблема на самом деле в том, что если добавлять поля стандартным образом через insertquick parts\ document properties, то у вас получится выпадающий список. Надо выбрать панель XML, найти там указанное поле, и после этого его можно будет добавить в документ как checkbox.
Длинная версия с скриншотами:
Допустим, у нас есть библиотека документов с дополнительной колонкой
Открываем документ на редактирование в Word.
Обычно используют Quick parts, Для простых полей выбираем Insert\Quick parts\Document Property , и получаем список всех колонок SharePoint, возможных для добавления.
Если мы пойдем таким путем в нашем случае, получим выпадающий список.
Чтобы получить желаемый результат, необходимо вспомнить принцип интеграции полей SharePoint с документами Word. (Более подробно см ссылки ниже). Внутри документа Word есть XML с полями, полученными из SharePoint. Когда Вы работаете с документов в SharePoint, происходит автоматическое обновление и синхронизация данного XML. Далее, внутри документа Word есть так называемые Content Controls, которые связаны с источником данных (xpath выражение, ну или по русски, просто конкретное поле внутри xml).
То есть нужно просто найти наше свойство и добавить content control, связанный с ним.
Сначала необходимо убедиться, что в word включена developer toolbar. Если она на включена, то выбираем customize quick access toolbar\more commands, данее выбираем customize ribbon и там кликаем на developr toolbar.
Выбираем XML Mapping pane.
Выбираем https://schemas.microsoft.com/office/2006/metadata/properties .
Находим наше поле, делаем правый клин, выбираем insert content control, выбираем тип (checkbox) и готово!
Ссылки
Using XML Mapping as Part of a Document Generation Solution in Word 2010
Create a rich Word document based on your own custom XML (without the need for XSLT)
Creating Data-Bound Content Controls using the Open XML SDK and LINQ to XML
Walkthrough: Binding Content Controls to Custom XML Parts