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

Форум по вопросам применения и программирования в Visio
Текущее время: 21 окт 2017, 05:25

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 21:11 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 942
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
В этом топике помещаем сведения о неисправностях.
Спойлер: показать
Можно было бы заняться этим и позже, когда появятся требования к шейпам... Но можно и сейчас. Заранее пристреляться. Писать, у кого что не заработало.
Вариант 2 - писать, что хотелось бы, чтобы работало. Может ведь быть и так, что движок можно приспособить к другой похожей задаче.

Считается проверенным:
1. Настройка на источник, генерация схемы, обнаружение и корректировка изменений в сочетании Visio 2007, Excel 2007, Windows XP.
2. То же в сочетании Visio 2010 Standard, Excel 2010, Windows 7.
Обнаруженные ошибки:
1.


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

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

Добавить очки репутацииУменьшить очки репутации
скачал последнюю версию
"D:\!TumanovПрочее\РабОбласть\!Scheme_v2\Power.xls" это что? почему в шейпшите документа жестко зашитый путь? у меня конечно же коннект не устанавливается. пишет ошибку.

все-таки с моим визио 2003 что-то не так. даже при исправленном пути ничего не происходит. не строится схема :(

при попытке выбрать "настройка соединение" вылезает ошибка "ActiveX component can't create object or return reference to this object (Error 429)"
здесь: ThisDocument.ConnSettings -> Set CDLG = CreateObject("MSComDlg.CommonDialog"). в инете пишут что у многих проблема с этим. может сделать проще как-то?

маленький совет, не надо пользоваться такой сложной конструкцией:
Replace(ActiveDocument.DocumentSheet.Cells("User.Provider").Formula, Chr(34), "")
проще так:
ActiveDocument.DocumentSheet.Cells("User.Provider").ResultStr(0) - возвращает строку без кавычек


Последний раз редактировалось 9rey 19 апр 2013, 22:45, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 22:42 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 942
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
В шейп-листе остается последний путь. После выбора меню "Настройка" он меняется на новый. В этот же момент подстраиваются другие параметры коннекта. После выбора меню "Синхронизация" строится рисунок.
Сообщений никаких не выдает?
Вообще-то в Visio 2003 я не пробовал. Сейчас поставлю, проверю.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 22:46 
Не в сети
Ветеран

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 22:55 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 942
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Понял. Если не трудно, закомментируйте все, что касается диалога вот здесь
Код:
Sub ConnSettings()
'Команда настройки соединения с источником данных
    'Для начала в диалоге запрашивается (новый) файл источника.
    Dim CDLG As Object
    Set CDLG = CreateObject("MSComDlg.CommonDialog")
    With CDLG
      .DialogTitle = "Открытие источника данных"
      .Filter = _
        "Excel 2003; Excel 2007|*.xls; *.xlsx|Excel 2007|*.xlsx|"
      .ShowOpen
      FilePath = .FileName
    End With
    Set CDLG = Nothing

В ThisDocument.
И впишите FilePath = ... путь к файлу Excel. И запустите Sub ConnSettings
Коннект должен настроиться.
---
В принципе, путь можно было и в каком-нибудь конфиге прописывать, но хотелось поудобнее сделать :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 23:04 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
да. так заработало
вот что появилось
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 23:10 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 942
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Ну да. На 4 листах.
Если в Excel данные изменить и снова нажать "Синхронизация", выделятся шейпы в которых данные отличаются. После согласия на корректировку, значения обновятся. Пока это все.
Тогда Visio 2003 ставить не буду, а то никак не найду :)


Последний раз редактировалось Tumanov 19 апр 2013, 23:11, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 19 апр 2013, 23:11 
Не в сети
Administrator

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


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

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 942
Очков репутации: 100578

Добавить очки репутацииУменьшить очки репутации
Она не рисовалась в Visio 2010 Standard и не рисовалась в Visio 2003. Сейчас рисуется.
Значит текущая проблема - с диалогом. Надо будет сделать так, что если диалог в системе не установлен, то пользоваться конфигом. Записывать туда путь к файлу.


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

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

