Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 13:18

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 76 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Привязка шейпов по заданному правилу
СообщениеДобавлено: 13 фев 2013, 13:24 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Добрый день.
Использую Visio 2010, но не очень давно. Есть такая задача.
При разработке чертежа требуется разместить заранее подготовленные блоки (группы элементов) определенным образом при перетаскивании их из шаблонов фигур на лист чертежа.
Лист чертежа может быть формата А4 (книжный) или А3 (альбомный), поэтому по вертикали задача решена просто: в таблице свойств нужного блока в ячейку PinY занесена формула =GUARD(190.9 mm/ThePage!PageScale*ThePage!DrawingScale).
А вот по горизонтали нужно привязать блоки друг к другу, а именно - начало следующей группы точно к концу предыдущей.
Сложность (для меня) в том, что блоки имеют разное назначение и разные размеры по горизонтали, и могут вноситься на чертеж в произвольном порядке.
То есть нельзя прописать в ячейке PinX формулу со ссылкой на начало страницы + фиксированное число (сдвиг) и нужно каким-то образом учитывать тип блока (чтобы привязка была только к блокам определенного типа).
Подскажите, пожалуйста, в какой ячейке таблицы свойств можно сделать ссылку на привязку координат начала следующего блока к координатам конца предыдущего при таких условиях?
Думается, что должна быть какая-то функция, позволяющая ссылаться на свойства блока, уже размещенного на листе.
Решения на основе макросов просьба не предлагать - я в них полный профан, а разбираться, каким образом и что работает сейчас времени не хватит.
Заранее благодарю за помощь.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 13 фев 2013, 14:49 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Изображение
добавить ячейки как показано на картинке.
в секции Events ячейка EventDblClick
EventDblClick = "DOCMD(1312)"
позволит вызывать Prop.ID по двойному клику, очень ускоряет дальнейшую работу

в секции ShapeData ячейка Prop.ID поле Format
prop.ID = "список своих ID, разделенный ;"
список пополняемый !!!

в секции User-defined cells ячейках x и y поле Value
user.x = "sheet."&Prop.ID&"!Pinx"
user.y = "sheet."&Prop.ID&"!Piny-sheet."&Prop.ID&"!height/2"
Создатутся ссылки на целевые координаты X,Y шейпа с указанным в prop.ID номером

в секции Actions ячейке Actions.Row_1 поле Action
Actions.Row_1 = "SETF("pinx",TRIM(User.x))+SETF("piny",TRIM(User.y))"
при щелке правой кнопки мыши увидишь новый пункт меню ""Переместить под шейп с ID=XXX". После клика по этому пункту меню шейп переместится :)
Изображение

PS на всякий случай файл с примером во вложении


