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

Форум по вопросам применения и программирования в Visio
Текущее время: 22 окт 2018, 19:27

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 09:58 
На нотации BPMN(стандартный шаблон в визио 2013) имеется шейп с мастером Gateway - шлюз. Его тип хранится в виде:
=INDEX(номер значения из формата,Prop.BpmnGatewayType.Format).
Так вот, подскажите как получить не строку из формата, а значимое число?
Задача состоит в импорте из любого кастомного шаблона в мой стандартизированный. Сейчас я сделал прямые соответствия через словарик, но чую что не самый это лучший вариант.
И хотелось бы узнать как изменить мастер? Например, добавить состояния этому шлюзу.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 09:59 
Забыл добавить, значение забираю через
Код:
shape.get_CellsSRC(section, row, cell).get_ResultStrU(flag);


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 10:29 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
...не строку из формата, а значимое число?

Вот тут бы поподробнее...
Вам нужно значение индекса? Его наверно проще всего взять из формулы. То есть выбрать из формулы подстроку от скобки до запятой.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 10:34 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
И хотелось бы узнать как изменить мастер? Например, добавить состояния этому шлюзу.

Добавить к формуле в поле "Format" еще значения через точку с запятой.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 11:12 
Tumanov писал(а):
Цитата:
И хотелось бы узнать как изменить мастер? Например, добавить состояния этому шлюзу.

Добавить к формуле в поле "Format" еще значения через точку с запятой.

А если добавлю, ведь эти значения не будут обрабатываться? Я бы хотел изменить так, чтобы добавленное значение обрабатывалось и шейп изменялся.

Tumanov писал(а):
Цитата:
Вот тут бы поподробнее...
Вам нужно значение индекса? Его наверно проще всего взять из формулы. То есть выбрать из формулы подстроку от скобки до запятой.

Сложно тут сказать. Мне бы получить цифры, которые можно как-то однозначно перевести в мои. Возможно некие системные значения, но я не слишком хорошо знаю как это всё хранится.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 11:43 
Не в сети
Administrator

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

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

Это почему?
Вся конструкция полностью замыкается в шейпе.
В ячейке Format находится список выбираемых значений.
В Value стоит формула, показывающая, какое значение выбрано в данный момент (по индексу).
Единственное скрытое действие - это изменение индекса в момент выбора пользователем нового значения из списка. Например, пользователь выбирает третью строку - движок Visio изменяет формулу, подставляя в нее значение 3.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 12:39 
Tumanov писал(а):
Цитата:
А если добавлю, ведь эти значения не будут обрабатываться?

Это почему?
Вся конструкция полностью замыкается в шейпе.
В ячейке Format находится список выбираемых значений.
В Value стоит формула, показывающая, какое значение выбрано в данный момент (по индексу).
Единственное скрытое действие - это изменение индекса в момент выбора пользователем нового значения из списка. Например, пользователь выбирает третью строку - движок Visio изменяет формулу, подставляя в нее значение 3.

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


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 12:53 
Не в сети
Administrator

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

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

Это мы наверное о разных вещах говорим...
Я говорил о типе данных "Фиксированный список" в Shape Data. В этом случае список хранится в ячейке Format, а выбираемое значение фиксируется функцией Index в ячейке Value. Для того, чтобы изменить список выбора, нужно менять значение в ячейке Format.
Ни о каком перекрашивании в другой цвет здесь речи не идет.
Значит я не понимаю Вашего вопроса.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 14:53 
Tumanov писал(а):
Цитата:
Например перекрасить его в другой цвет.

Это мы наверное о разных вещах говорим...
Я говорил о типе данных "Фиксированный список" в Shape Data. В этом случае список хранится в ячейке Format, а выбираемое значение фиксируется функцией Index в ячейке Value. Для того, чтобы изменить список выбора, нужно менять значение в ячейке Format.
Ни о каком перекрашивании в другой цвет здесь речи не идет.
Значит я не понимаю Вашего вопроса.

Хорошо. В ячейке Format имеются некие значения типа "Фиксированный список". Выбирая одно из них шейп меняется. Например, рисунок на шейпе изменяется.
Вопрос в том, как настроить эти правила трансляции, то есть добавить своё правило.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 15:11 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Да тут море вариантов...
Нужно брать наиболее подходящий для конкретного случая.
Ну, например, пусть в списке три значения: круг, квадрат, треугольник. Значит после того, как пользователь выберет значение, в соответствующем "Prop.имяСвойства" будет одно из этих значений (если читать как строку).
Теперь делаем в шейпе три секции геометрии. Свойство NoShow у каждой из них настраивается на совпадение с одним из трех указанных значений.
Значит, выберет пользователь "круг" - будет видна только секция геометрии с кругом. Выберет "квадрат" - увидит только квадрат.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 29 июн 2016, 15:38 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Вот примерчик. Это нужно?


Вложения:
kv.vsd [12.5 Кб]
Скачиваний: 29
kv.gif
kv.gif [ 77.11 Кб | Просмотров: 567 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 01 июл 2016, 12:09 
Спасибо большое, вроде бы разобрался!


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Хранение и получение свойств фигуры
СообщениеДобавлено: 03 июл 2016, 09:14 
Не в сети
Постоянный участник

Зарегистрирован: 02 апр 2013, 10:52
Сообщений: 92
Очков репутации: 9

Добавить очки репутацииУменьшить очки репутации
Добавлю свои 5 копеек
Вместо формулы
Код:
IF(STRAME(prop.a,"квадрат"),0,1)

можно воспользоваться
Код:
LOOKUP(Prop.a,Prop.a.Format)=2


Это как раз стандартная функция Visio, которая определяет индекс искомого значения. Tumaev, кажется, забыл о ней, хотя несколько лет назад кажется от него я о данной функции и узнал :)

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


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

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



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

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


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

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