Курс валют

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Курс валют

Сообщение savov »

m0p3e писал(а):beer: не работает. Видимо пиво кончилось.
Что еще не работает???? Неужели dll самого m0p3e???? :shock:
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Курс валют

Сообщение m0p3e »

Смайлик :beer: не работает! Вот это огорчает :-(
mhs75
Сообщения: 3
Зарегистрирован: 17 июл 2010, 22:59

Re: Курс валют

Сообщение mhs75 »

Добрый день.
Может уже поздно, но все же.
У меня импорт заработал когда в файлик reg_kurs.bat ДОБАВИЛ следующую строку
%NET_DIR%\RegAsm.exe ..\ExRatesCom.dll
т.е. получается 3 строки регистрации.
Вот полный вид файла reg_kurs.bat
set NET_ROOT=v2.0.50727
set NET_DIR=%WINDIR%\Microsoft.NET\Framework\%NET_ROOT%
%NET_DIR%\RegAsm.exe ..\DailyInfoCOM.dll /tlb
%NET_DIR%\RegAsm.exe ..\DailyInfoCOM.dll /codebase
%NET_DIR%\RegAsm.exe ..\ExRatesCom.dll
AKalder
Посетитель
Сообщения: 47
Зарегистрирован: 01 дек 2006, 08:30
Откуда: Иркутская обл., г. Ангарск
Контактная информация:

Re: Курс валют

Сообщение AKalder »

Немного другим путем пошел.

CursVal.ps1 (написан не оптимально, так как с PowerShell едва знаком)
Param ($Name="*", [datetime]$Date=(Get-Date))
$url="http://cbr.ru/scripts/XML_daily.asp?date_req=$(Get-Date $Date -f 'dd\/MM\/yyyy')"
$desc="\\galsrv\obmen\CursVal.txt"
$user="cursval"
$pwd=""
$Proxy=New-Object System.Net.WebProxy("proxy.mydomen.com:3128", $true)
$Account=New-Object System.Net.NetworkCredential($user,$pwd,"")
#$Account=$Account.GetCredential("proxy.mydomen.com", "3128", "KERBEROS");
#$Account=$Account.GetCredential("proxy.mydomen.com", "3128", "NTLM");
$Proxy.Credentials=$Account
$WClient=New-Object System.Net.WebClient
$WClient.Proxy=$Proxy
$Data=[xml]$WClient.DownloadString($url)
$Data.ValCurs.GetEnumerator() |
Select-Object @{Name="Name"; Expression={$_.CharCode}}, @{Name="Rate"; Expression={[double]($_.Value -replace ",",".") / $_.Nominal}} |
Where-Object {$_.Name -like $Name} |
Set-Content $desc
(Get-Content $desc) | ForEach-Object {$_ -replace "@{Name=", ""} | Set-Content $desc
(Get-Content $desc) | ForEach-Object {$_ -replace ";", ""} | Set-Content $desc
(Get-Content $desc) | ForEach-Object {$_ -replace "Rate=", ""} | Set-Content $desc
(Get-Content $desc) | ForEach-Object {$_ -replace "}", ""} | Set-Content $desc

CursVal.cmd (запускается шедулером, формирует CursVal.txt с курсами и кодами валют на момент выполнения)
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -FILE cursval.ps1

CursVal.vip (импорт данных на дату запуска из файла CursVal.txt, только доллары США и евро)
Interface BCCursVal 'Загрузка курсов валют'
Create View
As Select *
From KlVal, CursVal
Where ((KlVal.nrec == CursVal.KodValut));
var strVal:string;
file CursValFile;
HandleEvent
cmInit:
{
if(not CursValFile.Openfile('\\galsrv\obmen\CursVal.txt',stOpenRead)) exit;
while(not CursValFile.EOF)
{
CursValFile.readln(strVal);
if(InStr('USD',strVal) <>0)
{
if (GetFirst KlVal Where (('USD'==KlVal.SimvolV)) )=tsOK then
{
ClearBuffer(#CursVal);
CursVal.KodValut:=KlVal.nRec;
CursVal.DatVal:=Cur_Date;
CursVal.SumRubl:=SubStr(strVal, 5, Length(strVal)-4);
Insert Current CursVal;
}
}
if(InStr('EUR',strVal) <>0)
{
if (GetFirst KlVal Where (('EUR'==KlVal.SimvolV)) )=tsOK then
{
ClearBuffer(#CursVal);
CursVal.KodValut:=KlVal.nRec;
CursVal.DatVal:=Cur_Date;
CursVal.SumRubl:=SubStr(strVal, 5, Length(strVal)-4);
Insert Current CursVal;
}
}
}
CursValFile.Close;
CloseInterface(0);
}
end;
end.

CursVal.bat (запускается по шедулеру на выполнение интерфейс BCCursVAl для добавления данных по курсам валют)
CD C:\CursVal
@start C:\Gal810\EXE\galnet.exe

galnet.cfg (настройки для запуска интерфейса, ноходится в c:\CursVal)
[DataBase]
DataBaseName=\\GalSrv\Gal810\DATA
RandomSurrKeys=Off
CheckRepository=Off
[LicParam]
LicFileName=\\GalSrv\Gal810\LIC\Lic810.lic
[HardwareKey]
SharedPath=\\GalSrv\Gal810\HWDir
[Login]
EnableDuplicateUser=On
Password=cursval
UserName=CursVal
[Galaxy]
NowRun=BCCursVal
[System]
OpenResources=C:\Gal810\EXE\User4.res

В качестве шедулера используется nnCron.

Вроде все.
Ответить