Форум пользователей Visio
http://visio.getbb.ru/

Шейпы с полями данных
http://visio.getbb.ru/viewtopic.php?f=6&t=990
Страница 1 из 4

Автор:  powercat [ 18 июл 2016, 15:32 ]
Заголовок сообщения:  Шейпы с полями данных

Привет.
Такая задача...нужно сделать неограниченное количество шейпов с полями данных...Например, объект автобус и поля - дети, взрослые, багаж. Рисую этот объект, в поля ввожу числа (сколько детей, взрослых и багажа поедут). Создаю второй объект с этими же полями, ввожу другие числа. Потом буду это обрабатывать, но это другая задача.
Главное - что-то типа создания объекта "Автобус" и далее создание его экземпляров на листе, причем обязательно с полями.
Сейчас я в качестве поля использую свойство эээ...вроде бы текст (да, точно, текст), чтобы задать какое-либо число, а требуется задавать несколько чисел...

Куда копать?

Автор:  Surrogate [ 18 июл 2016, 15:49 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
Сейчас я в качестве поля использую свойство эээ...
Ты про ShapeData (Custom Properties) ?
Изображение
powercat писал(а):
чтобы задать какое-либо число, а требуется задавать несколько чисел...
в смысле несколько чисел или несколько полей ?
powercat писал(а):
Куда копать?
может проще создать мастер с нужным числом полей ?
или я не понял глубины глубин :)

Автор:  powercat [ 18 июл 2016, 15:58 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Вот, нарисовал пример.
Пусть будет панель управления, но можно и без нее - чтобы можно было чем-нить создать событие.
При каждом клике должен создаваться экземпляр объекта "автобус". Все поля уже должны быть в нем, причем не просто шейпами, а мне потом надо будет их обработать (посчитать, сколько всего будет всех в конечном пункте). Сейчас я могу обратиться к шейпу и взять его свойство текст, а как сделать много полей - непонятно ((
Надо что-то типа обращения - автобус1.поле1.текст, автобус1.поле2.текст и т.д.

Вложения:
1 - Microsoft Visio_2016-07-18_16-54-51.png
1 - Microsoft Visio_2016-07-18_16-54-51.png [ 25.71 Кб | Просмотров: 1267 ]

Автор:  Surrogate [ 18 июл 2016, 16:14 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Surrogate писал(а):
может проще создать мастер с нужным числом полей ?
как то так

Вложения:
bus.vsd [25 Кб]
Скачиваний: 142
scr_51.png
scr_51.png [ 15.69 Кб | Просмотров: 1442 ]

Автор:  powercat [ 18 июл 2016, 16:18 ]
Заголовок сообщения:  Re: Шейпы с полями данных

аа...это...куда смотреть? )))
Файл скачал, а что дальше с ним делать - не знаю ))

