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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: Наклейки
СообщениеДобавлено: 17 сен 2013, 14:44 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Наклейки на ленту ширина ленты 37 мм, наклейка клеиться вокруг кабеля. В данном случае 37 мм это высота.
Подскажите как сделать:
1. Чтобы я вписывал в объект всего одно слово а оно отображалось несколько раз.
2. Подбор ширины объекта под длину текста.
3. Объекты могли прилипать к граням друг друга, и при изменении текста в одном из них он раздвигал соседей (мечта будет тогда).
Содержимое спрятано под спойлер ↓
Спойлер:
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 17 сен 2013, 14:48 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
2. Подбор ширины объекта под длину текста.

Код:
Width=GUARD(TxtWidth)
TxtWidth=TEXTWIDTH(TheText)


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 17 сен 2013, 17:27 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
3. Объекты могли прилипать к граням друг друга, и при изменении текста в одном из них он раздвигал соседей (мечта будет тогда).

Пропустил этот пункт. Надо каждый следующий объект привязывать относительно предыдущего:
Код:
PinX=GUARD(Button.721!PinX+Button.721!Width) ' Button.721 - предыдущая фигура
LockPinX=Width*0


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 18 сен 2013, 07:57 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Спасибо за помощь.
Qwertiy писал(а):
Код:
Width=GUARD(TxtWidth)
TxtWidth=TEXTWIDTH(TheText)

Заработало

Qwertiy писал(а):
Пропустил этот пункт. Надо каждый следующий объект привязывать относительно предыдущего:
Код:
PinX=GUARD(Button.721!PinX+Button.721!Width) ' Button.721 - предыдущая фигура
LockPinX=Width*0

Заработало, но как то можно автоматизировать? Вручную прописывать можно но муторно. Хотя всего один раз....

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

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


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Наклейки
СообщениеДобавлено: 18 сен 2013, 08:42 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Kaerius писал(а):
В базовых шейдпах визио видел такое свойство, что они прилипают к друг другу и при изменении одного из них он раздвигает соседей, к примеру в право, но что щас найти не могу.
это свойство называется Connection Point. какая у тебя версия Visio ?
Kaerius писал(а):
А это не заработало. Пишет ошибка формулы, и что за Button.721 ?!
Тут вместо Button.721 надо писать имя твоего шейпа

Это я уже разобрался, щас думаю как сделать чтобы в Button.721, 721 уменьшалось на 1.

Версия 2010.

Код:
PinX=GUARD(Button."Текущий номер - 1"!PinX+Button."Текущий номер - 1"!Width)


Код:
opentextwin()
по этому событию куда текст пишется как к нему обратится? вывод несколько раз текста моно сделать через
Код:
=REPT(texn,number)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 сен 2013, 09:39 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
Это я уже разобрался, щас думаю как сделать чтобы в Button.721, 721 уменьшалось на 1.

Я делал макросом (выложить не могу) - создавал все фигуры (16 штук) и заполнял размещение. Кстати, у меня ещё магия с границей была, но ответ я написал без этого.
Да, первая созданная по каждому трафарету фигура обычно не имеет номера (ну или тот же, что у трафарета, если он там вдруг оказался).

Kaerius писал(а):
PinX=GUARD(Button."Текущий номер - 1"!PinX+Button."Текущий номер - 1"!Width)

Так не выйдет. Подобное можно пихать только в SETF или в макрос, причём в обоих случаях нужно всё делать сторками и ставить конкатенацию.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 сен 2013, 09:41 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
по этому событию куда текст пишется как к нему обратится? вывод несколько раз текста моно сделать через

Текст можно получить через ShapeText(TheText), но изменить нельзя. С другой стороны, можно использовать поля.


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

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Я пошел другим путем, через вставка, поле. Добавился блок Text Fields. Вопрос основной как сцепить две строки? "Prop.Row_1" + "\n\r" + "Prop.Row_1"
Как сделать так чтобы редактировалось не TheText а Shape Data Prop.Row_1

И как получить номер фигуры на листе?


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Kaerius писал(а):
И как получить номер фигуры на листе?
если через шейпшит, то создать ячейку и в ней написать ID()
Kaerius писал(а):
Я пошел другим путем, через вставка, поле. Добавился блок Text Fields. Вопрос основной как сцепить две строки? "Prop.Row_1" + "\n\r" + "Prop.Row_1"
в блоке Text Field написать в поле Value
="Prop.Row_1"&"\n\r"&"Prop.Row_1"
Для конкатенации в визио используют "&"
А "\n\r" это что за чудо ?]Я пошел другим путем, через вставка, поле. Добавился блок Text Fields. Вопрос основной как сцепить две строки?

Qwertiy писал(а):
Так не выйдет. Подобное можно пихать только в SETF или в макрос, причём в обоих случаях нужно всё делать сторками и ставить конкатенацию.
в этой теме было про использование SETF для аналогичной задачи
для данного случая можно ограничиться вариантом


чтоб не писать формулы, их можно скопипастить в этих таблицах

User-defined Cells
Value
Prompt
user.n
user.row_2
=IF(User.n>1,SETF("PinX",TRIM(User.Row_2.Prompt))+SETF("PinY","=GUARD(sheet.1!PinY)"),"none")
"=sheet."&User.n-1&"!pinx+sheet."&User.n-1&"!width"

EventDrop
=SETF("User.n",User.n+1)

