Форум пользователей Visio http://visio.getbb.ru/ |
|
Sceleton тестирование http://visio.getbb.ru/viewtopic.php?f=26&t=328 |
Страница 1 из 2 |
Автор: | Tumanov [ 19 апр 2013, 21:11 ] |
Заголовок сообщения: | Sceleton тестирование |
В этом топике помещаем сведения о неисправностях. Содержимое спрятано под спойлер ↓ Спойлер: ▼ Считается проверенным: 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/ |