All Forums
 Категория Visio
 Форум Вопросы и ответы
 Глобальные переменные можно в shapesheet исп ?
Author Previous Topic Topic Next Topic  

bdfy

Belarus
267 Posts

Posted - 09/25/2008 :  14:02:10
Вот например нужно мне глобальную переменную использовать в Visio для смарт-шейпов. масштабный коэффицент например какой нибудь. один для всех фигур на листе. Как это разумно сделать ?
т.е если я хочу для всех фигур использовать формулы типа
width*GLOBAL_SCALE, height*GLOBAL_SCALE ? как и где определить эту самую глобальную переменную ?

ukreni

Ukraine
35 Posts

Posted - 09/25/2008 :  14:10:27
Как вариант, добавь своей странице Custom Properties - Global_Scale - numeric. Тогда будет - width*ThePage!Prop.Global_Scale, height*ThePage!Prop.Global_Scale и т.д.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 11/25/2008 :  18:29:28
подход вроде верный. только вот если эту глобальную переменную мне нужно прочитать из Excel ?
Go to Top of Page

GDK

Russia
90 Posts

Posted - 11/26/2008 :  15:20:48
Ну и читай из Excel в Custom Properties листа, а твои фигуры пусть пользуются этими Custom Properties.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 11/26/2008 :  19:03:17
quote:
Ну и читай из Excel в Custom Properties листа

как ? имеющиеся тюторы импорта данных эту тему не раскрывают. это раз.
Не получается ссылку на лист вида ThePage!Prop.scale сделать при редактировании мастер-шейпа. (edit master shape окно). в любые другие фигуры проходит , если отредактировать фигуру и сделать из нее мастер - тоже работает. но я то опцию масштаба хочу в уже созданные мастер-шейпы добавить ((
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 11/26/2008 :  19:50:18
Если я правильно понял проблему, то у Вас при попытке ввести формулу в мастер-шейп выскакивает ошибка...
Возможно причина в том, что страница мастер-шейпа (а у него есть своя страница) не имеет такого свойства, на которое Вы пытаетесь ссылаться.
Когда Вы переносите в трафарет шейп, уже имеющий ссылку, со страницы рисунка, свойство со страницы рисунка копируется на страницу шейпа. Поэтому ссылка работает.
Сделайте следующее. Когда откроете мастер-шейп на редактирование, сначала щелкните по его странице, откройте ее шейп-лист и создайте нужное свойство. Потом выделяйте шейп, открывайте уже его шейп-лист и вводите ссылку. Так должно работать.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 11/26/2008 :  20:03:44
да, спасибо. так оно и есть. а как с екселем свойство листа связать ? как на фигуру ведь линк не перетянешь... :)

Edited by - bdfy on 11/26/2008 20:12:43
Go to Top of Page

GDK

Russia
90 Posts

Posted - 11/28/2008 :  14:09:02
Может быть с помощью макроса проще реализовать?
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 11/28/2008 :  19:35:13
да все уже реализовал. дело только за связью свойства листа с внешней ссылкой. макрос для этого городить ? а вызывать его как ? - уж проще тогда руками это число вписывать. но хотелось бы чтоб масштаб этот обновлялся со всеми другими ссылками.

Edited by - bdfy on 11/28/2008 19:35:51
Go to Top of Page

GDK

Russia
90 Posts

Posted - 12/02/2008 :  10:10:17
quote:
дело только за связью свойства листа с внешней ссылкой. макрос для этого городить?

Ну да. Если не стрёмно каждый раз при открытии "чертежа" возиться с окошком, запрашивающим отключить макросы или нет. Кстати и это решаемо с помощью возможности "цифровых подписей". Но сам не пробовал реализовать эту возможность. А так - макрос то небольшой будет.
quote:
а вызывать его как ?

Например при открытии "чертежа" без участия пользователя запускается макрос, открывающий книгу Excel, считывающий значение "нужной" ячейки, после чего записывающий считанное значение в доп. св-во листа.
Ну а всё остальное - через формулы шейп-листа.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 12/03/2008 :  22:09:36
с открытием файла обновление не устраивает. в документе хватает ссылок, и хотелось бы чтобы масштаб обновлялся вместе с ними. т.е по действию refresh all links
Go to Top of Page

GDK

Russia
90 Posts

Posted - 12/04/2008 :  09:45:39
Тогда нужно определить какое событие возникает при обновлении ссылок.
И при возникновении этого события запускать макрос.
Если лень возиться с событиями, можно сделать кнопку, которая будет запускать макрос, затем обновлять все ссылки.

Edited by - GDK on 12/04/2008 09:54:49
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)