Menampilkan Nilai Terbilang Di Rave Report
Menanggapi pertanyaan Delphier pengunjung.
Rave report berbeda dengan FastReport yang mendukung scripting, sehingga bila kita ingin menambahkan fungsi-fungsi baru, agak repot. Termasuk bila kita ingin menambahkan fungsi untuk mengubah nilai numerik ke nilai terbilang, misalnya 100 menjadi “seratus”. Jadi, mau tak mau kita harus membuat fungsi tersebut di Delphi, hasilnya baru di kirim ke Rave report.
Saya cenderung menggunakan event OnCalcField() pada TDataset untuk proses pengubahan ini, dan hasilnya disimpan di field baru, kemudian dikirim ke Rave report.
Kita langsung ke langah-langkahnya:
- Kita buat sebuah projek baru Di Delphi (Delphi 7 ke atas). Saya menggunakan Delphi 2009 for Win32. Delphi 2010 dan RAD Delphi XE pun tidak masalah.
- Pada form utama, kita tambahkan sebuah koneksi database, sebuah query/table (pokoknya komponen dataset), dan sebuah Datasource. Bila perlu, tambahkan juga sebuah DBGrid dan sebuah Memo untuk menampilkan data di form. Karena saya anggap perlu, saya menambahkan juga kedua komponen terakhir
- Gunakan unit berisi fungsi-fungsi konversi. Anda bisa mendownloadnya di sini. Simpan hasil ektsraknya (file uTerbilang.pas) ke dalam satu folder dengan projek, kemudian tambahkan ke klausa use unit1 (form utama) dari menu File>Use Unit…
- Setup koneksi ke database. Kemudian atur SQL/nama tabel untuk komponen query/table. Saya menggunakan Zeos (ZConnection dan ZQuery). Gunakanlah tabel yang mengandung field numeric/integer.Lihat gambar berikut sebagai perbandingan:
Catatan: Anda bebas menggunakan komponen database apapun dan tabel/database apapun. Asalkan di tabel tersebut terdapat field numerik/integer (sesuai kebutuhan kita). Pada gambar di atas, saya menggunakan Delphi 2009/Zeos/MySQL. - Kini klik kanan pada komponen query. Klik Fields Editor…
Klik kanan pada window Fields Editor dan klik Add All Fields.
Setelah itu, klik kanan lagi dan klik New Field.

- Kini kita akan membuat sebuah Calculated Field, yaitu field yang nilainya diisi saat dataset dibuka.
Pada window New Field berikut:

Masukkan nama field, misalnya “terbilang”, Component biarkan saja nilai defaultnya, Type diisi string dan Size masukkan 255. Field Type pilih Calculated. Klik OK. - Kembali ke Fields Editor. Tutup saja window ini. Pada form utama, klik pada komponen dataset (ZQuery pada contoh di atas). Pada event OnCalcFields di Object Inspector, klik ganda.

- Ketikkan kode seperti berikut pada event tersebut:
procedure TForm1.ZQuery1CalcFields(DataSet: TDataSet); begin ZQuery1.FieldByName('terbilang').AsString := MyTerbilang(Zquery1.FieldByName('saldo_awal').AsFloat); end; - Sesuaikanlah nama field “terbilang” dengan nama field pada langkah 6 di atas. Nama field “saldo_awal” disesuaikan dengan nama field dalam tabel yang akan dikonversi menjadi teks.
- Proses konversi sudah selesai. Kini tinggal menampilkan ke Report.
Anda dapat membuat report di Rave report seperti yang biasanya Anda lakukan. Di sana telah ada sebuah field “terbilang” yang berisi hasil konversi. Saya tidak akan membahas tentang penggunaan Rave report di sini.
Referensi Rave report:
http://muhal.wordpress.com/2007/03/14/membuat-rave-report-di-delphi-7/
http://pekalongan.110mb.com/data/rave.pdf - Untuk menguji, gunakan event OnAfterScroll milik ZQuery:
<pre> procedure TForm1.ZQuery1AfterScroll(DataSet: TDataSet); begin Memo1.Text := ZQuery1.FieldByName('terbilang').AsString; end;</pre> - Kini jalankan aplikasinya. Di contoh saya, tampilannya seperti ini:

Demikian. Semoga ada manfaatnya.
Salam hangat, Delphier
Advertisement
Categories: Contoh Aplikasi, Database, Delphi, Delpih Tip & Trik, Request Pembaca
Contoh Aplikasi, Database, Delphi, MySQL, Rave, Rave Report, tip, trik, Tutorial, Zeos