Вложения:
p1946.vsd [43 Кб]
Скачиваний: 325

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 13 фев 2013, 16:20 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
PS на всякий случай файл с примером во вложении
Спасибо за помощь.
Посмотрел Ваш файл. Все прекрасно работает, но следующая фигура приклеивается к предыдущей по вертикали, а мне нужно приклеивать по горизонтали справа от предыдущего блока.
И, на мой взгляд, немного неудобно, что каждый раз придется сначала определять фигуру, к которой нужно приклеиваться.
А нельзя ли заранее присваивать какой-либо идентификатор определенной группе фигур (блоку), чтобы потом, когда такой блок вытаскивают на лист, по этому идентификатору можно было в автоматическом режиме приклеивать к этому блоку следующий блок, в котором запрограммировано такое действие?
У меня пока что получилось решить задачу таким образом (для однотипных блоков).
Первый блок вытаскивается на лист обычным способом и подгоняется по месту по горизонтали (по вертикали он заранее закреплен в таблице свойств).
Потом в таблице свойств убирается закрепление по вертикали (шаг необходимый, без него никак не получилось сделать следующий).
Затем нажимается копка на ленте "Создать массив фигур" (я ее случайно обнаружил, честно говоря, и опробовал вот буквально только что).
Выскакивает меню, в котором задается число строк и столбцов в масиве (мне нужна была 1 строка и несколько столбцов (в зависимости от требуемого количества дополнительных блоков), остальные параметры оставляю без изменений. Нажимаю ОК - и готово. Нужное количество дополнительных блоков аккуратно размещены на листе точно друг за другом и на нужной высоте.
На первый взгляд, все хорошо, хотя нужно будет на всех компьютерах, на которых будет использоваться этот шаблон, перенастраивать ленту (этой кнопки нет в исходном состоянии Visio) и объяснять пользователям, как с ней обращаться (с автоматизированным шаблоном проще: вытащил блок на лист - и радуйся).
Но у меня есть следующий вопрос. Предполагается, что в этих блоках в дальнейшем будут данные из таблицы Excel. Не подскажете, повлияет ли такой метод "размножения" на возможность организации дальнейшей связи фигур с данными из Excel?
Заранее спасибо.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 13 фев 2013, 16:45 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
Посмотрел Ваш файл. Все прекрасно работает, но следующая фигура приклеивается к предыдущей по вертикали, а мне нужно приклеивать по горизонтали справа от предыдущего блока.
это я в качестве примера приклеивал снизу, т.к. не знал с какой стороны надо приклеивать :)
snake100771 писал(а):
И, на мой взгляд, немного неудобно, что каждый раз придется сначала определять фигуру, к которой нужно приклеиваться.
А нельзя ли заранее присваивать какой-либо идентификатор определенной группе фигур (блоку), чтобы потом, когда такой блок вытаскивают на лист, по этому идентификатору можно было в автоматическом режиме приклеивать к этому блоку следующий блок, в котором запрограммировано такое действие?
Когда блок вытаскивается на лист ему будет присвоен новый идентификатор, так что это практически не реализуемо
snake100771 писал(а):
У меня пока что получилось решить задачу таким образом (для однотипных блоков).
Первый блок вытаскивается на лист обычным способом и подгоняется по месту по горизонтали (по вертикали он заранее закреплен в таблице свойств).
Потом в таблице свойств убирается закрепление по вертикали (шаг необходимый, без него никак не получилось сделать следующий).
Затем нажимается копка на ленте "Создать массив фигур" (я ее случайно обнаружил, честно говоря, и опробовал вот буквально только что).
Выскакивает меню, в котором задается число строк и столбцов в масиве (мне нужна была 1 строка и несколько столбцов (в зависимости от требуемого количества дополнительных блоков), остальные параметры оставляю без изменений. Нажимаю ОК - и готово. Нужное количество дополнительных блоков аккуратно размещены на листе точно друг за другом и на нужной высоте.
На первый взгляд, все хорошо, хотя нужно будет на всех компьютерах, на которых будет использоваться этот шаблон, перенастраивать ленту (этой кнопки нет в исходном состоянии Visio) и объяснять пользователям, как с ней обращаться (с автоматизированным шаблоном проще: вытащил блок на лист - и радуйся).
я не пользуюсь этим, поэтому не скажу. скорее всего без макросов не удастся автоматизировать. А что мешает эту надпись заранее засунуть в блок, раз уж она будет нужна везде ?
snake100771 писал(а):
Но у меня есть следующий вопрос. Предполагается, что в этих блоках в дальнейшем будут данные из таблицы Excel. Не подскажете, повлияет ли такой метод "размножения" на возможность организации дальнейшей связи фигур с данными из Excel?
Заранее спасибо.
а как предполагается связывать данные из Excel ?

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 14 фев 2013, 08:48 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
это я в качестве примера приклеивал снизу, т.к. не знал с какой стороны надо приклеивать
Понятно. То есть можно будет просто поменять в формуле некоторые параметры и получить приклеивание с нужной стороны?
Цитата:
Когда блок вытаскивается на лист ему будет присвоен новый идентификатор, так что это практически не реализуемо
А как эти индикаторы присваиваютсяв Visio? Например, если я создал новый лист, а потом начинаю последовательно вытаскивать свои блоки на него - присвоение номеров будет тоже производиться последовательно, начиная с номера 1? Спрашиваю потому, что есть мысль жестко определить порядок вытаскивания блоков на лист 9некий алгоритм создания чертежа) и потом попробовать привязаться формулами в таблице свойств определенного блока к порядковому номеру фигуры, вносимой на лист чертежа.
Цитата:
я не пользуюсь этим, поэтому не скажу. скорее всего без макросов не удастся автоматизировать.
Макрос (если его придется делать) должен срабатывать не на все блоки, а только на некоторые. То есть мы просто вернемся к исходной задаче.
Цитата:
А что мешает эту надпись заранее засунуть в блок, раз уж она будет нужна везде ?
В том и дело, что не везде. У меня есть блоки, которые на листе будут в одном экземпляре - вроде штампа, а есть - которые должны быть размножены (если использовать эту функцию). И, честно говоря, я не представляю пока каким образом можно засунуть встроенную функцию Visio в пользовательский блок.
Цитата:
а как предполагается связывать данные из Excel ?
Мне требуется реализовать задачу, в которой чертеж Visio жестко связывается с расчетной таблицей Excel.
До настоящего времени мне приходилось заранее делать таблицу Excel в определенном виде, которуя я потом вставлял в чертеж Visio в режиме "связать". То есть при изменении данных в таблице Excel эти изменения автоматически отражаются на чертеже Visio.
Сейчас я сделал в каждом своем блоке специальное текстовое поле (фигура "Текст"), которе предполагаю связывать с таблицей Excel через режим "рисунок, связанный с данными". Реализовать пока не пробовал, занимался разработкой шаблонов для Visio, чтобы максимально автоматизировать создание требуемого чертежа.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 14 фев 2013, 11:09 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Один вопрос расползается на много направлений :(
Цитата:
Понятно. То есть можно будет просто поменять в формуле некоторые параметры и получить приклеивание с нужной стороны?
Цитата:
в секции User-defined cells ячейках x и y поле Value
user.x = "sheet."&Prop.ID&"!Pinx-sheet."&prop.ID&"width/2"
' левее шейпа с заданным ID
user.x = "sheet."&Prop.ID&"!Pinx"
' с координатой X шейпа с заданным ID
user.x = "sheet."&Prop.ID&"!Pinx+sheet."&prop.ID&"width/2"
' правее шейпа с заданным ID

user.y = "sheet."&Prop.ID&"!Piny+sheet."&Prop.ID&"!height/2"
' над шейпом с заданным ID
user.y = "sheet."&Prop.ID&"!Piny"
' с координатой Y шейпа с заданным ID
user.y = "sheet."&Prop.ID&"!Piny-sheet."&Prop.ID&"!height/2"
' под шейпом с заданным ID

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 14 фев 2013, 11:28 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
Один вопрос расползается на много направлений

Мне на этом этапе нужно определиться с технологией привязки. Вопрос о связи чертежа с данными буду решать после получения наиболее оптимального варианта решения первой задачи.

За разъяснение технологии привязки с нужной стороны - отдельная большая благодарность. Если не сложно - подскажите, где можно найти справочник по функциям, применяемым в таблице свойств? В самом Visio нашел только справку по VBA, а я к нему еще только подбираюсь ...
Заранее спасибо.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 14 фев 2013, 13:21 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
на русском языке я не встречал ничего приличного, в визио2003 справка по Shapesheet была встроенная. Сейчас вариант один заглянуть к официалам

Дополнено позднее:
Тот самый… в сообщении #12022 писал(а):
К сожалению в этом архиве отсутствовал ряд функций еще из версии 2010, и разумеется не было функций добавленных в версии 2013. Информацию по недостающим функциям добавил.
В 2013 был добавлен ряд новых секций и ячеек, эту информацию я не добавлял: из-за нехватки времени !
За основу был выбран именно этот исходный материал, т.к. у меня не было русскоязычного хелпа из Visio 2010.

Также были добавлены разделы: Видео на русском, Читать на русском и Полезные ресурсы на русском.

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 14 фев 2013, 13:53 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

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

Спасибо большое за подсказку.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 00:04 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
А как эти индикаторы присваиваютсяв Visio? Например, если я создал новый лист, а потом начинаю последовательно вытаскивать свои блоки на него - присвоение номеров будет тоже производиться последовательно, начиная с номера 1? Спрашиваю потому, что есть мысль жестко определить порядок вытаскивания блоков на лист 9некий алгоритм создания чертежа) и потом попробовать привязаться формулами в таблице свойств определенного блока к порядковому номеру фигуры, вносимой на лист чертежа.

