-->

Perhitungan Tabel Dengan Query Pada Delphi 7


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 :



  1. procedure cetakSemua;  
  2. var totalBeli,totalJual,jual,beli,stock:Integer; //variabel untuk perhitungan  
  3. begin  
  4.   with FstockBarang do //nama formnya  
  5.     begin  
  6.       totalJual:=0;  //inisialisasi awal  
  7.       totalBeli:=0;  
  8.       with Q_stock_barang do  //saya menggunakan Query pada tab data Acces.  
  9.         begin  
  10.           Close;  
  11.           SQL.Clear;  
  12.           SQL.Add('select * from t_master_barang');  //inisialisasi query  
  13.           Prepare;  
  14.           if Prepared=true then  
  15.             begin  
  16.               Open;  
  17.             end;  
  18.           end;  
  19.       with Q_total_harga_beli do  //query perhitungan data harga beli , dengan query string sama dengan Q_stock_barang  
  20.         begin  
  21.           try //fungsi try , untuk membangkitkan eksepsi  
  22.           First;  //memposisikan kursor pada field pertama dari tabel  
  23.           while not Eof do  //Eof=end of field , bila belum sampai pada field terakhir , maka perintah setelahnya akan terus dieksekusi  
  24.             begin  
  25.               beli:=StrToInt(fieldbyname('harga_beli').AsString);   //var beli diisi dengan field harga_beli  
  26.               stock:=StrToInt(fieldbyname('stock_barang').AsString);  //var stock diisi dengan field stock  
  27.               totalBeli:=totalBeli+(beli*stock); //menjumlahkan hasil perkalian tiap field  
  28.               Next; // berfungsi agar kursor berpindah pada field selanjutnya  
  29.             end;  
  30.           finally //fungsi finally , di eksekusi bila fungsi  try telah mencapai kondisi tertentu , dalam hal ini Eof.  
  31.             lblTotalHargaBeli.Caption:=IntToStr(totalBeli); //mengisi lblTotalHargaBeli dengan var totalBeli  
  32.           end;  
  33.         end;  
  34.       with Q_total_harga_jual do  
  35.         begin  
  36.           try  
  37.           First;  
  38.           while not Eof do  
  39.             begin  
  40.               jual:=StrToInt(fieldbyname('harga_jual').AsString);  
  41.               stock:=StrToInt(fieldbyname('stock_barang').AsString); // penjelasannya sama dengan query total beli  
  42.               totalJual:=totalJual+(jual*stock);  
  43.               Next;  
  44.             end;  
  45.           finally  
  46.             lblTotalHargaJual.Caption:=IntToStr(totalJual);  
  47.           end;  
  48.         end;  
  49.     with Q_total_stock_barang do  
  50.       begin  
  51.         Close;  
  52.         SQL.Clear;  
  53.         SQL.Add('select SUM(stock_barang) AS total from t_master_barang'); //menjumlahkan semua stock barang  
  54.         Prepare;  
  55.         if Prepared=true then // agar lebih afdol query siap di eksekusi.  
  56.           begin  
  57.             Open;  
  58.             lblTotalStockBarang.Caption:=fieldbyname('total').AsString;  
  59.           end;  
  60.       end;  
  61.     lblTotalPerkiraanLaba.Caption:=IntToStr(totalJual-totalBeli); //menghitung perkiraan laba  
  62.     end;  
  63. end;  
  64.   
  65. Selanjutnya , saya men-triger procedure tadi pada tombol cetak , seperti di bawah ini :  
  66.   
  67. procedure TFstockBarang.btnCetakClick(Sender: TObject);  
  68. begin  
  69.       cetakSemua;  
  70.       if Q_stock_barang.Prepared=true  then  
  71.         begin  
  72.           QRstockBarang.Refresh;  
  73.           QRstockBarang.Prepare;  
  74.           QRstockBarang.PreviewModal;  
  75.         end;  
  76. end;  
  77.    

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.

Related Posts

Post a Comment

Subscribe Our Newsletter