Arsip: Looping didalam looping ?

more 16 years ago
javaman
hallo semua aku mo mohon sedikit bantuan, bagaimana proses looping didalam looping.
maksudnya bila kita ada proses looping kemudian didalamnya ada looping lagi kenapa program
ndak selesai2 (looping terus) ya ??
contohnya seperti ini
procedure TfrmPosting.Button2Click(Sender: TObject);
var xInv_code : string ;
nNilAwal : double;
begin
// Cek kartu stok
ADOKrtstmdb.SQL.Clear;
ADOKrtstmdb.Active := false;
ADOKrtstmdb.SQL.Text := 'Select TRX_CODE, TRX_DATE, TRX_JENS, TRX_DBCR, '+
'INV_CODE, TRX_KUAN,TRX_AMNT, TRX_HPOK, TRX_HAVG from '+
'KRTSTMDB ORDER BY TRX_DATE, INV_CODE, TRX_DBCR';
ADOKrtstmdb.Active := True;
// cek saldo awal
ADOKrtstmdb.First;
while not ADOKrtstmdb.Eof do
begin
xInv_code := ADOKrtstmdb.FieldByName('INV_CODE').AsString;
ADOInvenddb.SQL.clear ;
ADOInvenddb.Active := false;
ADOInvenddb.SQL.Text := 'select INV_CODE,QTY_AWAL, NIL_AWAL from INVENDDB ' +
' WHERE INV_CODE = ' + Quotedstr(xInv_code) + 'order by INV_CODE';
ADOInvenddb.Active := true;
// cari data dari saldo awalnya dulu
// simpan hppnya
if ADOInvenddb.RecordCount = 1 then
begin
nNilAwal := ADOInvenddb.FieldByName('NIL_AWAL').AsFloat ;
end;
// ulang selama kode sama
while ADOKrtstmdb.FieldByName('INV_CODE').AsString = xInv_code do
begin
// if jenisnya debet tambahkan or Kredit kurangi
// ShowMessage('Belum nyampe');
if ADOKrtstmdb.FieldByName('TRX_DBCR').AsString = 'K' then
begin
QueryUpdate.SQL.Text := 'UPDATE krtstmdb SET TRX_HAVG='+ floattostr(nNilAwal) +
'WHERE INV_CODE='+ Quotedstr(xInv_code) ;
QueryUpdate.ExecSQL
end;
//txtPosting.text := xInv_code ;
/ ADOKrtstmdb.Next;
end;
// ADOKrtstmdb.Next;
end;
end;
untuk query nextnya udah saya pindah2 tapi ttp aja program looping terus, mohon bantuannya ya.
sebelumnya terima kasih
more 16 years ago
Manz
Ya jelas lah gak bisa selesai wong ADOKrtstmdb itu di loop dari parent loop kemudian di loop lagi di nested loopnya
while not ADOKrtstmdb.Eof do
begin
xInv_code := ADOKrtstmdb.FieldByName('INV_CODE').AsString;
ADOInvenddb.SQL.clear ;
ADOInvenddb.Active := false;
ADOInvenddb.SQL.Text := 'select INV_CODE,QTY_AWAL, NIL_AWAL from INVENDDB ' +
' WHERE INV_CODE = ' + Quotedstr(xInv_code) + 'order by INV_CODE';
ADOInvenddb.Active := true;
if ADOInvenddb.RecordCount = 1 then
begin
nNilAwal := ADOInvenddb.FieldByName('NIL_AWAL').AsFloat ;
end;
QueryUpdate.SQL.Text := 'UPDATE krtstmdb SET TRX_HAVG='+ floattostr(nNilAwal) +
'WHERE INV_CODE='+ Quotedstr(xInv_code) +
'And TRX_DBCR = ''K''';
QueryUpdate.ExecSQL
ADOKrtstmdb.Next;
end;
Saya ubah seperti diatas ... tapi belon dicobain .... :mrgreen: cobain dulu deh kalo jalan kasih tahu ... :mrgreen: :mrgreen:
Perlu diketahui untuk Execute SQL tidak perlu di looping, karena dia akan looping sendiri di engine SQL nya ...
:mrgreen:
more 16 years ago
javaman
Makacih Mas, Program diatas adalah program posting stok untuk mencari Hppnya (hpp persediaan system standard) kalau kita ndak looping lagi untuk setiap barang maka (setiap barang harus punya saldo awal atau hpp sendiri2) saldo awalnya akan sama semua dan saldo akan bertambah HPPnya bila ada transaksi yang bersifat 'D'.
Mohon pencerahannya lagi mas, maturnuwun, makacih, thank you sebelumnya

more 16 years ago
Manz
Oic... kalo begitu logika nya begini ajah
pake SQL
1. Update dulu untuk saldo awal / hpp tiap barang
2. Transaksi 'K' kalo gak salah untuk update awal dari hpp nya
3. Select yang bersifat transaksi 'D' di "where" nya itu dan kemudian ditambahkan ke saldo awal / hpp tersebut.
moga mbantu :mrgree:

more 16 years ago
javaman
maaf mas, trus proses sqlnya atau looping gimana ya ??
mohon petunjuk selanjutnya
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 3 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- deLogic special post
by deLogic in OOT more 16 years ago - Error yang ga bisa nyelesaikannya!
by Shodddd in Tip n Trik Pemrograman more 15 years ago - ScreenShot Progie
by syntax_error in OOT more 15 years ago - to Cyber_hacker
by grounders in Hal umum tentang Pascal Indonesia more 18 years ago - Sepele tapi GAGAL!!
by fcomputer in Bedah Kasus more 14 years ago - tanya dll
by buyungff in Hal umum tentang Pascal Indonesia more 16 years ago - [ASK] Keluar fatal error ???
by RoenZ in Tip n Trik Pemrograman more 15 years ago - akses database ms.acces dari delphi
by artati in Paradox more 16 years ago - mass cashtoword di fast report
by jonathan_giuliano in Reporting more 13 years ago - Minta pendapat S2?
by bocah212 in OOT more 16 years ago