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

Смена текущего документа без Src
http://visio.getbb.ru/viewtopic.php?f=6&t=1062
Страница 1 из 1

Автор:  Bill17 [ 15 дек 2016, 12:49 ]
Заголовок сообщения:  Смена текущего документа без Src

Открываю файл для редактирования через OpenEx("Путь к файлу", VisOpenSaveArgs.visOpenRW), затем редактирую и сохраняю документ.
Открываю дальше другой документ, но активным остаётся старый, пробую закрыть старый через Close(), но выдаёт ошибку, что файл сейчас на редактировании.
Собственно, как мне открывать документы на редактирование и менять текущий документ без свойства Src(с ним какие-то проблемы в визио 2016)?

Автор:  Surrogate [ 15 дек 2016, 12:58 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Bill17 писал(а):
Открываю файл для редактирования через OpenEx("Путь к файлу", VisOpenSaveArgs.visOpenRW)
именно документ vsdx ? или стенсил vssx ?
Bill17 писал(а):
затем редактирую и сохраняю документ.
Открываю дальше другой документ, но активным остаётся старый, пробую закрыть старый через Close(), но выдаёт ошибку, что файл сейчас на редактировании.
странно. попробуй закрывать редактируемый документ ДО открытия другого документа !
Bill17 писал(а):
менять текущий документ без свойства Src
не слышал за такое свойство !

Автор:  Bill17 [ 15 дек 2016, 13:04 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Surrogate писал(а):
именно документ vsdx ? или стенсил vssx ?

Именно документ vsdx
Surrogate писал(а):
странно. попробуй закрывать редактируемый документ ДО открытия другого документа !

Собственно так и делаю, говорит, что документ на редактировании и закрывать нельзя. Да, стоит отметить, что я использую VisioControl для открытия документов
Surrogate писал(а):
не слышал за такое свойство !

https://msdn.microsoft.com/en-us/librar ... 2147217396

Автор:  Surrogate [ 15 дек 2016, 13:10 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Surrogate писал(а):
VisOpenSaveArgs.visOpenRW
а это зачем ?
Bill17 писал(а):
Да, стоит отметить, что я использую VisioControl для открытия документов
а это зачем ?

Автор:  Гость [ 15 дек 2016, 13:28 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Surrogate писал(а):
VisOpenSaveArgs.visOpenRW а это зачем ?

Затем, что я этот файл редактирую, хотя можно конечно и просто через Open открывать.
Surrogate писал(а):
а это зачем ?

Ну такая логика программы, я использую AxDrawingControl для работы с документами. В основном для рисования шейпов.

Автор:  Surrogate [ 15 дек 2016, 13:38 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Гость писал(а):
хотя можно конечно и просто через Open открывать.
можно и просто visOpenRW, без VisOpenSaveArgs
Гость писал(а):
Ну такая логика программы
за что я люблю темы от уважаемого Bill17 - в них много уточнений и наводящих вопросов (т.к. постановка задачи весьма туманна; если дается код то не полностью и т.п.), от этого число сообщений растет стремительным домкратом !!!
Гость писал(а):
я использую AxDrawingControl для работы с документами. В основном для рисования шейпов
а что мешает традиционными средствами рисовать шейпы ?

Автор:  Bill17 [ 15 дек 2016, 13:48 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Я знаю, что плохо объясняю, ничего не могу с этим поделать.
В общем использую форму на которой лежит AxDrawingControl.
Первый документ открывается так:
Код:
visioControlWrapper.VisioControl.Window.Application.Documents.OpenEx("Путь к файлу", (short)Visio.VisOpenSaveArgs.visOpenRW);

visioControlWrapper - элемент формы, на котором лежит контрол.
Затем файл редактируется, сохраняется. Закрыть текущий документ не могу, открыть новый тоже не могу, активным остаётся первый документ.
Как мне сменить активный документ?

Автор:  nbelyh [ 15 дек 2016, 13:53 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Почему ты не хочешь использовать Src? Оно было специально добавлено именно для этого (для указания файла для контрола).
А то твое лечение выглядит хуже болезни. То есть, что именно не так с Src в Visio 2016?

Автор:  Bill17 [ 15 дек 2016, 13:59 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

nbelyh писал(а):
Почему ты не хочешь использовать Src? Оно было специально добавлено именно для этого (для указания файла для контрола).
А то твое лечение выглядит хуже болезни. То есть, что именно не так с Src в Visio 2016?

Выставляю программно Src и при любый действиях с документом выдаёт ошибку System.AccessViolationException.
То есть даже бросить шейп нельзя, а если открываю через OpenEx, то всё работает.
Файл рабочий, его можно открыть и редактировать, а через контрол работать не хочет.

Автор:  nbelyh [ 15 дек 2016, 14:05 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Может контрол не той версии Visio?
Например, контрол от 2007 а установленна версия 2016.

В общем я думаю просто переставь Visio может быть?

Автор:  Surrogate [ 15 дек 2016, 14:06 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Bill17 писал(а):
В общем использую форму на которой лежит AxDrawingControl.
вон оно чё, Михалыч! ©
теперь понятно, почему у тебя возникают проблемы которые у обычных пользователей (они просто работают собственно в визио) не возникают!!!

Автор:  Bill17 [ 15 дек 2016, 14:13 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

nbelyh писал(а):
Может контрол не той версии Visio?
Например, контрол от 2007 а установленна версия 2016.

В общем я думаю просто переставь Visio может быть?
Разве можно выбирать версию контрола? Я думал при инициализации версия контрола берётся по версии визио.
Подумаю насчёт переустановки конечно, но хотелось бы обойтись без этого.

Автор:  Tumanov [ 15 дек 2016, 14:42 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Насколько я помню, DrawingControl не позволяет напрямую сохранять редактируемый документ. Он работает с копией.
Посмотрите вот здесь.
Цитата:
When you set the SRC property to load a file into the Visio Drawing Control, the control opens a copy of the file, but does not keep the original file open for writing. As a result, you cannot use the Document.Save method to save changes to a file loaded into the Visio Drawing Control. To save changes in a file, first use the SRC property to load the file into the Visio Drawing Control, and then set SRC to an empty string (""). To save the modified file to disk, use the Document.SaveAs method.
Во всяком случае, раньше было именно так. Не знаю, может в последних версиях что изменилось... Но едва ли.
А если действовать так, как в приведенной цитате, то никаких проблем не возникало. Все работало нормально.

Автор:  Bill17 [ 15 дек 2016, 15:04 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Tumanov писал(а):
Насколько я помню, DrawingControl не позволяет напрямую сохранять редактируемый документ. Он работает с копией.
Посмотрите вот здесь.
Цитата:
When you set the SRC property to load a file into the Visio Drawing Control, the control opens a copy of the file, but does not keep the original file open for writing. As a result, you cannot use the Document.Save method to save changes to a file loaded into the Visio Drawing Control. To save changes in a file, first use the SRC property to load the file into the Visio Drawing Control, and then set SRC to an empty string (""). To save the modified file to disk, use the Document.SaveAs method.
Во всяком случае, раньше было именно так. Не знаю, может в последних версиях что изменилось... Но едва ли.
Так речь в тексте же о свойстве Src, а я хотел бы без него открывать/редактировать документы.

Автор:  Bill17 [ 15 дек 2016, 15:13 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Собственно у меня есть код, который использовал ранее Src и он работает в визио 2010 и 2013, однако в визио 2016 почему-то с этим возникают проблемы.
Кроме переустановки визио есть ли другие варианты?

Автор:  nbelyh [ 15 дек 2016, 16:16 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Можешь попробовать удалить контроль с формы и потом снова добавить. От visio 2016. Если без перестановки.

Автор:  Tumanov [ 15 дек 2016, 16:38 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Ну, в сторону увеличения версии они вроде бы сами подменялись. Это обратно приходилось ручками.
А еще были проблемы с 64-битным офисом. Так как контролы в принципе 32-битные. Но это вроде бы тут ни при чем.
Цитата:
Выставляю программно Src и при любый действиях с документом выдаёт ошибку System.AccessViolationException.

Хотя... может и причем.

Автор:  Bill17 [ 15 дек 2016, 17:00 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Tumanov писал(а):
Ну, в сторону увеличения версии они вроде бы сами подменялись. Это обратно приходилось ручками.
А еще были проблемы с 64-битным офисом. Так как контролы в принципе 32-битные. Но это вроде бы тут ни при чем.
Цитата:
Выставляю программно Src и при любый действиях с документом выдаёт ошибку System.AccessViolationException.

Хотя... может и причем.

Оп, а вот это интересно. Не могу проверить догадку, так как у меня только один комп с визио 2016 и он х64. Это можно как-то исправить?

nbelyh писал(а):
Можешь попробовать удалить контроль с формы и потом снова добавить. От visio 2016. Если без перестановки.

Можно код, пожалуйста? Я не понимаю как определённую версию контрола открыть.

Автор:  nbelyh [ 15 дек 2016, 17:28 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

nbelyh писал(а):
Можно код, пожалуйста? Я не понимаю как определённую версию контрола открыть.


Если ты видишь только один, то проблемы быть не должно. Просто удали его и добавь снова (мышкой). Кажется тупо, но может только кажется :)

Автор:  Tumanov [ 15 дек 2016, 17:53 ]
Заголовок сообщения:  Re: Смена текущего документа без Src

Цитата:
Оп, а вот это интересно. Не могу проверить догадку, так как у меня только один комп с визио 2016 и он х64. Это можно как-то исправить?

В принципе исправить можно. Но долго и противно. Так что если есть возможность проверить, то лучше сначала проверить.
https://support.microsoft.com/en-us/kb/980533
Вот как-то так.

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