Да, номера присваиваются по порядку. НО, допустим на странице общее количество 100 шейпов в нескольких группах. Удаляем группу состоящую из 10 шейпов, и вставляем группу из 5 шейпов и следом вставим еще группу из 15 шейпов. Как визио пронумерует новые шейпы трудно сказать :(
Цитата:
я не пользуюсь этим, поэтому не скажу. скорее всего без макросов не удастся автоматизировать.

Макрос (если его придется делать) должен срабатывать не на все блоки, а только на некоторые. То есть мы просто вернемся к исходной задаче.
В макросе можно прописать логику: какие шейпы созданные из определенного мастера обрабатывать, какие нет. Или как обрабатывать шейпы созданные из конкретных мастеров. Тут полностью можно реализовать свою фантазию
Цитата:
В том и дело, что не везде. У меня есть блоки, которые на листе будут в одном экземпляре - вроде штампа, а есть - которые должны быть размножены (если использовать эту функцию). И, честно говоря, я не представляю пока каким образом можно засунуть встроенную функцию Visio в пользовательский блок.

Надпись надо добавлять только к тем блокам, где это надо. Можно сделать в мастере связывание с любой таблицей, а после добавления на лист уже назначать конкретную таблицу. Конечно будет гемморойно, сделать для большого числа шейпов

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 09:13 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
Да, номера присваиваются по порядку. НО, допустим на странице общее количество 100 шейпов в нескольких группах. Удаляем группу состоящую из 10 шейпов, и вставляем группу из 5 шейпов и следом вставим еще группу из 15 шейпов. Как визио пронумерует новые шейпы трудно сказать

Но ведь если я заранее продумаю алгоритм создания требуемого чертежа, то (на мой взгляд) проблему с неизвестным порядком нумерации можно будет не принимать во внимание.

Цитата:
В макросе можно прописать логику: какие шейпы созданные из определенного мастера обрабатывать, какие нет. Или как обрабатывать шейпы созданные из конкретных мастеров. Тут полностью можно реализовать свою фантазию

Боюсь, что я немного запутался. Насколько я понял из Ваших пояснений: а) Visio пронумерует вносимые на чертеж блоки самостоятельно, и б) названия блоков, присваиваемые мной этим блокам при добавлении их в трафарет, Visio не учитывает, когда я вношу их на чертеж. Каким же образом можно будет реализовать предлагаемое Вами решение? Я совсем "начинающий" в макросоведении... Вчера, например, попробовал создать чуть ли не первый свой макрос. До определенного предела все работало, как песня, нажатие двух клавиш - и готов шаблон проекта А потом попытался несколько усложнить этот макрос - и получил сообщение, что вылез за пределы 64 К (я не очень силен в английском, но общий смысл понял). Если Вас не очень затруднит, поясните этот момент на каком-нибудь простеньком примере. .

Цитата:
Надпись надо добавлять только к тем блокам, где это надо. Можно сделать в мастере связывание с любой таблицей, а после добавления на лист уже назначать конкретную таблицу. Конечно будет гемморойно, сделать для большого числа шейпов

