Arsip: Looping didalam looping ?
more 17 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 17 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 17 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 17 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 17 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 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- ada yang punya komponen FBus nggak ???
by doditali in Network, Files, I/O & System more 18 years ago - HELP: gimana cara ganti isi data dari suatu filed pada table
by putukaca in MySQL more 14 years ago - dbgrid ke dblookupcombobox
by keylock in Tip n Trik Pemrograman more 15 years ago - Program yang bisa diupdate
by Fransisca_cicilia in Hal umum tentang Pascal Indonesia more 15 years ago - Saya pendatang baru di Delphi
by shee in Tip n Trik Pemrograman more 17 years ago - thread di delphi....
by yadi in Hal umum tentang Pascal Indonesia more 16 years ago - Posting yang kasusnya terpecahkan
by Tbawor in Moderator Only more 16 years ago - memasukkan data langsung di dbgrid-nya
by wiar in Delphi.NET more 16 years ago - saving di dua database yang servernya berbeda sekaligus
by jimboy in OpenSource dan Gratis more 16 years ago - kritik soal artikel nih
by agusmade in Kritik & Saran more 19 years ago