All Forums
 Категория Visio
 Форум Вопросы и ответы
 Автоизменение текста?
Next Page
Author Previous Topic Topic Next Topic

nonflame

Russia
19 Posts

Posted - 11/24/2008 :  11:22:36
Скажите, пожалуйста, можно ли сделать так чтобы менялся текст надписи в зависимости от условий? Например, создала свой шаблон автопозиционирующегося штампа, а надо чтобы в зависимости от формата менялась надпись "Формат А4" на "Формат А1" или на А2 и т.д

LooK! Work hard to see the WORLD

Tumanov

Russia
1198 Posts

Posted - 11/24/2008 :  16:36:45
Можно.
Для этого в соответствующий шейп нужно вставить поле, а формуле TextFields / Value должно быть условие примерно такого типа
=If(ThePage!PageWidth>430/25.4,"A1","A2")
Данный фрагмент (неправильный!) будет выводить текст А1, если ширина страницы больше 430 мм и А2 в противном случае.
Если хотим охватить больше форматов, формула будет вложенной. Вот формула на форматы А1-А4.
=If(ThePage!PageWidth>220/25.4,If(ThePage!PageWidth>300/25.4,If(ThePage!PageWidth>430/25.4,"A1","A2"),"A3"),"A4")
Если отслеживать и горизонтальное расположение, формула еще немного усложнится.
Еще может понадобиться учесть масштаб. А может и еще что-нибудь :)
Кандидаты на источник данных в свойствах страницы: PageWidth, PageHeight, PaperKind, PaperSource, PrintPageOrientation.
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/25/2008 :  07:04:13
quote:
Originally posted by Tumanov

Можно.
Для этого в соответствующий шейп нужно вставить поле, а формуле TextFields / Value должно быть условие примерно такого типа
=If(ThePage!PageWidth>430/25.4

Так как я только начинаю обучаться всему процессу, то мне немного непонятно с тем, куда вставлять=)
1)под словом "Поле" подразумевается текстовое?
2)Если текстовое поле уже есть в шаблоне, но я не могу найти данную ячейку, где ее поискать=)
3) для чего деление на 25.4?

LooK! Work hard to see the WORLD
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/25/2008 :  07:08:02
Может ли для данного действия использоваться раздел Shape Data, например?

LooK! Work hard to see the WORLD
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 11/25/2008 :  15:52:37
Читаете 6 первых абзацев из этой статьи
http://visio.artberg.ru/biblio/st003.htm
Это про шейп-лист. То, куда вставляются формулы.
Однако, для управления текстом нам нужна секция Text Fields, а по умолчанию она в шейп-листе не отображается. Чтобы она там появилась можно селектировать шейп и выполнить команды меню Insert / Field... и далее, что угодно. При этом в текстовом блоке шейпа начнет отображаться то, что Вы выбрали. Например, длина шейпа.
Вот теперь открываете шейп-лист, находите там секцию Text Fields и начинаете изменять формулу в ячейке Value.
А 25,4 - это чтобы перевести миллиметры в дюймы (у меня шкала установлена в миллиметрах). В Visio все внутренние расчеты ведутся в дюймах.
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/26/2008 :  07:37:11
quote:
Originally posted by Tumanov

Читаете 6 первых абзацев из этой статьи
http://visio.artberg.ru/biblio/st003.htm
Это про шейп-лист. То, куда вставляются формулы.
Однако, для управления текстом нам нужна секция Text Fields, а по умолчанию она в шейп-листе не отображается. Чтобы она там появилась можно селектировать шейп и выполнить команды меню Insert / Field... и далее, что угодно. При этом в текстовом блоке шейпа начнет отображаться то, что Вы выбрали. Например, длина шейпа.
Вот теперь открываете шейп-лист, находите там секцию Text Fields и начинаете изменять формулу в ячейке Value.
А 25,4 - это чтобы перевести миллиметры в дюймы (у меня шкала установлена в миллиметрах). В Visio все внутренние расчеты ведутся в дюймах.


спасибо большое, почитаю.
А насчет дюймов, то как я поняла, можно просто указать единицу измерения mm после числа, и тогда можно не делить на 25,4

LooK! Work hard to see the WORLD
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/26/2008 :  08:25:21
=IF(ThePage!PageWidth>210 mm,IF(ThePage!PageWidth>420 mm,IF(ThePage!PageWidth>594 mm,"Формат A1","Формат A2"),"Формат A3"),"Формат A4")
вот так получилось корректно, правда меня в основном интересует горизонтальное положение рамки, т.к. вертикальный штамп редко используется.
Но на всякий случай последний вопрос: Если, например, учитывать и высоту листа, то условие пишется через запятую? например:
(ThePage!PageWidth>594 mm,ThePage!Pageheight>594 mm"Формат A1","Формат A2") или нужно вставлять новое поле?