В моем шаблоне так и сделано - надписи имеют только определенные блоки. Таблица данных, с которой должна быть связь, предполагается только одна, но ячеек с даными в ней не так уж мало - порядка 100 и выше. Когда я пробовал экспериментировать с такой связью, то обнаружил, что при организации связи указывается название столбца в таблице Excel, а потом - строка в этом столбце, которая содержит нужные для конкретного шейпа данные. Я к тому, что если, как Вы рекомендуете, сделать в мастере связь с таблицей, то мне, скорее всего, не придется переназначать таблицу, а просто переназначить строки в нужных столбцах для определенного шейпа. А вот как сделать такую связь я пока не представляю.
Еще раз большое Вам спасибо за помощь.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 13:01 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
Но ведь если я заранее продумаю алгоритм создания требуемого чертежа, то (на мой взгляд) проблему с неизвестным порядком нумерации можно будет не принимать во внимание.

1. Это так, но жизнь есть жизнь. Как бы хорошо не был продуман алгоритм создания, бывают ситуации когда часть шейпов приходится удалять и вставлять новые ручками (и в моей практике довольно часто). Так же в моей практике иногда требуется создание неких отчетов уже после сохранения финального документа.
И тут я сталкиваюсь с проблемами, при попытках обращаться к шейпам по ID.
Если у тебя есть 102% гарантия, что файлы не будут изменяться после автогенерации, то проблем нет :)

snake100771 в сообщении #1967 писал(а):
Боюсь, что я немного запутался. Насколько я понял из Ваших пояснений: а) Visio пронумерует вносимые на чертеж блоки самостоятельно, и б) названия блоков, присваиваемые мной этим блокам при добавлении их в трафарет, Visio не учитывает, когда я вношу их на чертеж. Каким же образом можно будет реализовать предлагаемое Вами решение? Я совсем "начинающий" в макросоведении... Вчера, например, попробовал создать чуть ли не первый свой макрос. До определенного предела все работало, как песня, нажатие двух клавиш - и готов шаблон проекта А потом попытался несколько усложнить этот макрос - и получил сообщение, что вылез за пределы 64 К (я не очень силен в английском, но общий смысл понял). Если Вас не очень затруднит, поясните этот момент на каком-нибудь простеньком примере. .

2. Например в стенсиле есть мастер "Сервер", при вытягивании его на лист его копии будут получать номера типа "Сервер.5", следующий "Сервер.9" с непредсказуемой цифрой в конце, той самой ID.
Так вот можно сравнивать имя шейпа на листе с эталонным именем "Сервер", если в названии этот фрагмень присутствует. Значит выполняем, все что нужно для объектов на базе мастера "Сервер"
Цитата:
Взято здесь
Если попроще, то, например,
If InStr(Shape.Name, "сервер") = 1Then ...
А если по полной программе, то проверять свойство master, но там может ошибка возникнуть, надо еще и ее обрабатывать.

Я макросами занимаюсь с весны 2010 года, но мне еще не удалось получить предупреждение о превышении лимита 64K :)
Больше 25К еще не было, не могу похвастаться что мой код получается компактным. что ж ты там такого на усложнял? Уточни пожалуйста какой пример нужен ?
Цитата:
В моем шаблоне так и сделано - надписи имеют только определенные блоки. Таблица данных, с которой должна быть связь, предполагается только одна, но ячеек с даными в ней не так уж мало - порядка 100 и выше. Когда я пробовал экспериментировать с такой связью, то обнаружил, что при организации связи указывается название столбца в таблице Excel, а потом - строка в этом столбце, которая содержит нужные для конкретного шейпа данные. Я к тому, что если, как Вы рекомендуете, сделать в мастере связь с таблицей, то мне, скорее всего, не придется переназначать таблицу, а просто переназначить строки в нужных столбцах для определенного шейпа. А вот как сделать такую связь я пока не представляю.
Еще раз большое Вам спасибо за помощь.

