All Forums
 Категория Visio
 Форум Вопросы и ответы
 Gantt Chart, Time line - как убрать из документа ?
Author Previous Topic Topic Next Topic  

bdfy

Belarus
267 Posts

Posted - 09/16/2010 :  16:44:51
В свое время игрался с аддонами под визио. теперь в строке главного меню при открытии документа отображаются Gantt Chart, Time line. рядом с Data Shape Window и т.д. вверх.
элементов таких не чертеже давно нет. Как их убрать из меню ?

Tumanov

Russia
1198 Posts

Posted - 09/16/2010 :  17:27:25
Речь идет о конкретном документе или Visio в целом?
Если в Visio создать новый документ, лишних меню нет?
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 09/16/2010 :  19:09:46
да в конкретном документе.
ни в новых, ни в каких других нет. никаких макросов которые могли бы включать этот пункт тоже с виду нет в документе.
документ обьемный достаточно - страниц много. создавать заново несколько хлопотно.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 09/17/2010 :  15:33:08
Надо попробовать выполнить ThisDocument.ClearCustomMenus
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 09/17/2010 :  23:14:18
неа. не помогло. Причем живучая штука - поставил 2010 визио - все равно в документе присутствуют эти вкладки. более того в визио 2010 все рибоны настраиваемые - но эти два пункта меню я в настройках найти не могу (( парадокс - любые вкладки можно убрать, даже стандартные, а эти не уходят.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 09/18/2010 :  06:40:48
Непонятно. Вроде явно сидит UIObject на уровне документа...
А пришлите мне файлик посмотреть на ttt@post.rzn.ru
Только оставьте в нем один лист и уберите все шейпы, чтоб почту не нагружать :)
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 09/18/2010 :  12:09:36
отправил.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 09/19/2010 :  13:08:14
Получил, посмотрел, пока ничего не придумал.
ThisDocument.ClearCustomMenus на самом деле действует. Меню очищает. Но в документе что-то все равно остается и срабатывает при следующем открытии.
Может создано было не как UIObject, а другим методом... (Пока так и не нашел времени разобраться, как будут взаимодействовать друг с другом интерфейсы, созданные через CommandBars и UIObject) Или происходит какая-то ошибка, мешающая удалить качественно.
Так что сейчас пока ничего больше не скажу. Будет времени побольше - еще поковыряюсь.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 09/19/2010 :  23:59:35
спасибо за попытку )) вообще штука интересная вот чем - можно своего рода "цифровую подпись" так поставить на файле - снять как видно очень и очень непросто :D
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 09/20/2010 :  16:33:53
Посмотрел повнимательнее. Вот что получилось.
1. В документе был 41 Masters. В принципе, какой-то из них мог ссылаться на вызов аддона TimeLine или Gannt Chart, а уже они подгружали соответствующие пункты меню.
2. Возможны какие-то ссылки в VBProjectData. Например, на объекты, которые связаны с теми же аддонами.
3. Есть секция SolutionXML, в которой много имен объектов от указанных аддонов.
4. Маловероятно, но на всякий случай можно отметить еще секции vx:DataConnections и vx:DataRecordSets.
5. Наконец, секция EventList, четырьмя событиями.
В событиях прописаны вот такие Target и TargetArgs:
Microsoft Visio ts /cmd=22
Microsoft Visio ts /cmd=22
Microsoft Visio GC /CMD=2
Microsoft Visio SN "/shape_num=2"
Есть подозрение, что это и есть прямые вызовы аддонов TimeLine, Gannt Chart и, возможно, нумерации шейпов.
Из всех подозрений сработало только последнее.
Сохранил документ в формате vdx, переименовал в xml, открыл в XMLSPY, удалил всю все 4 события из секции EventList, сохранил результат, переименовал обратно в vdx, открыл в Visio, сохранил в vsd.
Все. Лишние пункты меню исчезли. В принципе, EventList можно было почистить и программно, но в XMLSPY показалось быстрее :)
Вывод. ThisDocument.ClearCustomMenus действовала нормально, но прописанный в документе EventList заставлял при загрузке документа грузиться аддоны, которые при каждом открытии вновь довешивали свои пункты меню.
P.S.: События смотрятся макросом:
Sub ttt()
Debug.Print ThisDocument.EventList.Count
Dim Evt As Visio.Event
For Each Evt In ThisDocument.EventList
Debug.Print Evt.Application.name, Evt.Target, Evt.TargetArgs
Next
End Sub
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 09/20/2010 :  19:31:02
стоит добавить "это же элементарно ватсон" (с) %)
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)