Freigeben über


Как добавить галочку (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

   

Word Content Control Toolkit