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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Шаманские танцы с таблицей свойств страницы
СообщениеДобавлено: 13 дек 2020, 05:04 
Не в сети
Новичок

Зарегистрирован: 30 окт 2020, 01:46
Сообщений: 36
Использую Visio c: 2003
Уровнь квалификации: чуть выше базового
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
И снова нужна помощь уважаемых гуру!
Есть подготовленная рамка чертежа, которая не имеет фиксированного размера, но в свойствах которой жёстко указано отношение высоты к ширине в соответствии с пропорциями у стандартных листов. Есть сам чертёж, который выполняется на другом листе и части которого копируются на отдельные листы для последующей печати (поэтому часто элементы чертежа оказываются за пределами страницы). Размер частей чертежа может сильно меняться, поэтому заранее размер страницы не выставляется, а при печати в свойствах страницы указывается "Изменять размеры по содержимому". Рамка в ручном режиме растягивается под имеющиеся на листе объекты (хотелось бы, конечно, это тоже автоматизировать, но здесь, полагаю, без макросов не обойтись, а их освоение ещё только в планах).
Задача состоит в том, чтобы в таблице свойств рамки в actions прописать команды, которые подгоняли бы размер страницы под размер рамки и выставляли бы необходимые параметры печати.
Формулу в actions написал следующую:
SETF("ThePage!PageWidth",Width)+SETF("ThePage!PageHeight",Height)+SETF("ThePage!DrawingSizeType",1)+SETF("ThePage!onpage",TRUE)
В итоге при нажатии на соответствующий пункт меню в соответствии с формулой размер страницы действительно становится равным размеру рамки. Но при этом не происходит совмещение рамки (со всем содержимым, попавшим в неё) и листа, тогда как если зайти в "Параметры страницы" => "Свойства страницы" и выставить "Изменять размеры по содержимому" (а если этот пункт уже выбран, то просто нажать ОК), то такое совмещение происходит.
Если в формулу добавить +SETF("PinX",ThePage!PageWidth/2)+SETF("PinY",ThePage!PageHeight/2), то сама рамка совмещается с листом, но все остальные объекты остаются за его пределами.
Пробовал отследить, какие ещё ячейки изменяются при выполнении действия через "Параметры страницы" => "Свойства страницы", но никаких изменений не обнаружил.
Возможно, несколько сумбурно описал свои действия, поэтому записал гифку.
Подскажите, пожалуйста, как победить эту чуду-юду!

GIF: https://yadi.sk/i/WrAcOZv8WtAF-g (7,5 Мб)
VSD: https://yadi.sk/d/_JNgvl0_5kDlFQ (8 Мб)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаманские танцы с таблицей свойств страницы
СообщениеДобавлено: 13 дек 2020, 11:42 
Не в сети
Administrator

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

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


Вложения:
a111.gif
a111.gif [ 193.2 Кб | Просмотров: 409 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаманские танцы с таблицей свойств страницы
СообщениеДобавлено: 13 дек 2020, 13:18 
Не в сети
Новичок

Зарегистрирован: 30 окт 2020, 01:46
Сообщений: 36
Использую Visio c: 2003
Уровнь квалификации: чуть выше базового
Очков репутации: 0

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
в старых версиях можно сделать свой рукотворный контейнер, с урезанным функционалом.
1. Выбирает фигуру-приемник, аналог контейнера. Делаем из нее группу.
2. Данной группе прописываем в поведение возможность добавления фигур внутрь данной группы
Accept droped shapes
Изображение
3. Фигурам которые должны добавляться в группу нужно поставить галку в поле
Add shapes to groups on drop
4. Добавить фигуре-приемнику в контекстное меню Actions. Строку вызывающую обновление
контура фигуры
Actions.Update = DOCMD(1768)

Дополнено позднее: нет последний пункт не работает через DoCMD! Можно обновить рамку выравнивания только через команду на ленте.
Тестил сейчас на визио 2016, в большую сторону рамка выравнивания меняет размер. А в меньшую нет :wall:
Попробую вечером на компе с визио 2003!


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

Зарегистрирован: 30 окт 2020, 01:46
Сообщений: 36
Использую Visio c: 2003
Уровнь квалификации: чуть выше базового
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
В любом случае спасибо за совет! Нашёл обходной путь, который, в общем-то, устраивает: дополнил свои действия функцией "Центрировать документ", вынеся соответствующую кнопку на панель. Жаль только, что она тоже не работает через docmd и, насколько я понимаю, в контекстное меню (actions) её не добавить простыми путями (стараюсь делать, чтобы все действия выполнялись в пределах элемента, так как использоваться он будет на компьютерах с разными настройками и не везде интерфейс настроен удобно).


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

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



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

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


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

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