Sesuai judul diatas saya ingin menambahkan program kode generate untuk delphi. Sebenernya pada posting sebelumnya sudah ada, namun hanya no urut berdasarkan jumlah record dan diawali dengan sebuah karakter. Untuk Generate Code bag 2 ini hanya saja ditambahkan digit untuk tanggal, bulan dan tahun, baru kemudian no urut data. Untuk lebih jelas liat kode program berikut:


procedure TForm1.GenerateClick(Sender: TObject);
var kd,st,newKd,tgl,bln,thn,tglx,potKd:string;
i,n:integer;
begin
tgl:=datetostr(date);
tgl :='';
bln :='';
thn :='';
//Set Format tanggal
ShortDateFormat:='dd/MM/yy';

tgl:=copy(datetostr(date),1,2);
bln:=copy(datetostr(date),4,2);
thn:=copy(datetostr(date),7,2);

tglx := tgl + bln + thn;

ATable1.Last;
//Mengecek bila tabel belum pny satu pun record
if not(ATable1.eof and ATable1.Bof) then
begin
kd:=ATable1.FieldByName('No').AsString;
potKd:=copy(kd,1,6);

//Ngecek jika input baru yg dimasukan merupakan tahun ajaran baru berikutnya
if (tglx = potKd) then
begin
for i:=7 to 9 do
st:=st+kd[i];
n:=strtoint(st)+1;
case length(inttostr(n)) of
1 : newKd:=tglx + '00'+inttostr(n);
2 : newKd:=tglx + '0'+inttostr(n);
3 : newKd:=tglx + ''+inttostr(n);
end;
end
else newKd:=tglx + '001';
self.Edit1.Text:=newKd;
end
else newKd:=tglx + '001';
self.Edit1.Text:=newKd;
ATable1.Append;
end;

Perintah copy merupakan fungsi yang digunakan untuk mengambil nilai pada bagian string tertentu/substring. Didalam fungsi copy terdapat 3 parameter (string yang diambil, posisi awal, jumlah yang diambil). Nah, untuk tahun ajaran berikutnya kode yang dihasilkan berupa 2 digit tanggal, 2 digit bulan, 2 digit tahun dan 3 digit no urut yang dimulai no urut pertama lagi.

Hasil dari generate diatas seperti berikut : 130409001, 130409002, 130409003 dst….

Potongan prosedur diatas sudah siap digunakan dan Anda hanya tinggal membuat prosedur untuk menyimpan kode yang dihasilkan ke database.
Diposting oleh Borland7

0 komentar:

Visit the Site
MARVEL and SPIDER-MAN: TM & 2007 Marvel Characters, Inc. Motion Picture © 2007 Columbia Pictures Industries, Inc. All Rights Reserved. 2007 Sony Pictures Digital Inc. All rights reserved. blogger templates