3. Я как раз ни разу в жизни не использовал привязывания таблиц к шейпам, вчера поэкспериментировал. Поэтому написал, что это возможный, но крайне гемморойный вариант.
Когда я был не знаком с макросами, я применял связывание с ODBC. Не помню правда, можно ли одним кликом обновить данные нескольких шейпов. Про работу ODBC, хорошо написано здесь.
я развивал эту тему здесь, меня даже хвалили. только сейчас я не смог с ходу вспомнить как это работает :(

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 14:45 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
Если у тебя есть 102% гарантия, что файлы не будут изменяться после автогенерации, то проблем нет


Попытался осмыслить варианты с учетом Вашего опыта.
Расклад такой.
1. Доделать автоматическое создание чертежа с заданным количеством блоков и связью с таблицей Excel. реализованное при помощи макроса (надо еще придумать, как вставить в макрос выбор числа блоков через создание массива, о котором я Вам писал ранее). Плюс - создание готового чертежа нажатием 4 клавиш: 2 - запуск основного макроса + 2 (предположительно, может получится 3) - на выбор количества блоков. Минус - изменять этот чертеж - еще та радость.
2. Остановиться на достигнутом - то есть куцый чертеж с ручным добавлением блоков в нужном количестве (ну, добавить в блок связь с Excel, разумеется). Плюс - можно редактировать до полного совершенства. Минус - выравнивать каждый блок по отдельности.

Провел эксперимент на скорость. Даже при крайне сыром нынешнем виде разработки преимущества первого варианта по времени - ровно в столько раз, сколько нужно дополнительных блоков + время на их выравнивание. Может быть, если я исхитрюсь создать точки соединения для блоков (то есть групп шейпов), это время сократится, но ненамного - нажать 4 клавиши все равно явно предпочтительнее по скорости.

Пришел к выводу, что в случае крайней необходимости внесения изменений в готовый чертеж гораздо быстрее будет сделать новый (с измененными входными данными) по технологии 1, чем ковыряться со старым по технологии 2.
К тому же вероятность такой крайней необходимости настолько невелика, что при ее появлении можно будет делать чертеж по-старому , то есть вручную.

Цитата:
Так вот можно сравнивать имя шейпа на листе с эталонным именем "Сервер", если в названии этот фрагмень присутствует.

Посмотрите, пожалуйста - правильно ли я понял, о чем Вы говорите (рис. Name_block. имя блока взято из таблицы свойств и обведено желтой рамкой).Изображение

Цитата:
что ж ты там такого на усложнял?

Все было достаточно просто - по неопытности задал команду заменить шрифт на всем чертеже.
Это было еще до того времени, как я с Вашей же помощью сделал нужный мне шрифт в штампе Вашего шаблона Visio document - за что Вам отдельное спасибо еще раз.

Цитата:
Уточни пожалуйста какой пример нужен ?

Как в макросе прописать логику: какие шейпы созданные из определенного мастера обрабатывать, какие нет и как обрабатывать при помощи макросов шейпы, созданные из конкретных мастеров. Буду очень признателен.

Цитата:
Не помню правда, можно ли одним кликом обновить данные нескольких шейпов.

На ленте Visio 2010 нашел кнопку ""Обновить все" на вкладке "Внешние данные" раздела "Данные". Думаю, что наверное это она и есть

Цитата:
Про работу ODBC, хорошо написано здесь. я развивал эту тему здесь

Спасибо за подсказку. Посмотрел обе ссылки. Выяснил, что первую я уже изучал, когда решил создать свой вариант автоматизации, и даже попробовал по этой методике что-либо соорудить в своем проекте. Получилось не очень (наверное потому, что я тогда уже использовал Visio 2010 RU), поэтому я продолжил поиски и в результате нашел понятное описание технологии здесьhttp://blogs.technet.com/b/visio_ru/archive/2012/08/21/3515386.aspx. Вот тогда у меня в первый раз и появилась надежда, что смогу реализовать задуманное.
Еще раз спасибо за Вашу помощь.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 14:55 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 12 май 2012, 15:16
Сообщений: 122
Очков репутации: 13

Добавить очки репутацииУменьшить очки репутации
snake100771 в сообщении #1967 писал(а):
До определенного предела все работало, как песня, нажатие двух клавиш - и готов шаблон проекта А потом попытался несколько усложнить этот макрос - и получил сообщение, что вылез за пределы 64 К


Тут главный вопрос "кто вышел")))
Вероятнее всего компилятор отказывается работать с длиннющим Сабом.
Есть несколько путей решения:
Самый простой - разбить Sub Zadacha () на 2 ровно по середине
пример:

было
Код:
Sub Zadacha()
bla-bla
lololo
bla-bla1
lololo1
bla-bla2
lololo2
' и так у Вас достаточно долго
End Sub

стало
Код:
Sub Zadacha ()
Zadacha1
Zadacha2
End Sub

Zadacha1
bla-bla
lololo
bla-bla1
End Sub

Zadacha1
lololo1
bla-bla2
lololo2
End Sub



Возможные проблемы: если Вы используете переменные, и Private Sub () то вероятнее всего они не передадутся из саба в саб.
Решение - объявить все необходимые переменные в Public (массивы можно объявлять только с Dim, но их значения передаются)
В остальном работать будет, НО!
Задумайтесь о дальнейшем редактировании вашего макроса... будет довольно неудобно даже прочитывать все эти строки, не то, что бы редактировать 40-140 необходимых строк, так что необходимо выбирать более элегантные решения.
Макропись стоит на трёх китах : циклах, массивах и собственно способности разработчика структурировать свой код
Пример

Код:
Sub Zadacha()

For X = 0 to 3
   bla-bla
   lololo
Next X

End Sub


Если ещё элегантнее, то

Код:
Sub Zadacha()

For X = 0 to 3
    Zadacha1
Next X

End Sub

Sub Zadacha1()

   bla-bla
   lololo

End Sub


Ещё красивее использовать не сабы, а модули, но тут я этого не покажу - скрины нужны, да и съекономите вы только на прокрутке скролла.
Это позволит Вам сэкономить кучу нервов на разбирательства в собственном коде (уход от переменных типа Икс, которые можно перепутать с Ха, так же пойдёт на пользу).

Все переменные одной группы лучше хранить в массиве,
Пример