Imunk’s Weblog
Komunitas Delphi Indonesia
Aksa’s Blog
Bayu Prasetyo’s Weblog
Bee.Ography – Yet Another Buzz Of Bee
Database di Delphi
Decompile Program Delphi (DeDe 3.5)
Delphi Error Saat Tutup Aplikasi
Delphi Expert’s Weblog
Delphi: Membuat program ALARM PENGINGAT
Enigmatic Passion: Delphinya Mas Bayu
Faris's Blog
Fitri Hanung
KaKaDeLpHi
ramdhanevoel blog
Tip Trik Delphi
Blognya Si Manyun…
Cara Menyimpan Gambar JPeg di MySQL dengan Delphi
NanazBazie
PopNote – Review Terkini Seputar Teknologi & Life Style
Terima kasih banget artikelnya..
ini sangat membantu sekali .. aq coba dulu!
siiiip
Top markotop , maknyus ditambah es campur deh blog ini.
Terima kasih banget ma artikelnya. btw knp gk dikembangin, misal dibuat buku gt?
mw tanya lagi nih,
gimana cara looping data waktu insert table?
saya punya 2 table = angsuran dan bayar,
di table angsuran ada 1 record data, di table bayar kosong,
waktu nanti di inputkan dari table angsuran ke table bayar, hasilnya di table bayar nanti ada 3 record, jadi looping data 3 x.
inputan 3 x berdasarkan waktu angsur. jika ada angsur 4 x,
hasilnya nanti 4 record.
dan seterusnya…
mohon bantuannnya!
Pasti kan ada catatan, berapa jumlah uang yang dibayar per 1 kali angsuran, misal Rp 1.000.
Nah, Saat penginputan angsuran, looping:
insert into tblAngsuran(…) values(….);
for i:=1 to JmlAngsuran do
begin
Insert into tblBayar(…..,jumlah_bayar,…..) values (….., 1000, ……);
end;
Betul sekali mas, berarti yg JmlAngsuran itu table?
Btw klo looping berapa kali angsur dan menjumlahkan bulan gimna ya?
Misal saya buat table seperti dibawah ini:
Table JmlAngsuran :
nomor , tanggal , bayar , berapakaliangsur
1234 , 11/11/2011 , 1.000.000 , 3
Jadi nanti hasilnya waktu di looping:
Table tblBayar :
nomor , tanggalangsur, jumlah_bayar, angsuranke
1234 , 11/11/2011 , 320.000 , 1
1234 , 11/12/2011 , 320.000 , 2
1234 , 11/01/2012 , 320.000 , 3
Mohon bantuannya ya Master
[JmlAngsuran] itu nilai yang akan dimasukkan ke tabel [angsuran] pada field [berapakaliangsur].
A. Masukkan ke tabel angsuran
Insert into Angsuran (nomor, tanggal, bayar, berapakaliangsur) values (1234, ’2011-0-11-11′, 1000000,3); —>angka 3 ini adalah [jmlAngsuran]
B. Ambil ansguran terakhir
angsuran_ke := select max(angsuranke) as x from Angsuran;
for i := 1 to 3 do —> for i := 1 to JmlAngsuran do
begin
angsuran_ke := angsuran_ke + 1;
insert into bayar(nomor, tanggalangsur, jumlah_bayar, angsuranke) values (1234, ’2011-0-11-11′, 320000, angsuran_ke);
end;
Mw minta pencerahan aja mas, untuk angsuran_ke dan JmlAngsuran itu nanti dibuat bilangan integer ya pada variablenya?
Sowry saya yg jawab ^^
Iya betul, dibuat variabel baru bertipe integer.
angsuran_ke := select max(angsuranke) as x from Angsuran; artinya nilai angsuran ke diambil dari database menggunakan
Semoga membantu
Siiiip banget, sudah bisa berjalan, tapi untuk tanggal gimana ya?
karena saya inputin tanggal di dbedit.
makasih sebelumnya, markotop deh..
Btw di blog ini ada 2 orang yang berbeda ya?
1. Di Dataset yang terkoneksi ke DBEdit tanggal, klik kanan, pilih Fields Editor…
2. Klik field tanggal.
3. Di Object Inspector, cari property DisplayFormat, isi nilainya: dd/MM/yyyy
4. Tanggal akan tampil sesuai format yang diberi.
Hm…. sudah nakal mulai tanya-tanya nih… bahaya… :p
Yaaaa cuma tanya aja, pasti cantik .., wong fotonya ja ky gt!
Maksudnya gimana cara nambahin bulan, saya inputin tanggal di dbedit?
nomor , tanggal , bayar , berapakaliangsur
1234 , 11/11/2011 , 1.000.000 , 3
nanti hasilnya seperti ini waktu di looping:
nomor , tanggalangsur, jumlah_bayar, angsuranke
1234 , 11/11/2011 , 320.000 , 1
1234 , 11/12/2011 , 320.000 , 2
1234 , 11/01/2012 , 320.000 , 3
makasih sebelumnya.
adakah fungsi terbilang yg bisa membaca koma (,) .. misal 50,75 dibaca lima puluh koma tujuh lima ..
var
s: string;
hasil: double;
begin
s := ’50.75′;
s:= stringreplace(s, ‘,’,’.’,[rfReplaceAll]); //——-> mengganti semua tanda koma ke titik…
hasil := strToFloat(s);
end;
mas joko ni mang mantap ilmu databasenya
Mas, mungkin agak menyimpang, sy gunakan delphi+zeos+postgresql utk bikin program client server.
yg mo sy tanyakan, bagaimana mengatasi kondisi koneksi client yg terputus secara tiba-tiba?
misalnya pada wireless terjadi RTO biasanya muncul eror koneksi.
Tx
Ohya..kayaknya klo siang nama Joko Rivai and klo malam Riva…lina he..he..he.. tul g?