Навигация
Главное меню
Главная
Новости
Веб сервисы
Онлайн сервисы
Статьи
FAQ
Наш опыт
Файлы
Демо-версия ИС ПАРУС 8
Прайс-лист "Парус - Предприятие 8"
Форум
О проекте
Результаты опросов
Ссылки
Карта сайта
Добавить в
Подписка на рассылку
Авторизация
Нас считают
Статистика сайта
5865 всего пользователей
0 сегодня
0 на этой неделе
0 в этом месяце
Последний: kapriolozy
Реклама
Кто в онлайне
Посетителей нет.
 
Главная arrow FAQ arrow Пользовательские приложения arrow Приложение загрузки курса доллара в Парус-8хх
 
Приложение загрузки курса доллара в Парус-8хх Версия для печати Отправить на e-mail
26.01.2005

В раздел FAQ добавлен пример пользовательского приложения (VBS) для загрузки курса доллара в Парус-8хх. Загружает курсы доллара с последней зарегистрированной даты по текущую.
Протестировано для версии 852.
Замечания и пожелания на мыло.

-----------------------------------
Sub Main()

' Для фунциклирования необходимо наличие подключения к ИНТЕРНЕТ и MS XML
' и наличия хотя бы одной записи изменения курса доллара
' сервис получения данных по валютам здесь http://www.cbr.ru/scripts/Root.asp?Prtid=SXML

Query.SQL.Text = "Select Rn From V_CURNAMES Where CURCODE = 840"
Query.Open
IF Not Query.IsEmpty Then
nUSDRN = Query.FieldByName("Rn").Value
Else
MsgBox "Валюта с кодом 840 (Доллары США) не найдена в словаре ",,"Ошибка"
Exit sub
End If


Query.SQL.Text = "Select INTCODE From V_CURNAMES Where CURCODE = 643"
Query.Open
IF Not Query.IsEmpty Then
sRUB = Query.FieldByName("INTCODE").Value
Else
MsgBox "Валюта с кодом 643 (Российские рубли) не найдена в словаре ",,"Ошибка"
Exit sub
End If


Query.SQL.Text = "Select max(H.DCURDATEBEG) CURDATEBEG From V_CURNAMES C, " & _
"V_CURHIST H Where H.NPRN = C.RN And C.CURCODE = 840 and " & _
"C.VERSION = " & FindVersion("CURNAMES")
Query.Open

IF Not Query.IsEmpty Then
BeginDate = CDate(Query.FieldByName("CURDATEBEG").Value)

' Объект для работы с XML
Set Xml = CreateObject("MSXML2.DOMDocument")

' Лог файл
LogPath = ExtractFilePath(ParamStr(0)) + "ExchangeRateLoad.Log"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set LogFile = FSO.OpenTextFile(LogPath, 2,true)
WriteLog LogFile, "Протокол загрузки курсов валют " & "за период с " & Cstr(BeginDate) & " по " & Cstr(Date)
WriteLog LogFile, ""
LogChanged = False

For dDate = BeginDate + 1 to Date
If DataLoaded(CSTR(dDate), Xml) Then
ExchangeRateValue = GetXmlExchangeRate(Xml)
If ExchangeRateValue > 0 Then
P_CURHIST_INSERT CSTR(dDate), ExchangeRateValue, nUSDRN, sRUB
WriteLog LogFile, CSTR(dDate) & " : 1 USD - " & ExchangeRateValue & " РУБ"
LogChanged = True
End IF
Else
MsgBox "Не могу загрузить курс валюты...",,"Ошибка"
Exit sub
End If
Next

IF not LogChanged then
WriteLog LogFile, "Нет изменений"
End IF

LogFile.Close

' Открыть лог в блокноте
Set WshShell = CreateObject("Wscript.Shell")
Comand = "Notepad.exe " & LogPath
WshShell.Run Comand, 1, False

End IF

End Sub


Private Function FindVersion(sUNIT)

StoredProc.StoredProcName = "FIND_VERSION_BY_COMPANY"
StoredProc.ParamByName("nCOMPANY").Value = COMPANY
StoredProc.ParamByName("sUNITCODE").Value = sUNIT
StoredProc.ExecProc
FindVersion = StoredProc.ParamByName("nVERSION").Value

End Function


Private sub P_CURHIST_INSERT(dDate, nEQUALSUM, nUSDRN, sRUB)

StoredProc.StoredProcName = "P_CURHIST_INSERT"
StoredProc.ParamByName("nCOMPANY").Value = COMPANY
StoredProc.ParamByName("nPRN").Value = nUSDRN
StoredProc.ParamByName("sEQUALCUR").Value = sRUB
StoredProc.ParamByName("nCURSUM").Value = 1
StoredProc.ParamByName("nEQUALSUM").Value = nEQUALSUM
StoredProc.ParamByName("dCURDATEBEG").Value = dDate
StoredProc.ParamByName("nOPERSIGN").Value = 1
StoredProc.ParamByName("nPLANSIGN").Value = 0
StoredProc.ParamByName("sACCTYPE").Value = Null
StoredProc.ParamByName("nUSESIGN").Value = 0
StoredProc.ExecProc

End sub


Private Function DataLoaded(sDate, Xml)

ImportLink = "http://www.cbr.ru/scripts/XML_dynamic.asp?" & _
"date_req1=" & sDate & _
"&date_req2=" & sDate & _
"&VAL_NM_RQ=" & "R01235"

Xml.async = False

If Xml.Load(ImportLink) Then
bDataLoaded = True
Else
bDataLoaded = False
End If

DataLoaded = bDataLoaded
End Function


Private Function GetXmlExchangeRate(Xml)

Set objNode = Xml.selectNodes("//Value").Item(0)

If Not objNode Is Nothing Then
GetXmlExchangeRate = CDbl(objNode.Text)
Else
GetXmlExchangeRate = 0
End If

End Function


Private Function WriteLog (LogFile, Line)

LogFile.WriteLine(Line)

End Function

-----------------------------------

Комментарии
Поиск
Только зарегистрированные пользователи могут оставлять комментарии!
Русская редакция: www.freedom-ru.net & www.joobb.ru

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
 
Статистика
Наши решения
irbis1
Наши спонсоры
irbis1
Последнее
Популярное
TOP-5 файлов
Значок файла Информация о том, кто и когда изменил хозоперацию (5839)
Значок файла Утилита импорта и утилита экспорта oracle-dbf (3543)
Значок файла Перенос данных раздела "Географические понятия" из организации в организацию в рамках одной базы (3274)
Значок файла Пример использования VBscript 2 (с формированием сводной таблицы в Excel) (3143)
Значок файла Пример процедуры для работы c веб-сервисом "Банковские учреждения" (3130)
Последние файлы
Значок файла Скрипты создания новой БД для Парус 8 (1904)
Значок файла Пример процедуры для работы c веб-сервисом "Банковские учреждения" (3130)
Значок файла Функция определения количества рабочих дней по исполнению и графику работы (1952)
Значок файла Web расширение "Товарные запасы он-лайн" для ИС "Парус-8" (2184)
Значок файла Копирование прав доступа из роли в роль (вариант 2) (2552)
ПАРУС Онлайн Неофициальный сайт сообщества системы Парус-8 © 2024
pokie games slot machine online poker game