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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Количество повторяющихся элементов
СообщениеДобавлено: 26 мар 2014, 14:39 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Возник вопрос сколько раз в тексте повторяется определеный кусок.
LOOKUP к сожаленю не то.
Вот так у меня выравнивается текст по ширине:
Код:
=SETF("Char.FontScale",100%)+IF(((100%/(TEXTWIDTH(TheText)/Width)))>100%,(SETF("Char.FontScale",100%)),(SETF("Char.FontScale",((100%/(TEXTWIDTH(TheText)/Width+LeftMargin+RightMargin))))))

А так по высоте:
Код:
=SETF("Char.Size",Height)

И так если надо текст написан в несколько строк?
Нужно найти сколько CHAR(13)&CHAR(10) содержится в SHAPETEXT(TheText,0) и поделить Char.Size на количество найденных переносов каретки.

В EXEL это делается СУММЕСЛИ, как сделать в VISIO ? С макросами я не силен.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Количество повторяющихся элементов
СообщениеДобавлено: 26 мар 2014, 15:21 
Не в сети
Content manager
Content manager
Аватара пользователя

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

например Digitall (автор проектов prodigitall.narod.ru [сайт функционирует, но на нем завелись не хорошие скрипты - копия сайта], ovisio.ru [сайт прекратил свое существование в 2016 году]), делал что-то подобное так

создавал в user.defined cells кучу строк в которых производил разделение текста. как-то так например
User-defined cells
Value
Prompt
user.row_1
=SHAPETEXT(TheText)
=FIND("бла",User.Row_1,1)
user.row_2
=MID(User.Row_1,User.Row_1.Prompt+1,LEN(User.Row_1)-User.Row_1.Prompt)
=FIND("бла",User.Row_2,1)
user.row_3
=MID(User.Row_2,User.Row_2.Prompt+1,LEN(User.Row_2)-User.Row_2.Prompt)
=FIND("бла",User.Row_3,1)
user.row_4
=MID(User.Row_3,User.Row_3.Prompt+1,LEN(User.Row_3)-User.Row_3.Prompt)
=FIND("бла",User.Row_4,1)

Shape Data
Value
prop.row_1
=NOT(ISERR(User.Row_1.Prompt))+NOT(ISERR(User.Row_2.Prompt))+NOT(ISERR(User.Row_3.Prompt))+NOT(ISERR(User.Row_4.Prompt))

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 26 мар 2014, 19:19 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
Нужно найти сколько CHAR(13)&CHAR(10) содержится в SHAPETEXT(TheText,0)

Число строк для случая, когда автоматического переноса нет:
Код:
(LEN(SHAPETEXT(TheText))-LEN(SUBSTITUTE(SHAPETEXT(TheText),CHAR(13)&CHAR(10),"$"))+1)

Kaerius писал(а):
выравнивается текст по ширине ... по высоте

Для этого в секции TextTransform есть свойства TxtPinX c TxtPinY и TxtLocPinX c TxtLocPinY.
Или я неправильно понял, что требуется получить?

PS: Surrogate, ты что-то перемудрил...


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Qwertiy писал(а):
PS: Surrogate, ты что-то перемудрил...
я ж писал, что видел что-то подобное у Digitall (автор проектов prodigitall.narod.ru [сайт функционирует, но на нем завелись не хорошие скрипты - копия сайта], ovisio.ru [сайт прекратил свое существование в 2016 году]), правда для другого случая были созданы 100 строк

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Количество повторяющихся элементов
СообщениеДобавлено: 02 апр 2014, 07:41 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Qwertiy писал(а):
Число строк для случая, когда автоматического переноса нет:
Код:
(LEN(SHAPETEXT(TheText))-LEN(SUBSTITUTE(SHAPETEXT(TheText),CHAR(13)&CHAR(10),"$"))+1)


То что нужно, так как авто переноса не будет так как строка подгоняется по шининей шейпа. И спасибо за TextTransform, не знал.


Код:
=SETF("Char.FontScale",100%)+IF(((100%/(TEXTWIDTH(TheText)/Width)))>100%,(SETF("Char.FontScale",100%)),(SETF("Char.FontScale",((100%/(TEXTWIDTH(TheText)/Width+LeftMargin+RightMargin))))))

Код:
=SETF("Char.Size",(Height-(TopMargin+BottomMargin))/(LEN(SHAPETEXT(TheText))-LEN(SUBSTITUTE(SHAPETEXT(TheText),CHAR(13)&CHAR(10),"$"))+1))

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

Обнаружена проблема, не совсем корректно работает масштабирование на уменьшение. То есть пишем текст и уменьшаем шейп, если уменьшать более чем в два раза по высоте или ширине текст вылезет, а если его набрать этот же текст снова, то он нармально помещается внутри шейпа. Проблема абсолютно не критична, так как размеры шейпов у меня заданы и не изменяемы.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 02 апр 2014, 13:02 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Во-первых, а куда ты это пишешь?
Во-вторых, зачем вообще SETF - почему бы просто в саму ячейку формулу не написать?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Количество повторяющихся элементов
СообщениеДобавлено: 03 апр 2014, 12:05 
Не в сети

Зарегистрирован: 17 сен 2013, 11:47
Сообщений: 13
Использую Visio c: 2010
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
SETF, мне лично удобнее, а так да можно в ячейку вставить.
Штамп по ГОСТ, если надо забить много текста чтобы он утрамбовался в размере поля.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 03 апр 2014, 12:58 
Не в сети
Ветеран

Зарегистрирован: 06 май 2013, 13:01
Сообщений: 746
Откуда: Россия
Использую Visio c: 2013
Очков репутации: 18

Добавить очки репутацииУменьшить очки репутации
Kaerius писал(а):
SETF, мне лично удобнее, а так да можно в ячейку вставить.

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


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

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



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

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


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

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