Autor |
Wiadomość |
Mix-soft.pl
|
|
![](styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Jeżeli nie znajdzie waluty czy kursu to i tak zwraca 0.
Ale popraw to tak jak Ci będzie wygodnie. A jak już dopracujesz się gotowego rozwiązania to je opublikuj chętnie zobaczę.
|
2013-11-28, 12:58 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
grabber
Rejestracja: 2013-10-20, 19:08 Posty: 49
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Zwracając uwagę nie chciałem w żaden sposób urazić Cię... więc przepraszam. Gdybym pewnie siedział w symfonii dzień i noc to pewnie też bym publikował... Skoro potraktowałeś ten skrypt tak poważnie / profesjonalnie to chciałem tylko nadmienić że bardziej profesjonalnie jest aby skrypt zwracał jawnie określoną wartość a nie w przypadku błędu zwracał "domyślnie" deklarowaną wartość dla zmiennej.
|
2013-11-28, 13:11 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Uwagi są zawsze mile widziane :)
|
2013-11-28, 13:41 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
Glajder
Rejestracja: 2009-01-31, 13:02 Posty: 106 Pomógł: 6
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
rafal - po skopiowaniu Twojego kodu w pliku tmp pojawia się taki wpis: The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
Używam Windows 8 Pro 64bit Handel Premium 2013.1.b z pervasive workgroup ver 11
Czy to wina 64bita?
_________________ Pozdrawiam, G.
|
2013-11-29, 12:41 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
![Ta wiadomość była pomocna Ta wiadomość była pomocna.](./img/mix_star.png) (1)
![szukanie :szukaj](./images/smilies/icon_szukaj.png) ZNAJDŹ Kod: dispatch req = "Microsoft.XmlHttp" ZAMIEŃ NA Kod: dispatch req = "MSXML2.XmlHttp" Teraz powinno chodzić wszędzie. Mógłbyś to potwierdzić?
|
2013-11-29, 14:08 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
Glajder
Rejestracja: 2009-01-31, 13:02 Posty: 106 Pomógł: 6
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Potwierdzam, działa.
_________________ Pozdrawiam, G.
|
2013-11-29, 14:29 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
![Ta wiadomość była pomocna Ta wiadomość była pomocna.](./img/mix_star.png) (1)
użycie obiektu RegExp umożliwiło wyeliminowanie pliku tymczasowego Kod: float sub PobierzKurs(string sWaluta, string sData)
date dDataNBP dDataNBP.FromStr( sData )
dispatch req = "MSXML2.XmlHttp" dispatch xml = "Microsoft.XMLDOM" dispatch exp = "VBScript.RegExp" dispatch mat
exp.Global = 1 exp.IgnoreCase = 1 dispatch xmlPOZYCJE dispatch xmlPOZYCJA dispatch xmlKOD_WALUTY dispatch xmlKURS_SREDNI
string sWybranyXML string url = "http://www.nbp.pl/kursy/xml/dir.txt" int iPozycje
req.open ("GET", url, 0) req.send exp.pattern = (using "a([0-9]{3})z%s%2.2d%2.2d", mid((using "%d", dDataNBP.Year ),3,2), dDataNBP.Month, dDataNBP.Day) mat = exp.Execute( req.responseText )
if mat.count() == 1 then sWybranyXML = mat.item(0).value
xml.async = 0 xml.Load( "http://www.nbp.pl/kursy/xml/" + sWybranyXML +".xml" )
xmlPOZYCJE = xml.getElementsByTagName("pozycja")
for iPozycje = 0 to iPozycje > xmlPOZYCJE.length - 1
xmlPOZYCJA = xmlPOZYCJE.item( iPozycje )
if xmlPOZYCJA.getElementsByTagName("kod_waluty").item(0).text == sWaluta then PobierzKurs = val(xmlPOZYCJA.getElementsByTagName("kurs_sredni").item(0).text)
endif
next iPozycje
endsub
|
2013-11-29, 15:30 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
grabber pisze: :) Pewnie że łatwiej użyć rozwiązania innych... ale dawać sage za taką przyjemność 400 netto...? to powoływanie specjalnie obiektu MSXML jest w tym przypadku tak samo wydajne jak regexp czy bardziej proste rozwiązania. Zasada jest taka że zawsze należy oceniać wielkość przedsięwzięcie do opłacalności używania zewnętrznych rozwiązań... No czemu sage - możesz nabyć nasz za jakieś 300 a nawet damy ci upust - jako klientowi z forum :) Co do MSXML dla jednego kursu to nie ma sensu ale jak czytasz kursy do FK za np tydzień i dla 20 walut - to juz MSXML jest wygodniejszy :) Co do opłacalności zewnętrznych rozwiązań - no policz ile kosztuje twoja godzina i ile godzin na to opracowanie stracisz - i wtedy ocen opłacalność - najczęściej wychodzi ze jednak warto skorzystać z zewnętrznego narzędzia czy tez biblioteki :)
|
2013-12-02, 17:52 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
grabber
Rejestracja: 2013-10-20, 19:08 Posty: 49
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Ależ ja doceniam każdą pracę i każdy wysiłek, tylko czasem warto mieć pewne alternatywy... Bo są firmy mniejsze i większe, które mogą sobie pozwolić na zatrudnienie informatyka lub też nie...
I tym samym gotowe rozwiązania za 300-400 zł oferował bym firmie która nie ma takiego wsparcia wewnętrznego dając im pewność "przynajmniej teoretyczną" niezwodności i niewymagającego obługi modułu do programu...
Ale są też firmy które zatrudniają pewnych ludzi o dziwnych twarzach i fryzurach dla których takie wsparcie to wyzwanie... :)) Oczywiście aż taki zboczony nie jestem aby się teraz uczyć profesjonalnie programować w ambasicu :) dlatego też zwracam się do was co pewien czas z prośbą o pomoc bo dobrze widzę że forum jest wspierane przez profesjonalistów...
|
2013-12-02, 18:24 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
grabber
Rejestracja: 2013-10-20, 19:08 Posty: 49
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Czy wiecie może dlaczego jak wrzuca się jakąś funkcję do OnOpen() w procedurze OnTimer() (tak aby coś wykonało się na dzień dobry po uruchomieniu) to zaczyna się ta funkcja zapętlać? Jak wrzucę coś typy message "Hello" to wykonuje się raz, a jak wrzucam np. funkcję która sprawdza czy są aktualne kursy i ewentualnie je pobiera i podmienia to funkcja zaczyna pracować w pętli, nie pozwalając dostać się do programu... Wydedukowałem że może wynikać to z faktu że jeśli OnOpen() nie zakończy działania funkcji przed kolejnym cyklem OnTimer() to cała procedura OnTimer() zaczyna się od nowa...?
|
2013-12-03, 12:41 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
pokaż co tam dodajesz to może coś wymyślimy.
|
2013-12-03, 12:42 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
grabber
Rejestracja: 2013-10-20, 19:08 Posty: 49
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Kod: int sub OnOpen() PopUp ( 1, "Trwa aktualizacja kursu walut. Proszę czekać..." ) If SprawdzKurs("EUR",AktualnaData) == 0 Then For ForStep=0 To ForStep > 7 DateObject.SubDays(1) AktualnaData = DateObject.DateToStr() WartoscWaluty = PobierzKurs("EUR",AktualnaData) PopUp ( 2, "Sprawdzam kurs dla: " + AktualnaData ) If WartoscWaluty > 0 Then If SprawdzKurs("EUR",AktualnaData) == 0 Then DodajKurs("EUR",AktualnaData,WartoscWaluty) NewValueCounter = NewValueCounter + 1 Endif Endif Next ForStep Endif
If NewValueCounter > 0 Then Message "Kurs walut został zaktualizowany!" OnOpen = 0 endsub Z palca działa bardzo dobrze, ale jak wrzucam do procedury OnOpen() to gdy tylko skończy to wykonuje od nowa całość, przerwanie z ESC wyświetla pytanie o przerwanie ale potwierdzenie tego nic nie daje...
|
2013-12-03, 14:00 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
Nie pokazałeś całego kodu. Raczej sam musiałeś gdzieś zapętlić coś.
|
2013-12-04, 15:00 |
|
![](./styles/avalonblue/theme/images/spacer.gif) |
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4008 Pomógł: 449
|
![Post Post](./styles/avalonblue/imageset/icon_topic_latest.gif) Re: Pervasive - Wprowadzanie kursu walut?
chyba masz rację. coś jest nie tak
|
2013-12-04, 15:13 |
|
|