Код:
mass (1,1) = 1' координата Х шейпа 1
mass(1,2) = 2 ' координата Y шейпа 1
mass (2,1) = 1' координата Х шейпа 2
mass(2,2) = 2 ' координата Y шейпа 2
......
......
' последовательное получение всех координат:
For Nom = 1 To 1000
Koordinata_X = mass (Nom,1)
Koordinata_Y = mass (Nom,2)
Next Nom


помните, что если Вы написали 10 If Then подряд, скопировали часть кода в соседний саб, передаёте значения переменных простым присваиванием типа X=Y, то Вы не до конца поняли смысла послания и создали для себя лишнюю проблему в будущем.
PS Облегчите участь модераторов и пользователей и будущих пользователей, которые будут искать ответы на подобные вопросы, и для каждого отдельного вопроса создавайте новый топик.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 15:41 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
Вы не до конца поняли смысла послания и создали для себя лишнюю проблему в будущем

Действительно, Вы правы, я пока не очень профессионально разбираюсь в тонкостях написания макросов - профиль у меня несколько другой. Поэтому в настоящее время пользуюсь встроенной в Visio функцией записи макросов. До отладки и оптимизации этих макросов мне еще ой как далеко.
Искреннее спасибо за краткий курс "молодого макрописателя" - приму Ваши наработки к сведению.

Цитата:
Облегчите участь модераторов и пользователей и будущих пользователей, которые будут искать ответы на подобные вопросы, и для каждого отдельного вопроса создавайте новый топик.

Основной вопрос у меня один - как сделать удобный шаблон с последовательной привязкой групповых шейпов при создании чертежа
И как это сделать БЕЗ макросов - если такое вообще возможно.
Пока задача осталась нерешенной, хотя вероятные направления требуемого решения, как Вы могли заметить, активно прорабатываются.
Развитие вопроса несколько в сторону, надеюсь, особо не усложнит жизнь последователям - насколько я смог заметить, многие пользователи Visio как раз интересуются созданием комплексных шаблонов, при разработке которых параллельно решаются самые разные задачи.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 16:23 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
Посмотрите, пожалуйста - правильно ли я понял, о чем Вы говорите (рис. Name_block. имя блока взято из таблицы свойств и обведено желтой рамкой).Изображение

да
Цитата:
Как в макросе прописать логику: какие шейпы созданные из определенного мастера обрабатывать, какие нет и как обрабатывать при помощи макросов шейпы, созданные из конкретных мастеров. Буду очень признателен.

ниже см. абстрактный пример, типа все шейпы на базе мастера "m1" залить красным, в шейпы из мастера "m2" вставить слово "мама", из мастера "m3" удалить на фиг :)
Код:
Sub p1972()
Dim shp As Shape
For Each shp In ActivePage.Shapes
If InStr(shp.Name, "m1") Then shp.CellsSRC(visSectionObject, visRowFill, visFillForegnd).FormulaU = 2
If InStr(shp.Name, "m2") Then
Set vsoCharacters1 = shp.Characters
shp.Text = "мама"
Else:
End If
If InStr(shp.Name, "m3") Then shp.Delete
Next shp
end sub

Цитата:
Спасибо за подсказку. Посмотрел обе ссылки. Выяснил, что первую я уже изучал, когда решил создать свой вариант автоматизации, и даже попробовал по этой методике что-либо соорудить в своем проекте. Получилось не очень (наверное потому, что я тогда уже использовал Visio 2010 RU), поэтому я продолжил поиски и в результате нашел понятное описание технологии здесьhttp://blogs.technet.com/b/visio_ru/archive/2012/08/21/3515386.aspx. Вот тогда у меня в первый раз и появилась надежда, что смогу реализовать задуманное.
Еще раз спасибо за Вашу помощь.

первый вариант ODBC позволяет обновлять данные при смене ключа (одного из полей shapedata)
вариант описанный в последней ссылке дает якобы мгновенное обновление данных. но у меня не заработало


_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 15 фев 2013, 16:44 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
Действительно, Вы правы, я пока не очень профессионально разбираюсь в тонкостях написания макросов - профиль у меня несколько другой. Поэтому в настоящее время пользуюсь встроенной в Visio функцией записи макросов. До отладки и оптимизации этих макросов мне еще ой как далеко.

Почти все мы здесь не являемся профессиональными программистами. Судя по рис. Name_block вы с Евгени коллеги :)
Цитата:
Основной вопрос у меня один -как сделать удобный шаблон с последовательной привязкой групповых шейпов при создании чертежа
И как это сделать БЕЗ макросов - если такое вообще возможно.
Пока задача осталась нерешенной, хотя вероятные направления требуемого решения, как Вы могли заметить, активно прорабатываются.
Развитие вопроса несколько в сторону, надеюсь, особо не усложнит жизнь последователям - насколько я смог заметить, многие пользователи Visio как раз интересуются созданием комплексных шаблонов, при разработке которых параллельно решаются самые разные задачи.

