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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 01 фев 2010, 12:03 
Не в сети

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Мне нужно, чтобы при копировании нумерция элементов менялась, но для различных элементо по-разному. Подскажите, как это сделать.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 01 фев 2010, 19:25 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Да кто ж Вам на такой вопрос ответит... Надо же хоть какие-то вводные данные дать.
Откуда взялась нумерация до копирования - проставлена вручную или визардом автонумерации?
Чем отличается "по-разному"? По какому признаку можно различить разные элементы?
И т.д.


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

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 03 фев 2010, 15:42 
Не в сети

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
вот например, если это одна группа элементов, можно ли сделать, чтобы номер каждого увеличивался на один при копировании?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 03 фев 2010, 20:00 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Для того, чтобы управлять номером придется в каждый из нужных шейпов вставить поле для формирования текста. Текст будет составляться или складываться из некоторой постоянной части и переменного значения. Переменное значение будет получаться по ссылке из специальной ячейки данных группы. Такую ячейку надо будет завести в секции User-defined cells или Shape Data. Это все настраивается в шейп-листе (таблица свойств фигуры). Тогда достаточно будет только увеличить на 1 значение в этой ячейке и тексты нужных шейпов тоже увеличатся на 1.
Теперь как изменять управляющую ячейку. Нужно написать макрос - обработчик события добавления шейпа (Document_ShapeAdded). Ведь при каждом копировании добавляется новый шейп. Макрос будет считывать значение управляющей ячейки и добавлять к нему 1.
Вот примерно так.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 04 фев 2010, 18:40 
Не в сети

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спасибо! А что нужно написать в ячейке User-defined cells?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 04 фев 2010, 20:01 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Ну, например, следующее:
В группе User.Row_1 = 2
В первом элементе группы в ячейке User.Row_1.Prompt ="R"&Sheet.3!User.Row_1
В ячейке TextFields.Value = =User.Row_1.Prompt
Во втором элементе группы в ячейке User.Row_1.Prompt ="C"&Sheet.3!User.Row_1
В ячейке TextFields.Value = =User.Row_1.Prompt
Макрос:
Код:
Private Sub Document_ShapeAdded(ByVal Shape As IVShape)
    On Error Resume Next
    Shape.Cells("User.Row_1") = Shape.Cells("User.Row_1") + 1
    On Error GoTo 0
End Sub

Теперь в исходном шейпе увидим на компонентах надписи R2 и C2.
Если шейп сдублировать на копии будут надписи R3 и C3.
И т.д.
Все, что написано, сделано в прилагаемом файле.


Вложения:
GroupNum.zip [12.34 Кб]
Скачиваний: 168
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 08 фев 2010, 11:44 
Не в сети

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Еще раз спасибо! Но как я поняла, переменный номер во всех элементах должен быть одинаковый(т.е. R2, C2, R3, C3 и т.д.)? А возможно ли сделать так, чтоб это не было обязательным условием?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 08 фев 2010, 20:20 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Конечно можно.
Вот здесь значение компонуется со всякими приставками
User.Row_1.Prompt ="C"&Sheet.3!User.Row_1
Можно сделать, например, ="C" & 3 + Sheet.3!User.Row_1
Тогда к номеру будет добавляться еще смещение на 3.
Да и вообще, в формулах можно любую арифметику использовать.


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

Зарегистрирован: 01 фев 2010, 11:41
Сообщений: 6
Откуда: москва
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спасибо огромное! ;)


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

Зарегистрирован: 21 май 2010, 21:21
Сообщений: 75
Использую Visio c: 1999
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Автоматическая нумерация шейпов.

Для того чтобы ваши шейпы автоматически нумеровались, они должны иметь свойство Prop.number

В секцииAction написать формулу =RUNADDON("number.exe"), и иметь файл number.exe, теперь в контекстном меню шейпа будет меню с запуском программы нумерации, шейпы будут нумероваться по порядку выделения


Вложения:
number.rar [4.54 Кб]
Скачиваний: 167


Последний раз редактировалось Surrogate 17 мар 2016, 01:18, всего редактировалось 1 раз.
обозначены битые ссылки
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать раздельную нумерацию для элементов в группе?
СообщениеДобавлено: 25 май 2010, 15:33 
Не в сети
Постоянный участник

Зарегистрирован: 21 май 2010, 21:21
Сообщений: 75
Использую Visio c: 1999
Очков репутации: 2

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


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

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



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

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


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

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