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

Форум по вопросам применения и программирования в Visio
Текущее время: 17 окт 2017, 03:48

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 12:13 
Не в сети
Аватара пользователя

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Видимо я чего то не допонимаю, поясни пожалуйста.


Вложения:
Visio-4.jpg
Visio-4.jpg [ 172.83 Кб | Просмотров: 1420 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 12:18 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
oops ! проглядел что ты хочешь занести это значение в TheDoc!
тут два нюанса.
1. если в документе несколько листов, то при ссылке на шейп с другого листа в формуле добавляется префикс с указанием имени листа
Pages[Page-1]!sheet.4!prop.row4
по аналогии с 3-я улица Строителей, дом 25. но надо уточнять за какой город таки идет речь :)
2. в TheDoc не рекомендуется заносить подобные формулы !
это вызывает ошибку визио #318 !!!
Изображение
Ошибка №318 (Error 318). Самая безобидная ошибка, появляется в определенных случаях, когда перемещение данных, из документа (TheDoc) до фигуры (TheSheet), осуществляется через промежуточные ячейки. Лечится простым удалением «пятого колеса», т.е. этих самых промежуточных ячеек на страницах (ThePage).

в ячейку TheDoc!user.row_33 надо заносить значение той ячейки, не формулу. как это сделать подробно описывалось в той ветке куда я тебя постоянно отсылаю ! нужно использовать функцию SETF


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Огромное спасибо!!!

что-то подобное и подозревал ибо имеем дело с обьектно-ориентированном программировании)

По вашему совету не стал даже пробовать заносить значение этой ячейки в TheDoc! поменял ссылки в документе на такого типа выражения:
Pages[Page-1]!sheet.4!prop.row4

Все работает! Уважаемому Surrogate большое человеческое спасибо!

Уже возникают в голове мысли про связку с Excel но это попозже)))
В топиках вроде видел соответствующие темы!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 12:53 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
лично я прошел по такому пути.
0. когда число полей было маленьким я использовал штатные свойства файла, без использования TheDoc (2004-2005)
1. потом добавил ShapeData на одном листе, и в TheDoc прописал эти формулы. Столкнулся с ошибкой 318 (2006)
недавно получил такой привет из прошлого
2. На фоновом листе в нескольких прямоугольниках вводил данные, через SETF транслировал данные в TheDoc (2007)
тут у меня даже была реализация типа внутренней базы данных. По номеру АТС в TheDoc транслировалась информация именно за эту АТС
3. Ввод данных с помощью "серого псевдо-окошка Windows" (2008)
4. Перенос данных из эксель (2010)


Последний раз редактировалось Surrogate 06 апр 2015, 12:36, всего редактировалось 1 раз.
добавлена ссылка на Привет из прошлого


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Да с SETF повеселее ссылки вставлять) - один раз вставил поле в тексте а потом можно копипастить сам link по всему документу не прибегая постоянно к действиям по InsertField)))
Благодарствую!!! Большое дело делаете людям помогаете сократить время их мучений!!!!!!!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 16:06 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
я тебе больше скажу
Surrogate в сообщении #6457 писал(а):
3. при вытаскивании мастера "Форма ввода данных" на лист в целевой документ, все ячейки содержащиеся в TheDoc документа набор форм для РД-45.vss
оказываются в TheDoc целевого документа !!!
такая вот уличная офисная магия.
в нашем случае если ты скопируешь фигуру в которой есть поле содержащее ссылку на ячейку в TheDoc, например TheDoc!user.test. и вставишь фигуру в документ в котором нет такой ячейки. то она таки туда занесется, правда со значением из первоначального документа. этот фокус может избавить от добавления вручную ячеек в TheDoc нового документа…
иногда правда таким образом в документ заносится масса ненужных ячеек TheDoc


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Что то я поспешил с SETF:
в UDC(UserDefineCells) функция работает но в ячейке остается не сама формула а текущее значение!
=SETF("TheDoc!User.Row_6", Pages[обложка]!sheet4!prop.row_1)

сделал в User.Row_6.Prompt =Pages[обложка]!sheet4!prop.row_1
ссылка из документа на ячейку User.Row_6.Prompt таким образом работает и без SETF.

Как правильно вписывать SETF в ячейку Value чтобы с ней все заработало ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 16:58 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Андрей5564 писал(а):
в UDC(UserDefineCells) функция работает но в ячейке остается не сама формула а текущее значение!
=SETF("TheDoc!User.Row_6", Pages[обложка]!sheet4!prop.row_1)
в одном из постов выше я писал за локальные имена шейпов. именно их ты видишь через интерфейс визио и в шейпшите! а в формуле Pages[…] надо писать универсальное имя
Shishok в сообщении #6232 писал(а):
Цитата:
Любое решение принимается. Как добраться до NameU? В том числе и листового.
Функция PageName(0) - локальное имя страницы.
Функция PageName(750) - универсальное имя страницы.

Функция Name(0) - локальное имя шейпа.
Функция Name(750) - универсальное имя шейпа.