Если основной и единственной целью данного шаблона является, выстраивание групповых шейпов друг за другом, то можно обойтись без макросов :)
чтоб я мог дать дельный совет, мне нужно обрисовать основные задачи. Наработки есть, многие лежат мертым грузом - поделиться не жалко…
Иначе будут абстрактные предложения типа макроса (p1972 - красим красным/пишем мама/удаляем) в данной темке :)

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 17 фев 2013, 02:40 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
требуется понять, что понимается под "идеальным шаблоном"? я с ними работаю около 10 лет, каждый раз я нахожу что и исправить :)
шаблон был придуман 5 лет назад, было 2 довольно серьезные правки, сейчас идет 3 модификация

1. в моей практике разработка шаблона имеет смысл когда число узлов (книг РД) превышает 15
2. если если в рамках проекта имеются узлы разного типа (с разным количествм оборудования и связей между ними), то проще сделать шаблон на каждый тип узла
Например, есть город где предполагается модернизировать схему организации связи. В городе имееся 100 узлов связи: из которых 4 узла являются транзитными, 10 узловыми, остальные оконечными.
делать один шаблон на все случаи жизни будет проблематично, проще сделать 3 шаблона для каждого типа узла с проверкой - подходит ли данный шаблон для такого типа узла.

PS это несколько конструктивных предложений выдвинутых с пьяну

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 18 фев 2013, 10:03 
Не в сети
Постоянный участник

Зарегистрирован: 13 фев 2013, 09:33
Сообщений: 59
Очков репутации: -1

Добавить очки репутацииУменьшить очки репутации
Цитата:
ниже см. абстрактный пример, типа все шейпы на базе мастера "m1" залить красным, в шейпы из мастера "m2" вставить слово "мама", из мастера "m3" удалить на фиг

Знаете, когда я смотрю, как просто и изящно у Вас получается командовать строптивой программой, то испытываю странное чувство - подъем уверенности, что тоже так смогу (когда-нибудь) и ощущуние собственной дремучей отсталости (в настоящее время). Спасибо за пример.

Цитата:
вариант описанный в последней ссылке дает якобы мгновенное обновление данных. но у меня не заработало

Странно, именно этот вариант у меня сработал. Правда, мгновенного обновления все-таки не наблюдается. Но если я правильно помню, где-то (вроде бы даже в этом форуме) мне встречалась технология настройки Visio для повышения скорости обмена с внешним приложением.

Цитата:
Почти все мы здесь не являемся профессиональными программистами. Судя по рис. Name_block вы с Евгени коллеги

Вполне вероятно. И оба не дотягиваем до Вашего уровня "непрофессиональности".

Цитата:
Если основной и единственной целью данного шаблона является, выстраивание групповых шейпов друг за другом, то можно обойтись без макросов
чтоб я мог дать дельный совет, мне нужно обрисовать основные задачи

Попытаюсь более детально описать задачу.
1) Необходимо реализовать алгоритм, позволяющий создать чертеж, состоящий из шести разновидностей блоков (штамп и рамка в этот список не входят - их можно добавить позднее и прописать отдельной операцией). Блоки уже начерчены и переправлены в шаблон. Разновидности блоков следующие:
1 тип - специальный боковой штапм (рамка + надписи), группа из графических и текстовых шейпов
2 тип - группа из графических и текстовых шейпов
3 тип - группа из текстовых шейпов
4 тип - группа из текстовых шейпов
5 тип - группа из графических шейпов (один конец жестко привязан к правой границе блока типа 1, второй конец может свободно перемещаться по горизонтали)
6 тип - группа из графических и текстовых шейпов

2) первые 5 из 6 блоков при внесении их из шаблона на чертеж жестко закрепляются в заранее определенных позициях чертежа (это уже сделано формулами в таблицах свойств блоков).

3) Последний (шестой) тип блоков должен иметь следующие возможности:
- при внесении первого такого блока на чертеж он должен жестко привязаться к правой границе блока типа 1
- при последовательном внесении на чертеж всех последующих блоков типа 6 каждый вносимый блок типа 6 должен жестко привязываться к правой границе предыдущего блока типа 6
Примечание: у меня есть мысль, что если делать на макросах, то определение необходимого количества блоков типа 6 можно вставить отдельной задачей - типа всплывающего меню с надписью "Введите число блоков". Я пока не нашел способ, как это соорудить, хотя есть идея попробовать сделать такой режим с использованием встроенной возможности "Создать массив фигур", о которой я Вам сообщал ранее. Кстати, при использовании технологии "Создать массив фигур" наверное можно будет в макросе задать жесткую привязку только первого блока типа 6, остальные сами выстраиваются в нужном порядке - я это уже пробовал, только без макроса.

4) допустимое количество блоков типа 6 для одного чертежа не ограничивается, количество всех остальных типов блоков - по одному на чертеж

