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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 115 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 24 авг 2012, 17:03 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Surrogate, ок. Будем читать.. Спасибо!


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
самый простой и тупой вариант

макросом (или если удастся сделать это в шарпе) нужно вычислить высоту листа, в терминах shapesheet: PageWidth
это значение нужно разделить с округлением вверх на число 286,4166667 mm, полученное целое число умножить на 286,4166667
мм.
Это значение нужно загнать в значение PageWidth. И еще было бы неплохо обнулить значения YRulerOrigin и YGridOrigin. После этого линейка будет начинаться с нуля

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 24 авг 2012, 17:29 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Surrogate, спасибо Вам ещё раз!! Читаю код построения отчета, дальше будем думать как и что)


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
попробовал написать макрос, но все равно как-то непредсказуемо он работает…
Код:
Sub vv()
Dim ni As Double
Dim wi As Double
wi = ActivePage.PageSheet.Cells("PageHeight") ' определяем высоту страницы в дюймах
ni = Abs(Int(wi / -11.27624672)) * (11.27624672) ' так замысловато вычисляется то, что я хотел найти.
ActivePage.PageSheet.Cells("PageHeight").Formula = ni ' присваиваем листу новую высоту
ActivePage.PageSheet.Cells("YRulerOrigin").Formula = 0 ' присваиваем листу новую точку начала линейки
ActivePage.PageSheet.Cells("YgridOrigin").Formula = 0 ' присваиваем листу новую точку начала сетки
End Sub

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 24 авг 2012, 17:55 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Огромное спасибо!!! Жаль тут нет репутации, я бы с удовольствием отплюсовался)

Я скоро уже домой, завтра отпишусь что получится. Спасибо еще раз!


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ssementsov писал(а):
Огромное спасибо!!! Жаль тут нет репутации, я бы с удовольствием отплюсовался)

здесь есть только звания - звание зависит от числа сообщений…
я тут и так админ, зачем мне еще репутация ? ;)

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


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

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Surrogate, ну, к примеру на cyberforum.ru есть репутация. Там за каждый пост, который посчитали полезным ставится "Спасибо". Таким образом видно, у кого сколько сообщений, и какое кол-во сообщений оказалось полезным.

Просто интересно поглядывать иногда. И людям интересно помогать, когда их "благодарят"))


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ssementsov
Полазил по настройкам форума, оказывается здесь тоже можно включить репутацию!

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


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

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Surrogate, вот видите) теперь уже у Вас +1 к репутации есть ;)


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
спасибо :)

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 24 авг 2012, 19:06 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
9rey писал(а):
обязательно менять высоту страницы? может быть просто сразу создавать новую и продолжать на ней?

я так понял эту портянку будут печатать на плоттере…
можно добавить страницу, но на странице есть "мертвая зона", которая не печатается. распечатав картинку на нескольких листах, ее не удастся склеить.

Или я чето не понимаю ?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 25 авг 2012, 11:16 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
ну если так то да. пусть автор разъяснит)


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

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
9rey, в шаблоне изначально было 5 страниц. Отчет всегда влазит на 4-5 страниц. Но появились исключения, для слишком глубоких скважин отчет не влазит на 5 страниц.

Мне кажется, что надо добавить еще одну страницу. А если отчет влез на 4 страницы, то 5-ю удалять.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
печатается отчет на рулоне или листами А3 ?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 27 авг 2012, 03:31 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Скорее всего да. Я не видел его в готовом варианте. Он формируется уже на самом предприятии.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автоматический подгон размера страницы
СообщениеДобавлено: 27 авг 2012, 11:44 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Мне надо добавить ещё один лист. 6-й.. Как это можно сделать, подскажите плиз..
Могу изменить размер страницы. Увеличив её на такой же размер листа. Но это как-то кажется мне странным. С визио первый раз столкнулся.

Нету ли тут возможности добавить ещё один лист размера А3 в конец страницы?


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

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

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

Если бы при изменения размера страницы она добавлялась вниз, то и поднимать бы группы не пришлось бы)

Код:
           
            if (endPart.Bottom < 0)
            {
                VisioCellEditor.VisioApplication.ActivePage.BackPage = string.Empty;

                VisioCellEditor.VisioApplication.ActivePage.PageSheet.CellsSRC[(short)VisSectionIndices.visSectionObject,
                    (short)VisRowIndices.visRowPage, (short)VisCellIndices.visPageWidth].FormulaU = "16.5354 in";

                VisioCellEditor.VisioApplication.ActivePage.PageSheet.CellsSRC[(short)VisSectionIndices.visSectionObject,
                    (short)VisRowIndices.visRowPage, (short)VisCellIndices.visPageHeight].FormulaU = "1680mm";

                projectPropertyCellEditor.Move(0, 11.02);
                mainTable.Move(0, 11.02);
                endPart.Move(0, 11.02);
            }


Код:
        public override void Move(double dx, double dy)
        {
            VisioApplication.ActiveWindow.DeselectAll();
            VisioApplication.ActiveWindow.Select(Shape, (short)VisSelectArgs.visSelect);
            VisioApplication.ActiveWindow.Selection.Move(dx, dy, (short)VisUnitCodes.visInches);
        }


Последний раз редактировалось ssementsov 27 авг 2012, 13:03, всего редактировалось 1 раз.

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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Код:
Sub Test()
Dim se As Selection                 ' объект Selection
ActiveWindow.SelectAll              ' выделяем все на листе
Set se = ActiveWindow.Selection     ' присваиваем переменной
Debug.Print se.Count
Dim sh As Shape                     '
Set sh = se.Group
Debug.Print sh.ID, se.Count
Dim ni As Double
Dim wi As Double
wi = sh.Cells("Height") + 1 ' определяем высоту группы всех шейпов в дюймах + 1 дюйм (на этот дюйм групповой шейп будет смещен от верха листа)
ni = Abs(Int(wi / -11.27624672)) * (11.27624672)  ' так замысловато вычисляется, высота листа кратная 297 мм на которой может полностью уместиться группа
ActivePage.PageSheet.Cells("PageHeight").Formula = ni ' присваиваем листу новую высоту
ActivePage.PageSheet.Cells("YRulerOrigin").Formula = 0 ' присваиваем листу новую точку начала линейки
ActivePage.PageSheet.Cells("YgridOrigin").Formula = 0 ' присваиваем листу новую точку начала сетки
sh.Cells("Piny").Formula = ni - 1                      ' размещаем группу на 1 дюйм ниже верхнего края листа
sh.Cells("LocPinY").Formula = """=Height*1"""
sh.Ungroup                                              ' разгруппируем наш шейп
End Sub


Данный код группирует все шейпы, исходя из высоты шейпа настраивает высоту листа и позиционирует групповой шейп на 1 дюйм ниже верхнего края листа

Проверял у себя - все работает :)
Давно хотел сделать, что-то подобное (для одного из своих ближайших проектов) - было лень… Спасибо автору вопроса !!!

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


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

Зарегистрирован: 22 авг 2012, 14:40
Сообщений: 126
Откуда: Беларусь, Гомель
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Surrogate, интересно) Сейчас попробую у себя поюзать)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 115 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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



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

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


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

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