|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - документооборот на sharepoint 2010 и word 2010 |
|
2010 - документооборот на sharepoint 2010 и word 2010
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать Приветствую! Помогите, пожалуйста, разобраться с проблемой.
Есть портал на Sharepoint 2010. В одной из библиотек реализовано хранилище описания иерархических сущностей: папка объекта 1 -описание объекта 1 -папка объекта 1.1 --описание объекта 1.1 --папка объекта 1.1.1 ---описание объекта 1.1.1 Количество объектов на каждом уровне произвольно. Описания вложенных объектов перетаскивают в описания вышестоящих руками (описание объекта 1 содержит уникальный текст + описание всех вложенных объектов). Придумал решение по оптимизации: создаем типы контента для каждого уровня и вешаем на них шаблоны. создаем списки для каждого типа контента. при создании нового объекта указываем его положение в иерархии (выбором вышестоящих объектов). после создания в библиотеке появляются соответствующие изменения иерархии. Документы связаны друг с другом посредством использования поля {link}. Это позволяет в каждом документе иметь только уникальный текст + подтянутое содержимое описаний вложенных объектов. Так вот основная проблема в автоматическом создании и обновлении этих полей, ведь иерархию мы меняем. Придумал для типов контента многострочное текстовое поле "Ссылка", куда складываю через разделитель ссылки на все вложенные документы. Плюс, создал скрипт на VBA и повесил его на шаблоны. Скрипт берет значение поля "Ссылка", парсит и генерит поля {link}. Вот он скрипт: Sub LinkCreator() ' ' DocCreator Макрос ' ' Dim Property As MetaProperty Dim Properties As MetaProperties Dim rng As Range Dim fld As field Dim par As Paragraph Dim links() As String Dim linkfield As field ' парсим строку "ссылки" в массив Set Properties = ActiveDocument.ContentTypeProperties For Each Property In Properties If Property.Name = "Ссылка" Then links = Split(Property.Value, ";") End If Next Property 'так как поля такого типа создаются только в макросе, то ищем созданные ранее поля и убиваем их, чтобы создать для новых значений For Each linkfield In ActiveDocument.Fields If (linkfield.Type = wdFieldLink) Then ActiveDocument.Fields(linkfield.Index).Select Selection.Start = Selection.End 'удаляем параграф, чтобы при обновлении наши поля не ползли вниз Selection.Delete 'удаляем "старое" поле linkfield.Delete End If Next linkfield 'вставка новых полей For Each link In links Set rng = ActiveDocument.Range(Start:=ActiveDocument.Range.End - 1, End:=ActiveDocument.Range.End - 1) Set fld = ActiveDocument.Fields.Add(rng, wdFieldRefDoc, link, False) Set rng = ActiveDocument.Range(Start:=ActiveDocument.Range.End - 1, End:=ActiveDocument.Range.End - 1) 'каждое поле с новой строки, поэтому пихаем параграф Set par = ActiveDocument.Paragraphs.Add(rng) Next link End Sub Проблема: формируемые поля имеют вид {link <ссылка>}, без приставки типа документа (word.document.12) и префикса отображения (я использую \h). если добавлять их строкой вместе с ссылкой, то локально на машине все работает (если все действия делаю с пустым шаблоном. как только заполняю его "'элементами управления содержимым", сыпятся ошибки доступа к данным), а вот когда выкладываю на портал, то либо возникает ошибка доступа к данным, на которые ссылаюсь, либо при повторном обновлении полей (старые удаляются) вылетает ошибка "операция не может быть выполнена". Буду рад услышать как коментарии по концепции, так и по коду конкретного решения. Спасибо! |
|
Отправлено: 21:23, 17-02-2012 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
SP1 для Office 2010 и SharePoint 2010 появится в конце июня | OSZone News | Новости и события Microsoft | 0 | 18-05-2011 10:30 | |
Microsoft объявляет о выходе Office 2010 и SharePoint 2010 | OSZone News | Новости и события Microsoft | 0 | 13-05-2010 01:30 | |
Office 2010, SharePoint 2010, Visio 2010 и Project 2010 RTM собраны! | Morpheus | Новости и события Microsoft | 3 | 23-04-2010 09:18 | |
2010 - Организация совместной работы при помощи SharePoint 2010 и Office 2010 | OSZone | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 26-03-2010 16:30 | |
Публичная бета Office 2010 и SharePoint 2010 совсем скоро | OSZone News | Новости и события Microsoft | 0 | 20-10-2009 19:30 |
|