LooK! Work hard to see the WORLD
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/26/2008 :  12:50:42
да, вот еще вопросик возник, в статье по созданию рамки автопозиционирующейся есть возможность размещения нескольких форматок на 1 листе. Например, если я хочу создать схему, но не разделять ее по листам(например, листовое пространство по размерам 4хА1, на нем необходимо разместить 4 штампа А1, или на листе А1 разместить только штампы а3) как так сделать, если данный шаблон автоматически растягивается на тот формат листа, на который он выноситься?
З.Ы. И еще
Например у меня есть 2 текстовых поля, и я хочу, чтобы в этих полях были одинаковые надписи. Например, ссылка в одной из надписей на другую, чтобы изменив одну вторая тоже поменялась бы(децимальный номер проекта), где про это почитать можно, я так понимаю надо перекрестно присвоить значение одной надписи для другой.

Нашла подобную тему на форуме про ShapeText(Sheet.1!TheText), но!
когда я пытаюсь уже в шаблоне этого штампа определить sheet ID (определяю я его исключительно по шейп-листу фигуры, т.к. способом описанным во все той же статье по созданию штампа у меня его не получилось определить, так как не могу найти, как выполнить это действие), мне пишется такая вещь: Страница-1:А4 лист 1.120 <Фигура>
вместо Страница-1: sheet.1 <Фигура>
вобщем проблема как сделать и как осуществить автозамену децимального номера чертежа путем изменения хотя бы одного текста с дец.номером


LooK! Work hard to see the WORLD

Edited by - nonflame on 11/26/2008 14:53:22
Go to Top of Page

GDK

Russia
90 Posts

Posted - 11/26/2008 :  15:12:16
Про условие - есть ф-ция "AND" т.е.
If(AND(ThePage!PageWidth>594 mm,ThePage!Pageheight>594 mm)),"Формат A1","Формат A2").
Про дюймы/мм - лично я всегда стараюсь ставить mm.
Про длину формулы - по моему лучше разбить её по ячейкам user-defined Cells, используя одну ячейку для каждого формата и ф-цию "SETF()".
Про Вас - знаете ли Вы, что в справке по Visio ("F1") есть описание встроеных функций, хоть по англ., но многое понять можно. ("F1" -> Microsoft Office Visio ShapeSheet Reference -> Functions).
Про штамп - Стоит ли использовать именно АВТОПОЗИЦИОНИРУЮЩИЙСЯ шаблон для достижения Ваших целей.
Про равные значения для двух текстовых полей - не понятно что за поля т.е. где они: в секции "Text Fields" или же это дополнительные св-ва фигуры.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 11/26/2008 :  15:59:52
quote:
Про длину формулы - по моему лучше разбить её по ячейкам user-defined Cells, используя одну ячейку для каждого формата и ф-цию "SETF()".

Тогда уж не user-defined, а Scratch. В "родных" шейпах чаще всего они используются.
quote:
sheet ID (определяю я его исключительно по шейп-листу фигуры

Можно ткнуть в меню View / Drawing Explorer Window. Там окошко с деревом рисунка. Всю структуру видно.
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 11/27/2008 :  07:25:33
quote:
Originally posted by GDK


Про Вас - знаете ли Вы, что в справке по Visio ("F1") есть описание встроеных функций, хоть по англ., но многое понять можно. ("F1" -> Microsoft Office Visio ShapeSheet Reference -> Functions).
Про штамп - Стоит ли использовать именно АВТОПОЗИЦИОНИРУЮЩИЙСЯ шаблон для достижения Ваших целей.
Про равные значения для двух текстовых полей - не понятно что за поля т.е. где они: в секции "Text Fields" или же это дополнительные св-ва фигуры.


про справку: справка, несомненно, полезная штука, на английском читаю свободно, но у меня вечные проблемы с ее использованием, при поиске того или иного он меня на сайт визио отправляет, причем там не могу найти того, что конкретно мне необходимо, буду совершенствоваться в этом плане конечно. спасибо за наводку=)
про штамп: просто приятная мелочь, на которую надо тратить меньше времени, так как объем документации огромный, сейчас штамп у меня автопозиционируется по горизонтали и вертикали, пишет уже сам нужный формат(не без вашей помощи, хотя и пишлось поменять кой-чего, СПАСИБО ОГРОМНОЕ ЗА ПОМОЩЬ), пишет количество листов и текущий лист(и все в тех полях, которые для этого предназначены), штампы выложенные на сайте кривые какие-то, рамки с надписями выезжают, причем на любых ориентациях листа, кодировка текста не читается никак, размещение нескольких штампов на одном листе необходимо для удобства, так как схема состоит из нескольких листов, на них приборы, соединенные трассами,переходящими на несколько других листов, которые для удобства, опять же, не хотелось бы разрывать до определенного момента или отслеживать.
Про равные значения текстовых полей: есть децимальный номер находящийся уже в автопоз.штампе, который необходимо указывать в основной надписи и в малом штампе вверху чертежа, дело в том, что люди, работающие с документами, забывают менять верхний децимальный номер чертежа, поэтому если бы он становился таким же как и в основной надписи, значительно бы упрощало дело. Поэтому нужна ссылка на текст с децимальным номером в основной надписи, вопрос был в том, как узнать, номер этого блока текста в данном шаблоне, потому что его явно не определить, когда он уже там, в группе,
как я поняла делать это нужно в поле заново создаваемой формулы, либо содержании текста в TextField в Value