Добавить очки репутацииУменьшить очки репутации
диалог вроде как установлен, но почему то не работает ActiveX интерфейс. вообще там бывают какие-то заморочки с лицензиями и т.п.
вот тут описан железный способ работы диалога через API и стандартную библиотеку винды:
http://vbnet.mvps.org/index.html?code/c ... pendlg.htm


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 22 май 2013, 23:57 
Не в сети

Зарегистрирован: 22 май 2013, 23:49
Сообщений: 5
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
У меня почему-то диалог работать не захотел. Странно, в Help'ах по Visio описано свойство Application.FileDialog, но обратиться к нему невозможно. Пришлось искать обходные пути:
Код:
Dim fd As FileDialog
Dim Excel As Variant
Set Excel = CreateObject("Excel.Application")
Set fd = Excel.FileDialog(msoFileDialogFilePicker)
With fd
    .Filters.Clear
    .Filters.Add "Excel 2003, 2007", "*.xls; *.xlsx", 1
    .FilterIndex = 1
    If .Show = -1 Then
        FilePath = .SelectedItems.Item(1)
    End If
End With
Excel.Quit: Set Excel = Nothing


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 00:01 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 00:28 
Не в сети

Зарегистрирован: 22 май 2013, 23:49
Сообщений: 5
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Да. У меня CommonDialog подключать не хочет (ни comdlg32.dll, ни comdlg32.ocx, ни COMMDLG.DLL)
Честно сказать, надоели пляски с бубнами при работе с любой нестандартной библиотекой. Как-то ListView не мог использовать в Excel, потому что MathCad поставил, ещё чего-то не работало...
Для информации: Windows 7 Начальная, MSOffice 2007


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 00:44 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 07:20 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
С этими ActiveX интерфейсами часто проблемы. неудачная реализация MS. на машине может быть установлено несколько версий библиотеки. у меня на работе например не подключалась библиотека Common Controls. а там всё: ListView, TreeView и прочие основные котролы. в итоге победил подключением библиотеки напрямую из реестра:

Код:
Function LoadLibs() As Boolean
    Dim varThisProject As Variant
   
    LoadLibs = True
    Set varThisProject = ThisDocument.VBProject
   
    Err.Clear
    On Error Resume Next
    varThisProject.References.AddFromGuid "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
    If Err.Number <> 0 Then
        MsgBox "Error: MSComctlLib"
        LoadLibs = False
    End If
End Function


GUID нашел в реестре по названию библиотеки.
хотя диалог из этой темы так и не заработал, пришлось выкручиваться через API


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 10:39 
Не в сети

Зарегистрирован: 22 май 2013, 23:49
Сообщений: 5
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
ListView в Excel я сэмулировал, а вызов файлового диалога, по-моему, проще сделать так, как показал ранее, чем городить огород из API :-)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 23 май 2013, 11:00 
Не в сети
Administrator

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


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

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

Добавить очки репутацииУменьшить очки репутации
Skif-F
с экселем конечно тоже вариант :)
но это же стартует целое приложение всего лишь для вывода диалога!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 24 май 2013, 00:02 
Не в сети

Зарегистрирован: 22 май 2013, 23:49
Сообщений: 5
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Странно, наиболее хорошее описание объекта FileDialog в помощи по Visio, но именно там этого объекта и нет.
Вариант с применением API проработал:
Код:
Sub ConnSettings()
'Команда настройки соединения с источником данных
    'Для начала в диалоге запрашивается (новый) файл источника.
    Dim filePath As String
    If Not OpenFileDialog.FindExcelFile(filePath) Then  'Если не нажат Cancel и не было системной ошибки
        If InStr(1, filePath, ".xlsx") > 0 Then
            ......

Плюс ещё 80 строк кода в модуле OpenFileDialog.
Как можно загрузить данные в форум, кроме DropBox? Может, кому на e-mail?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Sceleton тестирование
СообщениеДобавлено: 24 май 2013, 06:53 
Не в сети
Administrator

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

я тут как-то поигрался с настройками внешнего вида форума, и теперь при ответе на чужое сообщение отсутствует блок "Добавить вложения"
Изображение
появляется только после отправки сообщения, если нажать кнопку "правка" Изображениедля редактирования отправленного поста
такой вариант работает пока нет времени искать в чем там дело :(


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


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

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



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

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


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

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