Author Topic: Update cara ambil currency rate dari bank indonesia  (Read 1029 times)

0 Members and 1 Guest are viewing this topic.

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.022
Update cara ambil currency rate dari bank indonesia
« on: December 26, 2015, 11:04:51 AM »
Hi teman-teman, sebagai bukti kalau saya masih mencintai VFP :)


Dibawah ini adalah code untuk mengambil data currency rate dari website bank indonesia revisi terakhir, dikarenakan perubahan layout website BI maka saya juga harus mengupdate code saya, silahkan dicomot.


Code: [Select]
CLEAR ALL

CLEAR


CREATE CURSOR csrKurs(tgl d, mu c(3), nilai n(5,2), kj n(9,2), kb n(9,2))


lcUrl    = "http://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx"
lcTarget = ADDBS(SYS(2023)) + SYS(2015) + ".CUR"


DECLARE LONG URLDownloadToFile IN urlmon.dll LONG, STRING, STRING, LONG, LONG
DECLARE LONG DeleteUrlCacheEntry IN wininet.dll STRING


=DeleteUrlCacheEntry(m.lcURL)


IF URLDownloadToFile(0, m.lcURL, m.lcTarget, 0, 0) == 0
lcData = FILETOSTR(m.lcTarget)
ERASE (m.lcTarget)

*!* dapatkan tanggal update terakhir
lcLastUpdate = STREXTRACT(STREXTRACT(m.lcData, 'ctl00_PlaceHolderMain_biWebKursTransaksiBI_lblUpdate', '/span>'), '>', '<')
ALINES(laDt, m.lcLastUpdate, ' ')
lcBul = "JANFEBMARAPRMEIJUNJULAGUSEPOKTNOVDES"
lcb = UPPER(laDt[2])
lnb = MAX(AT(m.lcb, m.lcBul), 1)
IF m.lnb > 1
lnb = (m.lnb - 1) / 3
ENDIF

ldDate = DATE(VAL(laDt[3]), m.lnb, VAL(laDt[1]))

*!* dapatkan data kurs   
lcDataKurs = STRTRAN(STREXTRACT(m.lcData, 'ctl00_PlaceHolderMain_biWebKursTransaksiBI_GridView1', '</table>'), '</tr>', '~')


lcData = ''


lnCount = ALINES(laKurs, m.lcDataKurs, 21, '~')
IF m.lnCount > 1
FOR i = 2 TO m.lnCount
lcRow = STRTRAN(STREXTRACT(laKurs[m.i], '<tr>', '~', 1), '</td>', '~')
IF LEN(m.lcRow) > 0
n = ALINES(laRow, m.lcRow, 21, '~')
IF m.n >= 4
lcMu = ALLTRIM(STREXTRACT(laRow[1], '>', '~'))
lnNilai = VAL(ALLTRIM(STREXTRACT(STRTRAN(laRow[2],',',''), '>', '~')))
lnKj = VAL(ALLTRIM(STREXTRACT(STRTRAN(laRow[3],',',''), '>', '~')))
lnKb = VAL(ALLTRIM(STREXTRACT(STRTRAN(laRow[4],',',''), '>', '~')))

INSERT INTO csrKurs values(m.ldDate, m.lcMu, m.lnNilai, m.lnKj, m.lnKb)
ENDIF
ENDIF
ENDFOR
ENDIF
ELSE
=MESSAGEBOX("Ada gangguan saat membaca data kurs dari Bank Indonesia!")
ENDIF


LOCATE
BROWSE




Semoga bermanfaat.


BTW, salam kangen, lama tak jumpa.


Regards,
Onytoo
Long life Visual FoxPro...

Offline AmirS

  • Junior Member
  • *
  • Posts: 109
Re: Update cara ambil currency rate dari bank indonesia
« Reply #1 on: December 26, 2015, 08:02:18 PM »
tks , bro atas ilmunya , saya sudah comot dan berjalan dengan baik

Offline khamim

  • Full Member
  • *
  • Posts: 84
Re: Update cara ambil currency rate dari bank indonesia
« Reply #2 on: June 25, 2016, 11:44:11 PM »
Kalau untuk ngambil currency rate pajak dari  http://pajak.go.id ada ga pak?

Offline khamim

  • Full Member
  • *
  • Posts: 84
Re: Update cara ambil currency rate dari bank indonesia
« Reply #3 on: June 26, 2016, 12:02:19 AM »

Offline Tgh_Fox

  • Junior Member
  • *
  • Posts: 207
  • - TghFox -
Re: Update cara ambil currency rate dari bank indonesia
« Reply #4 on: June 27, 2016, 11:43:16 AM »
mantap sekali scriptnya om
Semangat