Sabtu, 26 Maret 2011

Modul 10. Membuat Nomor peminjaman secara otomatis pada Form Transaksi Peminjaman Buku pada Delphi 7.0 + MS. Access 2007

Karena project Perpustakaan sebelumnya sudah dibuat dan From peminjaman pun sudah dibuat pada modul 8. Klik disini , maka pada kesempatan ini adalah melengkapi frmpinjam yaitu dengan cara:
Membuat nomor pinjam secara otomatis yang terdiri dari 9 digit yang dihasilkan dengan proses :
Dua digit pertama adalah tahun
Dua digit kedua adalah bulan
Lima digit terakhir adalah nomor urut
Sehingga menghasilkan nomor : 100100001
Adapun langkah-langkahnya adalah :
1. Membuat fungsi rightstr dengan cara mengetikan koding secara langsung diluar procedure di bawah implementation.
// Membuat Fungsi Left, right, mid String
//sumber : Klik disini
01
02implementation
03 
04{$R *.dfm}
05function RightStr
06    (Const Str: String; Size: Word): String;
07begin
08  if Size > Length(Str) then Size := Length(Str) ;
09  RightStr := Copy(Str, Length(Str)-Size+1, Size)
10end;
11 
12function MidStr
13    (Const Str: String; From, Size: Word): String;
14begin
15  MidStr := Copy(Str, From, Size)
16end;
17 
18function LeftStr
19    (Const Str: String; Size: Word): String;
20begin
21  LeftStr := Copy(Str, 1, Size)
22end;
2. Membuat koding pada Form Create sebagai berikut :
01procedure TFrmPinjam.FormCreate(Sender: TObject);
02var i,nomor: integer;
03nom,no : string;
04begin
05 
06//Membuat Nomor peminjaman secara otomatis
07decodedate(date,Thn,Bln,hari);
08adoquery5.Close;
09adoquery5.SQL.clear;
10adoquery5.SQL.add('Select * from pinjam');
11adoquery5.open;
12if adoquery5.RecordCount = 0 then
13  nomor := 1
14else
15begin
16nom := rightstr(inttostr((adoquery5.fields[0].AsInteger)),5);
17nomor := strtoint(nom) + 1;
18end;
19no:='0';
20for i := 1 to (4 - length(inttostr(nomor))) do
21begin
22  no := no + '0';
23end;
24edit1.text := rightstr(inttostr(thn),2) + rightstr(('0'+inttostr(bln)),2)+no+ inttostr(nomor);
25 
26//untuk menghitung tanggal tempo
27decodedate(date,Thn,Bln,hari);
28hari := hari + 5;
29tanggal := encodedate(thn,bln,hari);
30edit2.Text := formatdatetime('DD/MM/yyyy',tanggal) ;
31sg.RowCount :=1;
32sg.ColCount:=5;
33sg.Cells[0,0]:='No';
34sg.Cells[1,0]:='Kode Buku';
35sg.Cells[2,0]:='Judul buku';
36sg.Cells[3,0]:='Pengarang';
37sg.Cells[4,0]:='Qty';
38 
39sg.ColWidths [0]:=40;
40sg.ColWidths [1]:=60;
41sg.ColWidths [2]:=80;
42sg.Colwidths[3]:=80;
43sg.colwidths[4]:=60;
44 
45end;

Tidak ada komentar:

Posting Komentar