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

Форум по вопросам применения и программирования в Visio
Текущее время: 12 авг 2020, 04:20

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 10:41 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Получил научно исследовательскую работу на Visio с VBA, никогда не работал с этим языком, но прочитал 3 книги по нему, и впринцепи понял основное, и что мне необходимо для работы. Но не знаю как взять обьекты с активной страницы и все поля их данных, а работать нужно именно с ними. Впринцепи весь алгоритм программы уже знаю и построен, а проблема все остается, не могу начать только изза этого. А задание основано на инвентаризации обьектов созданных в Visio, т.е. создать форму по запросу с которой можно было бы сформировать отчетность в экселе. Тоесть не могли бы вы примерно рассказать работу с Shapes, или указать ресурс где это все описано. Копаюсь в интернете второй день нарыть ничего не могу...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 12:51 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
rakch писал(а):
Получил научно исследовательскую работу на Visio с VBA, никогда не работал с этим языком, но прочитал 3 книги по нему, и впринцепи понял основное, и что мне необходимо для работы. Но не знаю как взять обьекты с активной страницы и все поля их данных, а работать нужно именно с ними. Впринцепи весь алгоритм программы уже знаю и построен, а проблема все остается, не могу начать только изза этого. А задание основано на инвентаризации обьектов созданных в Visio, т.е. создать форму по запросу с которой можно было бы сформировать отчетность в экселе. Тоесть не могли бы вы примерно рассказать работу с Shapes, или указать ресурс где это все описано. Копаюсь в интернете второй день нарыть ничего не могу...


это конечно круто "Научно-исследовательская работа на Visio с VBA", это курсовик так инновационно теперь называют что ли ;)
Или на такую тему диссертации или кандидатские стали писать :)

странно, что не нашлось ничего в интернете ? особенно на этом и старом форуме http://visio.artberg.ru/forum/default.asp
да и в трех прочитанных книгах…

только 13.07.2012 я давал код с перебором всех шейпов на листе http://visio.getbb.ru/viewtopic.php?f=6&t=143, см. п. 2.
Код:
Sub EachParentShapeLock()
Dim SH As Shape
For Each SH In ActivePage.Shapes   ' перебор шейпов на ActivePage
    ' считать нужную информацию
Next SH
End Sub


для данной НИР нужен цикл перебора шейпов, в цикле нужно подставить какие из свойств нужно считывать ? в начальной теме этой конкретики не было…

в этом коде, см. процедуру Sub dl(), там описывается процесс занесения данных шейпа в 2 столбца таблицы Эксель
Код:
SSub dl()
Dim dl As Double
Dim shp As Shape
Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
Dim wb As Workbook
oExcel.Workbooks.Add
Set wb = oExcel.ActiveWorkbook
Set sht = wb.Sheets.Item("Лист1")
n = 1
For Each shp In ActivePage.Shapes
dl = KabLength(shp)
sht.Cells(n, 1).Value = shp.Name ' занесение имени текущего шейпа в энную строку и 1 столбец  экселя
n = n + 1
Next shp
End Sub

я не смог сходу найти более подходящих кодов, или кодов с подробными комментариями.

Будут еще вопросы - пиши…


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 17:41 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Ну 1ое, это не курсовая, а непосредственно работа, программируем по программе учебы на с++, но с Кафедры дали задание такое чтобы в дальнейшем мог подключится к хоз договорам. По сути курсовика не может быть по предмету которого не существует на специальности, правильно?:)
2ое, Есть Шейп-сервер, В него можно включать свои поля данных, Дата поступления, кто привез, идент. номер и тд, тоесть вообще любое поле, составляю массив из ссылок на эти обьекты, но в Полях данных у серверов стандартные, а те которые добавил пользователь их нету. Как раз и нужны данные которые добавил пользователь :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 17:58 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
хорошо !
дык, а в чем проблема ?
если известны названия пользовательских свойств их можно считывать
ну например есть пользовательское свойство prop.date
Код:
Sub dl()
Dim dl As Double
Dim shp As Shape
Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
Dim wb As Workbook
oExcel.Workbooks.Add
Set wb = oExcel.ActiveWorkbook
Set sht = wb.Sheets.Item("Лист1")
n = 1
For Each shp In ActivePage.Shapes
set PrDate = shp.cells("prop.date")
sht.Cells(n, 1).Value = shp.Name ' занесение имени текущего шейпа в энную строку и 1 столбец  экселя
sht.Cells(n, 2).Value = PrDate ' занесение имени текущего шейпа в энную строку и 2 столбец  экселя
n = n + 1
Next shp
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 18:39 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
прям так и писать
Dim Str As String
Str = ""
Далее не важно

