09.02.2007, 13:40 | #1 |
Участник
|
Добрый день коллеги!!!
Кто-нибудь пробовал сделать своего рода импорт данных с сайта. Пробовал использовать OCX MSINET со функцией Microsoft Internet Transfer Control 6.0 (SP4) как показанно на примере..., но к сожалению система возвращает только символ ENTER. Http.Protocol := 4; //2=FTP, 4=HTTP. vRemoteHost := 'http://YA.ru'; Http.RequestTimeout := 30; vVariant := Http.OpenURL(vRemoteHost); MESSAGE('Text variant = %1',COPYSTR(vVariant,1,250)) Если есть у кого опыт прошу поделитесь... только не давайте пример ипорт курса с Центр Банка, там в чистом виде используют заранее подготовленный *.ASP с кодом XML... Заранее благодарен!!!! |
|
12.02.2007, 17:43 | #2 |
Участник
|
У меня тоже недавно стал похожий вопрос о загрузке БИК с сайта, наверно есть куча компонент кроме Microsoft Internet Transfer Control 6.0. Но обойтись можно стандартной wininet.dll и VBA из этой библиотеки вызываются две функции: InternetOpen и InternetOpenUrl. Привожу свой рабочий код который записан макросом в книге екселя. Этот макрос запускается из нава и все работает на 100%, кстате на самом листе екселя оч удобно хранить настройки (прокси, URL, путь для сохранения).
hInternetSession=InternetOpen("DownloadApp", INTERNET_OPEN_TYPE_PROXY, Range("B3"),vbNullString,0) hURLFile = InternetOpenUrl(hInternetSession, Range("B1"), vbNullString, 0, INTERNET_FLAG_EXISITING_CONNECT, 0) Open Range("B2") For Binary As #1 bDoLoop = True While bDoLoop bDoLoop = InternetReadFile(hURLFile, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead) lTotalBytesRead = lTotalBytesRead + lNumberOfBytesRead If CBool(lNumberOfBytesRead) Then Put #1, , sReadBuffer Else bDoLoop = False End If Wend Close #1 InternetCloseHandle (hURLFile) InternetCloseHandle (hInternetSession) sReadBuffer объявлен так Dim sReadBuffer As String * 2048 Private Const INTERNET_OPEN_TYPE_PROXY = 3 ' Указывает что соединение через прокси Private Const INTERNET_FLAG_EXISITING_CONNECT = &H20000000 Private Const INTERNET_FLAG_RELOAD = &H80000000 ' Обновляет данные если они есть в кэше |
|
13.02.2007, 15:14 | #3 |
Участник
|
а есть возможность реализовать сразу в Navision....?
|
|
13.02.2007, 15:38 | #4 |
Участник
|
Выход - использовать ActiveX компоненты с которыми может работать нави, но тогда эту компоненту нужно регистрировать на компах юзеров, даже Microsoft Internet Transfer Control 6.0 не идет с голой виндой, а помойму ставится c MSVB. Выход с файлом екселя мне кажется более удобным потому как его можно просто кинуть на сетевой диск и ни каких проблем. Вообщем выхода всегда два ...
|
|
13.02.2007, 21:12 | #5 |
Участник
|
Вот нашел ocx для http
Методы HttpOCX.UnlockHTTPWizard HttpOCX.IsUnlocked HttpOCX.Disconnect HttpOCX.Connect HttpOCX.Get HttpOCX.GetByURI HttpOCX.Head HttpOCX.HeadByURI HttpOCX.Delete HttpOCX.Trace HttpOCX.Post HttpOCX.Put HttpOCX.EasyFileUpload HttpOCX.FileUpload HttpOCX.PostFormData HttpOCX.CustomCommand Свойства HttpOCX.Version HttpOCX.LastServerResponseDescription HttpOCX.LastServerResponseCode HttpOCX.ServerName HttpOCX.TimeOut HttpOCX.ServerPort HttpOCX.LastRequest HttpOCX.LastResponse HttpOCX.ProxyServer HttpOCX.ProxyServerPort HttpOCX.ProxyUserName HttpOCX.ProxyPassword Если сильно надо постучись в личку |
|