Membuat Generate code Delphi (Generate No Urut)
Ketika membuat program seringkali kita membuat no urut yang dibuat dari bawaan database, seperti kode yang bertipe integer dan yang bersifat increment. Cara tersebut memberikan keuntungan yaitu mudah dan cepat, namun saya seringkali mendapat masalah saat menghapus record/data paling terakhir, yaitu no urut akan terus bertambah seiring banyak data yang pernah ada. Misal seperti ini, ada 10 data mulai no urut 1-10. Bila data ke-9 dan ke-10 saya hapus, berarti tinggal 8 data kan, kemudian saya menambahkan 1 data ke database, timbulah permasalah yaitu no urut yang dihasilkan bukanlah no-9 melainkan no 11. Itu terjadi karena database masih menyimpan no urut yang pernah di hapus. Untuk mengatasi hal ini akhirnya saya menggunakan code seperti ini, walaupun masih memiliki kelemahan, tetapi untuk kasus seperti yang saya ceritakan bisa diatasi. Berikut source code nya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var kd,st,newKd:string; i,n:integer; .... ADOTable1.Last; if not(ADOTable1.eof and ADOTable1.Bof) then begin kd:=ADOTable1.FieldByName('kode').AsString; // auto generate for i:=1 to 2 do st:=st+kd[i+1]; n:=strtoint(st)+1; case length(inttostr(n)) of 1 : newKd:='K0'+inttostr(n); 2 : newKd:='K'+inttostr(n); end; end else newKd:='K01'; Edit1.Text:=newKd; |
nb: Untuk field kode bertipe varchar/text dengan length 3.
Hasil akhir akan menghasilkan kode yang berurut yang mulai diawali dengan huruf :
K01
K02
K03
…
K99
Silahkan dimodifikasi dan selamat mencoba…
Artikel Lainnya :
- Membuat Generate code Delphi bag 2 (Generate No Urut)
- Membuat Generate code PHP (Generate No Urut)
- Membuat file konfigurasi .ini dengan delphi
- Memasukan gambar ke dalam cell DBGrid Delphi
- Menampilkan Data Di Listview
- Membuat Guestbook dengan PHP
- Membuat halaman paging php
- t=v1+v2, Cara Meningkatkan Traffic & Popularity dengan Cepat serta Alami
- Virus (Virus.Win32.Induc.a) menyerang Delphi, waspadalah!!!
- Make the mouse wheel works correct in TDBGrid
Delphi 477 views

Recent Comments