5) в заранее определенные текстовые шейпы всех блоков заносятся данные из специальной таблицы Excel в режиме "связь с внешним источником данных". Формат таблицы (наименование и количество стоблцов определяется заранее и не изменяется, количество строк может изменяться.

Результат - чертеж определенного вида с возможностью автоматического изменения текстовых значений при изменении этих же значений в таблице Excel.

Кстати, я вроде бы видел в Visio возможность сохранения прямо из Visio внешней таблицы данных Excel под другим именем непосредственно после организации связи Excel-Visio, но пока не пробовал такой фокус.

Цитата:
шаблон был придуман 5 лет назад, было 2 довольно серьезные правки, сейчас идет 3 модификация

Я лично просто не нарадуюсь именно на этот Ваш шаблон - настолько он облегчает жизнь. Спасибо Вам за него большое. К слову - некоторые из особо упертых наших сотрудников до сих пор чертят и заполняют штампы вручную. И очень сильно удивляются - как это у меня получается делать их так быстро? А пользоваться им не желают - то ли гордость за свои "изделия", то ли недальновидность... Да и ладно.

Цитата:
1. в моей практике разработка шаблона имеет смысл когда число узлов (книг РД) превышает 15
2. если если в рамках проекта имеются узлы разного типа (с разным количествм оборудования и связей между ними), то проще сделать шаблон на каждый тип узла

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

Цитата:
PS это несколько конструктивных предложений выдвинутых с пьяну

Завидую белейшей завистью. Если у Вас такие возможности в этом состоянии, то какие же в обычном? :D


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Привязка шейпов по заданному правилу
СообщениеДобавлено: 18 фев 2013, 13:31 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
snake100771 писал(а):
Знаете, когда я смотрю, как просто и изящно у Вас получается командовать строптивой программой, то испытываю странное чувство - подъем уверенности, что тоже так смогу (когда-нибудь) и ощущуние собственной дремучей отсталости (в настоящее время). Спасибо за пример.
Surrogate в ответ писал(а):
Многому в этой жизни можно научиться, если есть необходимость, время и желание!
вот мои первые шаги в макрописании :)
Шаг 1, шаг 2, шаг 3.
Программирование и владение хитростями данного приложения, это не искусство или спорт, где прирожденные способности имеют ключевое значение. Практически невозможно быть хорошим скрипачом, не имея слуха…

Почти все мы здесь не являемся профессиональными программистами. Судя по рис. Name_block вы с Евгени коллеги
Вполне вероятно. И оба не дотягиваем до Вашего уровня "непрофессиональности".
Surrogate в ответ писал(а):
Под профессиональными программистами, я имел действительно программистов по образованию или по должности.
лично я проходил программирование в институте в 1992-1994 годах, тогда компьютеров на весь институт было несколько десятков, а в личном пользовании простых смертных и того меньше. Поэтому опыта не было никакого, кроме домашних и лабороторных работ. Через много лет я вернулся к теме программирования. Никогда не поздно чему то научиться :)
О "непрофессиональности" - например я в своей работе не использую классов, не создаю пользовательских событий. Это я считаю высшим пилотажем !
в этом не было необходимости, когда придет время буду разбираться :)

3) Последний (шестой) тип блоков должен иметь следующие возможности:
- при внесении первого такого блока на чертеж он должен жестко привязаться к правой границе блока типа 1
- при последовательном внесении на чертеж всех последующих блоков типа 6 каждый вносимый блок типа 6 должен жестко привязываться к правой границе предыдущего блока типа 6
Примечание: у меня есть мысль, что если делать на макросах, то определение необходимого количества блоков типа 6 можно вставить отдельной задачей - типа всплывающего меню с надписью "Введите число блоков". Я пока не нашел способ, как это соорудить, хотя есть идея попробовать сделать такой режим с использованием встроенной возможности "Создать массив фигур", о которой я Вам сообщал ранее. Кстати, при использовании технологии "Создать массив фигур" наверное можно будет в макросе задать жесткую привязку только первого блока типа 6, остальные сами выстраиваются в нужном порядке - я это уже пробовал, только без макроса.
Surrogate в ответ писал(а):
Я так понимаю, под словом чертеж подразумевается одностраничный документ ?
В принципе можно реализовать выстраивание блоков типа 6 в линию без использования макроса! Выложу вариант позднее…
А вот насчет совместной работы жестко закрепленного местоположения (под этим я подразумеваю использование функции Guard()) и аддона "Создать массив" сомневаюсь. Он не сможет создать массив, т.к. точка первого блока фиксированная. Пробовал запускать, выдает ошибку !










,


4) допустимое количество блоков типа 6 для одного чертежа не ограничивается, количество всех остальных типов блоков - по одному на чертеж
Surrogate в ответ писал(а):
Т.е. мы делаем ленту из блоков типа 6 ? Как это не ограничено: или лист безконечно большой или блоки такие мелкие ?

5) в заранее определенные текстовые шейпы всех блоков заносятся данные из специальной таблицы Excel в режиме "связь с внешним источником данных". Формат таблицы (наименование и количество стоблцов определяется заранее и не изменяется, количество строк может изменяться.

Результат - чертеж определенного вида с возможностью автоматического изменения текстовых значений при изменении этих же значений в таблице Excel.
Surrogate в ответ писал(а):
каждому текстовому шейпу соответствует одно поле ? или несколько строк

Кстати, я вроде бы видел в Visio возможность сохранения прямо из Visio внешней таблицы данных Excel под другим именем непосредственно после организации связи Excel-Visio, но пока не пробовал такой фокус.
Surrogate в ответ писал(а):
Не имею большого опыта связывания шейпов визио с экселем, с обновлением данных :(
дай ссылку на этот фокус !


_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 76 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB