Форум пользователей Visio
http://visio.getbb.ru/

Примечания из 2010 в 2013
http://visio.getbb.ru/viewtopic.php?f=29&t=1196
Страница 1 из 1

Автор:  Гость [ 08 авг 2017, 15:27 ]
Заголовок сообщения:  Примечания из 2010 в 2013

Доброго времени суток, уважаемые.
Примечания, которые видны на своих местах в схеме в визио 2007 и 2010, вдруг удивительным образом отсутствуют на схеме в визио 2013.

Вопрос: как их (эти примечания) увидеть на своих законных местах в визио 2013?

Спасибо.

Автор:  Tumanov [ 08 авг 2017, 16:26 ]
Заголовок сообщения:  Re: Примечания из 2010 в 2013

Чувствую, этот вопрос подлежит исследованию :)
Как я понял после быстрого просмотра, в Visio 2007 примечания не были связаны с шейпами. Они относились к странице.
В Visio 2013 примечания связываются с шейпами. (Или могут быть связаны). То есть изменилась структура хранения примечаний.
При конвертировании документа старые примечания прицепить некуда, поэтому они болтаются в углу страницы.
Мне как-то ранее не приходилось заниматься этим вопросом. Нужно будет порыться в интернете. Возможно, искать не на слово Comment, а на слово Annotation.
Если ничего не будет найдено, то скорее всего можно будет придумать программную коррекцию (если это действительно важно). То есть сначала сосканировать примечания в системе Visio 2007, потом правильно позиционировать их в Visio 2013. Естественно, из-за десятка примечаний связываться с этим смысла нет, проще руками переместить.

Автор:  Tumanov [ 08 авг 2017, 16:48 ]
Заголовок сообщения:  Re: Примечания из 2010 в 2013

Порылся в файлах... В новой системе у комментариев нигде нет такого атрибута, как координаты.
Зато появляется идентификатор шейпа (к которому комментарий привязан).

Автор:  Гость [ 08 авг 2017, 17:35 ]
Заголовок сообщения:  Re: Примечания из 2010 в 2013

Спасибо!
Примечаний пара сотен. Не проблема - переделаем ручками.
Главное было определиться - это руки кривые :wall: или так было задумано :twisted:

Автор:  Tumanov [ 08 авг 2017, 19:46 ]
Заголовок сообщения:  Re: Примечания из 2010 в 2013

Я между делом посмотрел, как это выглядело бы программно...
Первая часть простая.
Если сделать вот такой VBS файлик и запускать его на машине, где стоит Visio 2007, то он выберет все комментарии и упакует их в ячейку Data3 документа.
Код:
On Error Resume Next
Err.Clear
Set vApp = GetObject(,"Visio.Application")
If Err.Number > 0 Then
   MsgBox "Visio is not opened"
Else
   On Error Goto 0
   s = ""
   For Each pg In vApp.ActiveDocument.Pages
       s = s & "<Page>"
       n = pg.PageSheet.RowCount(246)
       If n > 0 Then
           s = s & "<Comments>"
           For i = 0 To n - 1
               With pg.PageSheet
                   s = s & "<Comment>"
                   s = s & "<X>" & .CellsSRC(246, i, 0) & "</X>"
                   s = s & "<Y>" & .CellsSRC(246, i, 1) & "</Y>"
                   s = s & "<Date>" & .CellsSRC(246, i, 4) & "</Date>"
                   s = s & "<Text>" & .CellsSRC(246, i, 5).Formula & "</Text>"
                   s = s & "</Comment>"
               End With
           Next
       End If
       s = s & "</Page>"
   Next
   vApp.ActiveDocument.DocumentSheet.Data3 = s
   vApp.ActiveDocument.Save
   MsgBox s
End If

Потом, уже под Visio 2013 нужно другим скриптом проделать обратную операцию. Но тут уже алгоритм неоднозначен и мои опыты кончились :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/