Автор:  powercat [ 18 июл 2016, 16:30 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Surrogate писал(а):
Surrogate писал(а):
может проще создать мастер с нужным числом полей ?
как то так

:o Это какой раздел? Никогда с таким не работал :D

Автор:  Surrogate [ 18 июл 2016, 16:31 ]
Заголовок сообщения:  Re: Шейпы с полями данных

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

Автор:  powercat [ 18 июл 2016, 16:34 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Благодарю.
Теперь два вопроса:
1. Как это сделать - где описан процесс создания такой прикольной штуки?
2. Как обратиться теперь к этим полям?

Автор:  Surrogate [ 18 июл 2016, 16:44 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
Как это сделать - где описан процесс создания такой прикольной штуки?
такого мануала не могу припомнить. но на форуме схожие вещи часто обсуждаем :)
powercat писал(а):
Как обратиться теперь к этим полям?
вот так
Код:
Dim sh As Shape
Set sh = ActiveWindow.Selection.PrimaryItem
' получить значения полей
Debug.Print sh.Cells("Prop.child"), sh.Cells("Prop.Adult"), sh.Cells("Prop.Bagage")
' задать значения поля
sh.Cells("Prop.Bagage") = 88

Автор:  powercat [ 18 июл 2016, 16:47 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Благодарю. Буду поизучать.
А как это вообще сделано, т.е. с помощью чего?

Автор:  Surrogate [ 18 июл 2016, 17:33 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
т.е. с помощью чего?
никакой магии, чисто работа ручками!
пошагово:
1. нарисовал большой квадрат
2. добавлены 6 маленьких (3 ряда по 2 столбца)
3. в квадратиках слева написал названия полей (Ребенок/Взрослый/Багаж)
4. сгруппировал всё это
5. добавил соответствующие ShapeData (Ребенок/Взрослый/Багаж - Child/Adult/Bagage) полученному групповому шейпу
6. вошел внутрь группы и в квадратики справа вставил соответствующие значения полей. нажав Ctrl+F9
Изображение
Ребенок => Sheet.<ID группового шейпа>!Prop.Child
Взрослый => Sheet.<ID группового шейпа>!Prop.Adult
Багаж => Sheet.<ID группового шейпа>!Prop.Bagage

------------------------------------------
теперь значения в квадратиках справа будут соответствовать введенным свойствам группового шейпа

Автор:  powercat [ 18 июл 2016, 18:33 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Surrogate писал(а):
powercat писал(а):
т.е. с помощью чего?
никакой магии, чисто работа ручками!
пошагово:
1. нарисовал большой квадрат
2. добавлены 6 маленьких (3 ряда по 2 столбца)
3. в квадратиках слева написал названия полей (Ребенок/Взрослый/Багаж)
4. сгруппировал всё это
5. добавил соответствующие ShapeData (Ребенок/Взрослый/Багаж - Child/Adult/Bagage) полученному групповому шейпу
6. вошел внутрь группы и в квадратики справа вставил соответствующие значения полей. нажав Ctrl+F9
Изображение
Ребенок => Sheet.<ID группового шейпа>!Prop.Child
Взрослый => Sheet.<ID группового шейпа>!Prop.Adult
Багаж => Sheet.<ID группового шейпа>!Prop.Bagage

------------------------------------------
теперь значения в квадратиках справа будут соответствовать введенным свойствам группового шейпа


А пункт 6 - что-то не понял что там за формула ((
Остальное пока получается, большушее мерси!

Автор:  Surrogate [ 18 июл 2016, 18:39 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
А пункт 6 - что-то не понял что там за формула ((
смотришь ID группового шейпа - например 5 как на скрине
и пишешь соответственно
Ребенок => Sheet.5!Prop.Child
Взрослый => Sheet.5!Prop.Adult
Багаж => Sheet.5!Prop.Bagage

Автор:  powercat [ 18 июл 2016, 19:00 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Хм...у меня где имя поля ничего не появляется
Изображение

Автор:  Surrogate [ 18 июл 2016, 19:03 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
у меня где имя поля ничего не появляется
а кнопку OK внизу окошка нажимал ? ты кстати ID шейпа правильный написал или как у меня в примере взял ? Изображение

Автор:  powercat [ 18 июл 2016, 19:07 ]
Заголовок сообщения:  Re: Шейпы с полями данных

А, понял, оно после появляется.
Да, правильно, у меня тоже 5...
Так...а как (мое любимое выражение) это все в шаблоны сунуть?
И еще...ты по учебнику Туманова это все выяснил или тыком (хотя тык на таком уровне вроде не должен работать уже)?

Автор:  Surrogate [ 18 июл 2016, 19:22 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
а как (мое любимое выражение) это все в шаблоны сунуть?
взять и перетащить или в Document Stencil или внешний vss-файл
Изображение
powercat писал(а):
ты по учебнику Туманова это все выяснил или тыком
я уж не помню. возможно второй вариант. книжку я увидел примерно в 2008 году. а подобные вещи стал делать в 2004 году. изредка поглядывая на prodigitall.narod.ru [сайт функционирует, но на нем завелись не хорошие скрипты - копия сайта] от Digitall™ (доступ к инету тогда был очень редко) и форум Туманова который был в тот момент

Автор:  powercat [ 18 июл 2016, 19:25 ]
Заголовок сообщения:  Re: Шейпы с полями данных

Ага...а даблклик как организовать?
Да, если получится все сделать как я хочу, то работа у меня примерно в 10000 раз ускорится...
В качестве платы могу поделиться программой англорусских карточек (недавно написал) )))

Автор:  Surrogate [ 18 июл 2016, 19:36 ]
Заголовок сообщения:  Re: Шейпы с полями данных

powercat писал(а):
а даблклик как организовать?
Surrogate в сообщении #7347 писал(а):
добавь в ячейку EventDblClick формулу DOCMD(1312) - будет вызываться форма для ввода.
powercat писал(а):
В качестве платы
???

Автор:  powercat [ 18 июл 2016, 20:13 ]
Заголовок сообщения:  Re: Шейпы с полями данных

ну...не люблю быть обязанным ))

Страница 1 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/