Fungsi terbilang bisa dibilang sangatlah penting bagi pelaporan terutama dalam hal finance seperti giro / cek maupun invoice. berikut adalah tutorial membuat fungsi terbilang menggunakan custom function crystal report bukan dengan tambahan seperti library external (.DLL) maupun passing parameter ke crystal report, tetapi bener" fungsi yg include di dalam crystal report, butuh effort juga untuk membuat fungsi ini di crystal report, karena klo menggunakan bahasa pemrograman lain tentu sangat mudah karena bisa menggunakan recursive tapi untuk bahasa basic sepertinya tidak bisa dan harus dilakukan secara terpisah belum lagi debug bilangannya yg bikin mata saya seakan" menjadi juling @_@.
How To
1. Buka Crystal Report , buka menu Report > Formula Workshop
2. Klik 2 kali "Custom Report Function"
3. Klik Icon "New" (gambarnya Kertas Putih), akan muncul kotak dan berikan nama "terbilang"
4. layar code akan aktif , untuk kali ini saya akan menggunakan bahasa pemrograman "basic", karena crystal report defaultnya menggunakan "crystal syntax" maka kita harus merubah menjadi "Basic Syntax" caranya coba dilihat di bagian kanan atas bagian inner menu bar, itu tinggal di scroll jadikan ke "Basic Syntax"
5. Klik kembali Icon "New" (gambarnya Kertas Putih), dan buat fungsi seperti di gambar dibawah ini , jangan lupa semua code di set ke "Basic Syntax"
6. Fungsi custom sudah kita buat sekarang tinggal memanggil, gmn caranya ? tinggal buat yg namanya formula atau lebih enaknya kita sebut custom field, caranya coba lihat kembali menu di sebelah kiri (yg tadi jangan di close dulu) pilih folder "Formula Field" klik 2 kali kemudian pilih Icon "New" (gambarnya Kertas Putih), akan muncul kotak dan berikan nama "TerbilangToString", kemudian ketikan :
"## " & terbilang (1000000) & " Rupiah ##"
tutup formula workshop, kembali ke layar laporan, DRAG formula fieldnya ke Design, coba di running.
maka ketika di run akan menghasilkan "## satu juta rupiah ##".
anda dapat mengganti nominal 1 juta tadi dengan field yg anda passing dari database.
contohnya : terbilang ({table.field_database})
berikut adalah contoh punya saya
*KNOWN BUG :
Bagi yang sudah download harap ubah line ini pada fungsi terbilang() :
elseif banyakString < 7 then 'untuk ratusan ribu 100.000 - 999.999
'terbilang = bilanganRatusanRibu(Amount) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan(Amount mod 100) --bug 17 April 2015
harap diubah menjadi
terbilang = bilanganRatusanRibu(Amount) & bilanganPuluhanRibu(Amount mod 100000) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan(Amount mod 100)
Download Custom Function Terbilang Crystal Report
Instruction :
1. Download the file by click the button below
2. after download, you see a list of .txt file, that's the function, copy paste into your crystal report
3. call the function : terbilang(your value)
4. if you find the bugs please report to me for fix, thank you.
1. Download the file by click the button below
2. after download, you see a list of .txt file, that's the function, copy paste into your crystal report
3. call the function : terbilang(your value)
4. if you find the bugs please report to me for fix, thank you.
13 comments
klo ada kesalahan dalam pembacaan harap di comment di bawah sini ya , nanti langsung di fix.
Replyterima kasih
maaf... sya mau tanya..
Replydi crystal report saya gk da menu formula workshopnya bagaimna?
saya menggunakan CR versi 8.5
Dear Mas Antonius,
Replyada kok mas masa ga ada haha , di menu REPORT > FORMULA WORKSHOP
di tutorial ini saya pakai versi CR 9 tapi seharusnya versi sebelumnya juga udah ada.
satu lagi , jangan lupa di benerin bugsnya mas :D
Replygk da mas pa CR saya ya?
Replyda link CR 9+creknya?
trus kalo saya makek delphi, scrip tu tetap mash bsa dipnggil gk?
waduh klo link cr9 sama cracknya saya ga ada mas, untuk masalah script saya yakin bisa .... karena script ini yg eksekusi adalah crystal reportnya bukan dari pemrograman lain semacam delphi maupun .NET. bahkan anda bisa merunning scriptnya via crystal report itu sendiri :D.
Replyyang anda butuhkan bagaimana crystal report ini bisa diintegrasikan ke delphi. script ini di embed di file report loh mas bukan di dalam delphinya.
ratusan ribu dan jutaan tidak tampil gan
Replyratusan ribu dan jutaan tidak tampil gan
Replyratusan ribu dan jutaan gak tampil
Replygimana caranya gan
angka yg error dimasukan gan !!!
Replyyg ratusan ribu kyknya udah saya benerin bug nya !! liad article di atas
untuk yg jutaan tolong dimasukin nominalnya biar saya cek !!
saya cuma mau sampai jutaan ajah
Replycode agan saya ubah seperti di bawah
tolong di cek gan code nya
Function terbilang (Amount as Double) as string
'--------------------------------
'Author : Mahendra Mustika Wijaya
'Modul : Utama
'--------------------------------
Dim bilangan(12) As String
Dim strAmount as string
Dim banyakString as Double
bilangan(1) ="satu"
bilangan(2) ="dua"
bilangan(3) ="tiga"
bilangan(4) ="empat"
bilangan(5) ="lima"
bilangan(6) ="enam"
bilangan(7) ="tujuh"
bilangan(8) ="delapan"
bilangan(9) ="sembilan"
bilangan(10) ="sepuluh"
bilangan(11) ="sebelas"
'remove ,(koma) dan decimal(.00)
strAmount = replace(Cstr(Amount),".00","")
strAmount = replace(Cstr(strAmount),",","")
banyakString = CDbl(replace(CStr(len(strAmount)),".00",""))
'debug here
'terbilang = CStr(banyakString)
if banyakString = 0 then
terbilang = " "
elseif banyakString < 3 then 'untuk puluhan 1 - 99
terbilang = bilanganPuluhan(Amount)
elseif banyakString < 4 then 'untuk ratusan 1.00 - 9.99
terbilang = bilanganRatusan(Amount) & bilanganPuluhan(Amount mod 100)
elseif banyakString < 5 then 'untuk ribuan 1.000 - 9.999
terbilang = bilanganRibuan(Amount) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan((Amount mod 1000) mod 100)
elseif banyakString < 6 then 'untuk puluhan ribu 10.000 - 99.999
terbilang = bilanganPuluhanRibu(Amount) & bilanganRatusan((Amount mod 10000) mod 1000) & bilanganPuluhan(((Amount mod 10000) mod 1000) mod 100)
elseif banyakString < 7 then 'untuk ratusan ribu 100.000 - 999.999
terbilang = bilanganRatusanRibu(Amount) & bilanganPuluhanRibu(Amount mod 100000) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan(Amount mod 100)
elseif banyakString < 8 then 'untuk jutaan 1.000.000 - 9.999.999
terbilang = bilanganJutaan(Amount,Amount) & bilanganRatusanRibu(Amount mod 1000000) & bilanganPuluhanRibu(Amount mod 100000) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan((Amount mod 1000) mod 100)
end if
End Function
code itu gak bisa dari pulah ribu k atas
Replycodenya sih udah bener gan sama persis dengan updatean saya , klo masih ga bisa kasih contoh nominal nya donk gan.
Replycontoh : 1200000 (satu juta dua ratus ribu)
karena walaupun sama" jutaan tapi prosesnya agak sedikit berbeda tergantung dari nilainya juga.
Post a Comment
Harap gunakan bahasa yang baik dan sopan, terima kasih