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