Uhuk-uhuk (batuk , karena ngunjungin blog yang udah berdebu lantaran lama kagak di update) ..
Saya gak tau apa judulnya tepat atau enggak , tapi silahkan baca aja dehPerhitungan Tabel Dengan Query Pada Delphi 7.
Begin , kali ini saya menemukan permasalahan ketika hendak menjumlahkan isi dari field pada tabel.Lihat gambar dibawah ini
itu adalah report yang saya buat menggunakan Quick Report pada delphi 7.MySQLDac sebagai konektornya , dan XAMPP sebagai server SQL-nya.Aplikasi yang saya bernama Saritel - Basic Edition V.1.0.0 ini merupakan permintaan dari sebuah bengkel di daerah saya.Dibawah ini penampakan laporan sebelum di Run
Niatnya , saya ingin menjumlahkan semua field harga beli , harga jual dan stock.Dengan tujuan agar ketauan berapa jumlah total stock dan modal biaya yang di keluarkan untuk membeli barang tersebut.Juga perkiraan laba bila semua barang tersebut laku terjual.Trus , mulai darimanakah !?
Pertama , saya rubah tampilan laporannya menjadi seperti ini
Lalu biar lebih simple , saya bikin procedure dengan nama cetakSemua.Kodenya , kayak gini nih :
procedure cetakSemua;
var totalBeli,totalJual,jual,beli,stock:Integer; //variabel untuk perhitungan
begin
with FstockBarang do //nama formnya
begin
totalJual:=0; //inisialisasi awal
totalBeli:=0;
with Q_stock_barang do //saya menggunakan Query pada tab data Acces.
begin
Close;
SQL.Clear;
SQL.Add('select * from t_master_barang'); //inisialisasi query
Prepare;
if Prepared=true then
begin
Open;
end;
end;
with Q_total_harga_beli do //query perhitungan data harga beli , dengan query string sama dengan Q_stock_barang
begin
try //fungsi try , untuk membangkitkan eksepsi
First; //memposisikan kursor pada field pertama dari tabel
while not Eof do //Eof=end of field , bila belum sampai pada field terakhir , maka perintah setelahnya akan terus dieksekusi
begin
beli:=StrToInt(fieldbyname('harga_beli').AsString); //var beli diisi dengan field harga_beli
stock:=StrToInt(fieldbyname('stock_barang').AsString); //var stock diisi dengan field stock
totalBeli:=totalBeli+(beli*stock); //menjumlahkan hasil perkalian tiap field
Next; // berfungsi agar kursor berpindah pada field selanjutnya
end;
finally //fungsi finally , di eksekusi bila fungsi try telah mencapai kondisi tertentu , dalam hal ini Eof.
lblTotalHargaBeli.Caption:=IntToStr(totalBeli); //mengisi lblTotalHargaBeli dengan var totalBeli
end;
end;
with Q_total_harga_jual do
begin
try
First;
while not Eof do
begin
jual:=StrToInt(fieldbyname('harga_jual').AsString);
stock:=StrToInt(fieldbyname('stock_barang').AsString); // penjelasannya sama dengan query total beli
totalJual:=totalJual+(jual*stock);
Next;
end;
finally
lblTotalHargaJual.Caption:=IntToStr(totalJual);
end;
end;
with Q_total_stock_barang do
begin
Close;
SQL.Clear;
SQL.Add('select SUM(stock_barang) AS total from t_master_barang'); //menjumlahkan semua stock barang
Prepare;
if Prepared=true then // agar lebih afdol query siap di eksekusi.
begin
Open;
lblTotalStockBarang.Caption:=fieldbyname('total').AsString;
end;
end;
lblTotalPerkiraanLaba.Caption:=IntToStr(totalJual-totalBeli); //menghitung perkiraan laba
end;
end;
Selanjutnya , saya men-triger procedure tadi pada tombol cetak , seperti di bawah ini :
procedure TFstockBarang.btnCetakClick(Sender: TObject);
begin
cetakSemua;
if Q_stock_barang.Prepared=true then
begin
QRstockBarang.Refresh;
QRstockBarang.Prepare;
QRstockBarang.PreviewModal;
end;
end;
Maka , penampakan laporan stock barang tersebut setelah di rubah menjadi seperti ini ::
Taraaa !!!
Hehe , akhirnya beres juga.Dan setelah itu , saya mulai melanjutkan lagi proses testing dari saritel yang masih dalam tahap on going test.Okey , bila saya menemukan masalah yang terpecahkan lainnya , pasti saya share lagi.
Sekian untuk posting kali ini , semoga bermanfaat.
Oia , bila anda berminat untuk mempelajari delphi 7 dari tingkat dasar sampai mahir membuat aplikasi database sendiri.Silahkan kunjungi blog video tutorial saya
DISINI.Tersedia video tutorial praktek selama 3 jam yang akan menuntun anda dengan mudah mempelajari pemrograman Delphi 7.
Simak Juga Tutorial Lainnya:
6 komentar:
Kenapa mesti susah2 pake koding gan??? kan ada komponen QRExpression??? tinggal di sum()... jadi deh... :)
awalnya gitu gan ..
Cuma pas mau milih database fieldnya , gak nongol tuh field yang ane mau SUM ..
Makanya ngoding gitu !! hehe ..
tenkyu ..
Biasanya klo nama fieldnya ga nongol, kemungkinannya :
1. Dataset belom active
2. Dataset terpisah dari report (di datamodule misalnya)
Yuph , saya emang nyimpen semua tabel and datasetnya di data module , biar lebih gampang organisirnya.Yaa kadung koding , jadi cara saya gak salah juga dong !? hehe ..
komponen yang dipake buat bikin tabel kaya gitu apa ya? soalnya saya juga mau bikin report yang pake tabel, cuma belum bisa juga.
bikin garis vertical di dalam tabel itu gimana sih caranya ? pake apa ?
Posting Komentar