Str = Shape(i).Сетевое имя

Там же пользовательские свойства по русски да и пробелами указаны


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 20:35 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
rakch писал(а):
прям так и писать
Dim Str As String
Str = ""
Далее не важно

Str = Shape(i).Сетевое имя

Там же пользовательские свойства по русски да и пробелами указаны


не совсем понял, вышенаписанное сообщение: это вопрос или утверждение ?
пользовательские свойства можно хоть по-таджикски писать и с пробелами. даже имена пользовательских свойств в shapesheet можно писать по-русски


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 22:08 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Это понятно, но как зовут эти свойства, чтобы их вызвать в нужном шейпе, там в списке просто их нет. Этих свойств которые нужны, просто нету как новые поля обьекта.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 22:15 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 22:29 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
rakch писал(а):
Ну 1ое, это не курсовая, а непосредственно работа, программируем по программе учебы на с++, но с Кафедры дали задание такое чтобы в дальнейшем мог подключится к хоз договорам. По сути курсовика не может быть по предмету которого не существует на специальности, правильно?:)
2ое, Есть Шейп-сервер, В него можно включать свои поля данных, Дата поступления, кто привез, идент. номер и тд, тоесть вообще любое поле, составляю массив из ссылок на эти обьекты, но в Полях данных у серверов стандартные, а те которые добавил пользователь их нету. Как раз и нужны данные которые добавил пользователь :)


Дык если у сервера (ведь это шейп из библиотек визио) есть стандартные свойства, все что сверх то добавлено пользователем :)
или речь идет о шейпе из мастера, созданного компанией микрософт


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 22:31 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
нет, речь идет о первом, дак как узнать то что было добавлено сверх? Я знаю как они называются в визио, но не в редакторе :(


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 22:38 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
можно сделать скриншоты:
1. внешний вид самого этого шейпа
2. общего списка свойств

PS забыл сейчас можно и файл визио на форум выложить ! :)
выложи будем более предметно говорить…


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 23:08 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
я так полагаю что пользовательских свойств 2
Дата поступления и источник поступления


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 15 июл 2012, 23:42 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
да


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 16 июл 2012, 01:14 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
как открывается shapesheet знаешь ? вот там и увидеть можно как называются свойства
prop.row_28 - "Дата поступления"
prop.row_29 - "Источник поступления"


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 16 июл 2012, 10:34 
Не в сети
Новичок

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
нет, не знаю. Подскажешь?:)

И вообще что такое ShapeSheet? Шейп лист? Это окно которое всплывает если напишешь "Shape." тоесть высвечивает все свойства?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 16 июл 2012, 10:53 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
какая у тебя версия визио 2003, 2007, 2010 / русская, английская

шейпшит это таблица свойств шейпа, очень похожая на эксель
http://visio.artberg.ru/f_rubr/shsh.htm


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

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
в настройках поставь флаг - режим разработчика, появится вкладка, и там разберешься, выделяешь шейп, клацаешь на той вкладке данные фигуры и будет тебе счастье)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получение объектов из ActivePage и их данных
СообщениеДобавлено: 16 июл 2012, 11:09 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3964
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
да, чуть не забыл : что надо включить режим разработчика :)
горячие клавиши для вызова шейп-шита из тех версий визио с которыми доводилось работать
visio 2003 eng - Alt+W+S
visio 2010 eng - Alt+L+H+S
visio 2010 рус - Alt+Я+Ъ+З


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

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
для визио 2010 хоткей прям "ЯЯЯЯЯЯЯЯЯЯЗЬ" какойто :D


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

Зарегистрирован: 15 июл 2012, 10:33
Сообщений: 37
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Господи АЛИЛУЯ граждане, спасибо большое именно то что над было :))) Спасибо большое %)


Последний раз редактировалось rakch 16 июл 2012, 11:29, всего редактировалось 1 раз.

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

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



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

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


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

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