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.




Post a Comment
Post a Comment