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

Форум по вопросам применения и программирования в Visio
Текущее время: 19 окт 2017, 02:20

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 07:40 
Не в сети
Новичок

Зарегистрирован: 07 апр 2017, 10:18
Сообщений: 32
Использую Visio c: 2013
Отрасль: АСУТП
Уровнь квалификации: Чуть выше среднего
Очков репутации: 0

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

Необходимо мнение знающих людей по теме.
Предыстория: имеется файл visio, в нем создана UserForm1, данная форма вызывается по нажатию кнопки "Обновить все базы" на листе "ИД". Форма представляет из себя окно, в котором надпись "Идет обновление базы X из Y", где X и Y передается из тела скрипта формы. Скрипт следующий:
Код:
Private Sub UserForm_Activate()
Dim i As Integer: i = 0
Dim j As Integer: j = Application.ActiveDocument.DataRecordsets.Count
Label2.Caption = i
Label4.Caption = j
For i = 1 To j
Label2.Caption = i
Application.ActiveDocument.DataRecordsets(i).Refresh
Call UpdateBaseInfo1(i)
Next i
Unload Me
End Sub

Так вот, при создании и тестировании формы, она работала корректно, окно открывалось, в нем была надпись и X и Y обновлялись в режиме онлайн пока выполнялся скрипт формы, после чего окно закрывалось. Однако после очередного сохранения файла, закрытия и повторного открытия, при вызове формы, открывается окно формы, но в нем нет никакого текста, т.е. форма выполняется, скрипт в ней выполняется, но текст в форме не отображается.

Есть идеи почему так себя ведет Visio?

P.S. Файл во вложении


Вложения:
5 (№ 5).vsd [906 Кб]
Скачиваний: 8
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 08:25 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
lite.fun писал(а):
Необходимо мнение знающих людей по теме.
не могу назвать себя знающим по этой теме - я очень редко использую формы. И не использую рекордсеты совсем.
Запускал код в Visio 2010 - вроде надписи есть
Изображение
или не те ? зато вылетает ошибка. наверно Visio пытается достучаться до файла источника ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 08:49 
Не в сети
Новичок

Зарегистрирован: 07 апр 2017, 10:18
Сообщений: 32
Использую Visio c: 2013
Отрасль: АСУТП
Уровнь квалификации: Чуть выше среднего
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
или не те ? зато вылетает ошибка

в MSDN я что-то не нашел, что рекордсеты можно по отдельности обновлять ?

Surrogate, текст в форме у вас правильный. Что-то я забыл приложить файл excel с исходными данными, прилагаю, для проверки и чистоты эксперимента.

Рекордсеты можно обновлять по отдельности, макрорекордер помог:
Код:
Application.ActiveDocument.DataRecordsets(index).Refresh

Собственно в моем случае сам скрипт в форме выполняется корректно и без проблем. А вот отображение текста после сохранения документа пропало ((
Изображение


Вложения:
-10,32 23.03.2017 для Олега.xls.7z [248.69 Кб]
Скачиваний: 6
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 08:55 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
lite.fun писал(а):
отображение текста после сохранения документа пропало
может в моднейшем Visio2016 так быстро происходит обновление, что текст на форме тупо не успевает подгрузиться ? Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 09:40 
Не в сети
Новичок

Зарегистрирован: 07 апр 2017, 10:18
Сообщений: 32
Использую Visio c: 2013
Отрасль: АСУТП
Уровнь квалификации: Чуть выше среднего
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
lite.fun писал(а):
отображение текста после сохранения документа пропало
может в моднейшем Visio2016 так быстро происходит обновление, что текст на форме тупо не успевает подгрузиться ? Изображение

Хм, ну может и так конечно, сейчас промониторил, время выполнения у меня скрипта 2 сек. Хотя до сохранения и закрытия документа, примерно также и было, текст отображался.
А у Вас успевает на форме текст от 1 до 8 обновиться?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 09:43 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 431
Использую Visio c: 2008
Очков репутации: 97

Добавить очки репутацииУменьшить очки репутации
Попробуй в процедуре UserForm_Activate() (для UserForm1) написать после строки:
Код:
Application.ActiveDocument.DataRecordsets(i).Refresh

строку:
Код:
Me.Repaint


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное поведение UserForm
СообщениеДобавлено: 25 апр 2017, 09:48 
Не в сети
Новичок

Зарегистрирован: 07 апр 2017, 10:18
Сообщений: 32
Использую Visio c: 2013
Отрасль: АСУТП
Уровнь квалификации: Чуть выше среднего
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Попробуй в процедуре UserForm_Activate() (для UserForm1) написать после строки:
Код:
Application.ActiveDocument.DataRecordsets(i).Refresh

строку:
Код:
Me.Repaint

Shishok, благодарю за помощь, все заработало! :)


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

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



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

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


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

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