Спасибо огромное за помощь и понимание, я только учусь что либо делать в визио полезное и упрощающее мою работу, к сожалению, могу я делать это только на работе, так как вне нее времени катастрофически нет, ибо учусь еще, с удовольствием прочитаю книгу по всем азам, как только будет время, просто пока для ее пониманию необходима определенная помощь ибо попытки что-нить понять есть, но опять же из-за загруженности на работе, учебе на это нет необходимого времени=(((((

LooK! Work hard to see the WORLD
Go to Top of Page

GDK

Russia
90 Posts

Posted - 11/28/2008 :  15:11:08
Посмотрел что за штампы. Значит будете изменять их поведение под свои чертежи? Или делать свои новые? Это к тому что так и не понял где на них дец. номер, основная надпись и т.п. (забыл уже про это всё).
Да и обязательно ли искать этот ID, если можно определить имя интересуемой фигуры? А это просто. Достаточно выделить фигуру (в группе она или нет - это не важно), затем открыть окно дополнительные св-ва меню -> вид -> Особые свойства. В заголовке этого окна (там где крестик) будет написано, например, "особые свойства - Sheet.76", где Sheet.76 - имя выделенной в "настоящее время" фигуры.
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 12/01/2008 :  08:39:47
quote:
Originally posted by GDK

Посмотрел что за штампы. Значит будете изменять их поведение под свои чертежи? Или делать свои новые? Это к тому что так и не понял где на них дец. номер, основная надпись и т.п. (забыл уже про это всё).
Да и обязательно ли искать этот ID, если можно определить имя интересуемой фигуры? А это просто. Достаточно выделить фигуру (в группе она или нет - это не важно), затем открыть окно дополнительные св-ва меню -> вид -> Особые свойства. В заголовке этого окна (там где крестик) будет написано, например, "особые свойства - Sheet.76", где Sheet.76 - имя выделенной в "настоящее время" фигуры.


Свои новые я уже сделала, так как там не тот штамп, строительный вроде. Основная надпись - это большая таблица внизу штампа, в ее верхней большой ячейке и пишется децимальный номер проекта, например, АБВГ.123456.1234 ГЧ, так же он пишется в верхней маленькой таблице в штампе.
а про имя фигуры, я писала, что он выдает мне такое странное имя как "А4 лист 1.115", вопрос был в том, можно ли использовать это имя, русскоязычное и такое странное, вместо привычного "Sheet.76"

LooK! Work hard to see the WORLD
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 12/01/2008 :  15:45:22
У каждого шейпа куча имен. Даже невидимые есть :)
"А4 лист 1.115" - это то, которое Name. А привычное нерусскоязычное NameID составляется из слова Sheet и ID, которое видно в самом верхнем поле окошка Speсial. Окошко открывается в контекстном меню по Format / Special.
Go to Top of Page

nonflame

Russia
19 Posts

Posted - 12/02/2008 :  13:05:21
quote:
Originally posted by Tumanov

У каждого шейпа куча имен. Даже невидимые есть :)
"А4 лист 1.115" - это то, которое Name. А привычное нерусскоязычное NameID составляется из слова Sheet и ID, которое видно в самом верхнем поле окошка Speсial. Окошко открывается в контекстном меню по Format / Special.



я конечно извиняюсь за настойчивость, а может и мою тугодумость, но когда я захожу Format/special он как раз и показывает "А4 лист 1.115", а не ID=), точнее во вкладке "Формат" у меня нет подменю Special,только тект, заливка, сглаживание углов, защита, поведение, рукописные данные,слой. Зато во вкладке "Данные" подменю "Данные фигуры", как раз там и появляется окошко с данными фигуры, где и стоит это имя, а если я рисую заново фигуру в документе и выбираю "Данные фигуры", то мне показывает sheet.26

LooK! Work hard to see the WORLD

Edited by - nonflame on 12/02/2008 13:15:23
Go to Top of Page

GDK

Russia
90 Posts

Posted - 12/02/2008 :  15:55:23
В меню "формат" должен быть после подменю "поведение..." ещё один пункт. У меня он назыв. "особый...". Вот при клике на нём появляется как раз формочка, где указаны
------
ID:
Мастер:
Тип:
-------
Имя:
Справка:


--------

Ну и другие поля ещё есть.

Впрочем, неужели так важно откуда узнать имя фигуры для дальнейшего использования.

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

Edited by - GDK on 12/02/2008 15:56:31
Go to Top of Page
Previous Topic Topic Next Topic  
Next Page
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)