Андрей5564 писал(а):
сделал в User.Row_6.Prompt =Pages[обложка]!sheet4!prop.row_1
ссылка из документа на ячейку User.Row_6.Prompt таким образом работает и без SETF.
да, работает. но за ошибку 318 я тебя, что таки не предупреждал ? попробуй потом вставить шейп с таким полем в документ, где нет листа Обложка ? в некоторых случаях из файлов с такой ошибкой ничего невозможно скопировать. плавали знаем
Андрей5564 писал(а):
Как правильно вписывать SETF в ячейку Value чтобы с ней все заработало ?
вопрос задавался не раз, я даже сделал одну приблуду - но не могу к ней месяц мануал сочинить :(
давай по порядку и со скриншотами.


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
я извиняюсь НО:
в прямоугольнике выполняю:
вставить поле
настраиваемая формула
PageName(750)

выдает то же самое что и по PageName(0).

где эту функцию следует использовать ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 18:21 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
всё ты правильно говоришь ! PageName(750) иногда имеет тоже самое значение, что и PageName(0)
объясню на пальцах. по умолчанию лист назывался Страница-1. и ты это видишь это ! но если ты напишешь Pages[Страница-1] не прокатит.
а вот узнав имя листа, под которым его знает визио используя Pagename(750) и подставив значение в формулу Pages[…], все заработает

русский интерфейс
английский интерфейс
Изображение
Изображение


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Дружище!!! я же так все и сделал как ты сказал)
на скрине видно
UniversalName "Обложка"
также проверил UniversalName Sheet.4

и вписал формулу счастья в UDC =SETF("TheDoc!User.Row_6", Pages[обложка]!sheet4!prop.row_1)
после чего формулы там не осталось а осталось только текущее значение.


Вложения:
Visio-5.jpg
Visio-5.jpg [ 160.36 Кб | Просмотров: 1368 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 19 фев 2015, 19:51 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
смотри на свою формулу SETF("TheDoc!User.Row_6", Pages[обложка]!sheet4!prop.row_1).
функция SETF("ячейка куда подставить",значение чего подставить)
описание функции SETF на сайте MSDN
у тебя получается, что формула переписывает сама себя !!! Обычно SETF используют в формулах шейпов.
если у тебя визио 2010 или 2013 лучше используй вместо "имя ячейки", Getref(имя ячейки)
ты при наборе формулы увидишь подсказки и автозаполнение.
Изображение

PS используя SETF можно передавать в ячейку и формулу, но только не в TheDoc (я снова напоминаю о 318 ошибке, которая была моим ночным кошмаром пол-года). А ты около этого варианта крутишься весь день :)
передать формулу можно так
SETF(GetRef(sheet.2!User.Row_3),"sheet.1!prop.Row_3")
SETF(GetRef(ThePage!User.trash),"sheet.1!prop.Row_1")
собственно передаваемая формула должна быть заключена в кавычки!!!

PS некоторые пользователи, как выясняется продолжают жить с тем моим кошмаром с ошибкой #318


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
ПОЗДРАВЛЯЮ ВСЕХ С ЕЩЕ ОДНИМ ПРАЗДНИЧНЫМ ДНЕМ В ЭТОЙ СУЕТЛИВОЙ ЖИЗНИ!!!

теперь по делу:
что то я запутался...

в TheDoc!User.Row_11 я пишу формулу из sheet.4!prop.Row_1:
=SETF(GetRef(TheDoc!User.Row_11),"Pages[обложка]sheet.4!prop.Row_1")

ты говоришь что саму в себя она не будет вписывать тогда куда это выражение нужно вписать ???

Работать с ошибкой 318 конечно не хочется, но уж очень удобно создавать в документе линки(с ячейками в TheDoc!) - они очень просто копи/пастятся по всему документу - фактически как обычный текст.
А вот линки Pages[обложка]sheet.4!prop.Row_1 приходится каждый раз создавать с командой Insert Field и копипаст тут не проходит!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 21 фев 2015, 16:59 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Андрей5564 писал(а):
в TheDoc!User.Row_11 я пишу формулу из sheet.4!prop.Row_1:
=SETF(GetRef(TheDoc!User.Row_11),"Pages[обложка]sheet.4!prop.Row_1")

ты говоришь что саму в себя она не будет вписывать тогда куда это выражение нужно вписать ???
в принципе можно в любом месте писать, главное чтоб не в саму себя. например создай ячейку user в sheet.4
=SETF(GetRef(TheDoc!User.Row_11),Pages[обложка]!sheet.4!prop.Row_1)


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

Зарегистрирован: 18 фев 2015, 19:02
Сообщений: 18
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Да, так я и пытался сделать, но в разделе ShapeData не получилось а вот в UDC как вы посоветовали - все заработало! Спасибо, огромное!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 25 фев 2015, 00:38 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Андрей5564 писал(а):
но в разделе ShapeData не получилось
можно и в ShapeData сделать
Изображение
правда не в одно действие ! сначала в ячейку Prop.Row_2 принимаем вводимое пользователем значение! в ячейке Prop.Row_1 можно передать значение в TheDoc!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 25 фев 2015, 07:47 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate
можно же через SETATREF: в Prop.Row_1 вписать SETATREF(TheDoc!User.ololo)
тогда ячейки Prop.Row_1, TheDoc.User.ololo свяжутся


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Скрытие листа
СообщениеДобавлено: 25 фев 2015, 08:37 
Не в сети
Administrator

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


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

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



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

Сейчас этот форум просматривают: Yandex [bot] и гости: 1


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

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