и далее комбинацией клавиш Ctrl+D клонировать нужное количество шейпов

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Наклейки
СообщениеДобавлено: 18 сен 2013, 13:07 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
http://rghost.ru/48815977 вот. осталось приделать привязку и все готово будет.
Я сдела маленько по другому, но спасибо за наводку с SETF


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 сен 2013, 13:10 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
="Prop.Row_1"&"\n\r"&"Prop.Row_1"

А Визио такие штуки как "\n\r" понимает? К тому же, оно вроде "\r\n" Я использовал функцию Chr.
Кавычки вокруг свойсвт очевидно лишние.
Другой вариант - ставить пробел и он будет переносить сам, если ширина текста определена как TextWidth(Prop.Row_1).

Surrogate писал(а):
в этой теме было про использование SETF для аналогичной задачи

Она вроде не аналогичная. Там я сам сделал фигню и пытался приспособить хак, чтобы её исправить...*
А Kaerius'у SETF вроде вообще не должен быть нужен, лучше один раз прописать макросом, если лень делать руками.
Дополнено позднее: * Наоткрывал чего-то лишнего и запутался во вкладках...


Последний раз редактировалось Qwertiy 18 сен 2013, 13:18, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 сен 2013, 13:15 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Вот подходящая тема.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Qwertiy писал(а):
А Kaerius'у SETF вроде вообще не должен быть нужен, лучше один раз прописать макросом, если лень делать руками.
А ты спросил Kaerius, владеет VBA ? решение с VBA возможно проще, но если человек не знает. то тогда надо давать не "умный совет", а готовый код
Qwertiy писал(а):
Вот подходящая тема.
и где в "подходящей" теме из 97 сообщений, начало по теме :)

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 сен 2013, 13:47 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
А ты спросил Kaerius, владеет VBA ? решение с VBA возможно проще, но если человек не знает. то тогда надо давать не "умный совет", а готовый код

Ну так может же сказать, если не владеет. Зачем заранее объяснять лишнее, когда ничего не говорит о том, что он это не знает сам?

Surrogate писал(а):
и где в "подходящей" теме из 97 сообщений, начало по теме :)

Там где говорится о добавлении полей. Ну и несколько примеров с полями вроде были.
Соответственно выносим текст в свойство и добавляем десяток полей, которые будут переноситься за счёт ограничения ширины текста. Должно бы работать.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: 18 сен 2013, 14:00 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Qwertiy писал(а):
Surrogate писал(а):
="Prop.Row_1"&"\n\r"&"Prop.Row_1"

А Визио такие штуки как "\n\r" понимает? К тому же, оно вроде "\r\n" Я использовал функцию Chr.
Кавычки вокруг свойсвт очевидно лишние.
Другой вариант - ставить пробел и он будет переносить сам, если ширина текста определена как TextWidth(Prop.Row_1).

К сожалению если в тексте пробел то перенос по длине строчки не очень работает. Я сделал так создал в нижнем шейпе строку данных и вставил туда из notepad++ символы CR+LF. А потом сцепил.

Qwertiy писал(а):
Surrogate писал(а):
в этой теме было про использование SETF для аналогичной задачи

Она вроде не аналогичная. Там я сам сделал фигню и пытался приспособить хак, чтобы её исправить...*
А Kaerius'у SETF вроде вообще не должен быть нужен, лучше один раз прописать макросом, если лень делать руками.

Как раз это то что нужно было, очень полезная вещь. Единственное ограничение работает на листе если нет других шейпов, иначе глюки... но есть мысли как это исправить, но пока что работает и так.
К примеру присваивать имя из уникального имени и внутреннего счетчика чтобы с обычны шейпами не пересекался,
Также можно сделать чтобы сканил шейпы в поисках меток, а далее счетчик +1.
Но этим я займусь завтра.

Qwertiy писал(а):
UPDATE:
* Наоткрывал чего-то лишнего и запутался во вкладках...

У меня также... Я пока нашел этот классный форум много всего перерыл, да и потом... Спасибо большое.

Вот итоговый вариант http://rghost.ru/48816525
А голова дырявая нужно изменить поведение на "только группа", и когда закидываешь в набор нужно n=-1 ставить.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Kaerius писал(а):
К сожалению если в тексте пробел то перенос по длине строчки не очень работает. Я сделал так создал в нижнем шейпе строку данных и вставил туда из notepad++ символы CR+LF. А потом сцепил.
как писал Qwertiy в визио надо использовать char(). конкретно под твою задачу
Цитата:
"Prop.Row_1"&char(10)&"Prop.Row_1"
Kaerius писал(а):
Как раз это то что нужно было, очень полезная вещь. Единственное ограничение работает на листе если нет других шейпов, иначе глюки... но есть мысли как это исправить, но пока что работает и так. К примеру присваивать имя из уникального имени и внутреннего счетчика чтобы с обычны шейпами не пересекался,Также можно сделать чтобы сканил шейпы в поисках меток, а далее счетчик +1.
я бы сделал проще: во вкладке Разработчик кнопкой Имя Фигуры, обозвал бы шейп например штука-дрюка и сделал столько ее копий комбинацией Ctrl+D, сколько будет нужно.
Изображениев итоге получил бы шейпы с именами штука-дрюка.2, штука-дрюка.3,… штука-дрюка.100500
Ах да, штука-дрюка - это и есть уникальное имя :)

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

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



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

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


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

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