Форум пользователей Visio
http://visio.getbb.ru/

Sceleton тестирование
http://visio.getbb.ru/viewtopic.php?f=26&t=328
Страница 1 из 2

Автор:  Tumanov [ 19 апр 2013, 21:11 ]
Заголовок сообщения:  Sceleton тестирование

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

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

Автор:  9rey [ 19 апр 2013, 22:28 ]
Заголовок сообщения:  Re: Sceleton тестирование

скачал последнюю версию
"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) - возвращает строку без кавычек

Автор:  Tumanov [ 19 апр 2013, 22:42 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  9rey [ 19 апр 2013, 22:46 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Tumanov [ 19 апр 2013, 22:55 ]
Заголовок сообщения:  Re: Sceleton тестирование

Понял. Если не трудно, закомментируйте все, что касается диалога вот здесь
Код:
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
Коннект должен настроиться.
---
В принципе, путь можно было и в каком-нибудь конфиге прописывать, но хотелось поудобнее сделать :)

Автор:  9rey [ 19 апр 2013, 23:04 ]
Заголовок сообщения:  Re: Sceleton тестирование

да. так заработало
вот что появилось
Изображение

Автор:  Tumanov [ 19 апр 2013, 23:10 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Surrogate [ 19 апр 2013, 23:11 ]
Заголовок сообщения:  Re: Sceleton тестирование

у меня эта схема и в первой версии рисовалось. Visio 2010 Professional

Автор:  Tumanov [ 19 апр 2013, 23:13 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  9rey [ 20 апр 2013, 12:22 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Skif-F [ 22 май 2013, 23:57 ]
Заголовок сообщения:  Re: Sceleton тестирование

У меня почему-то диалог работать не захотел. Странно, в 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

Автор:  Surrogate [ 23 май 2013, 00:01 ]
Заголовок сообщения:  Re: Sceleton тестирование

Исправлено на: а библиотека Excel, Scripting Runtime, Common Dialog подключена например ?

Автор:  Skif-F [ 23 май 2013, 00:28 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Surrogate [ 23 май 2013, 00:44 ]
Заголовок сообщения:  Re: Sceleton тестирование

была похожая тема на старом форуме, может поможет

Автор:  9rey [ 23 май 2013, 07:20 ]
Заголовок сообщения:  Re: Sceleton тестирование

С этими 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

Автор:  Skif-F [ 23 май 2013, 10:39 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Surrogate [ 23 май 2013, 11:00 ]
Заголовок сообщения:  Re: Sceleton тестирование

API дает 100% гарантию, что код с вызовом например файлового диалога будет работать на любом компе. тут я на 146% согласен с 9rey

Автор:  9rey [ 23 май 2013, 11:19 ]
Заголовок сообщения:  Re: Sceleton тестирование

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

Автор:  Skif-F [ 24 май 2013, 00:02 ]
Заголовок сообщения:  Re: Sceleton тестирование

Странно, наиболее хорошее описание объекта 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?

Автор:  Surrogate [ 24 май 2013, 06:53 ]
Заголовок сообщения:  Re: Sceleton тестирование

можно прицепить к своему посту вложение!

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


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

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/