Welcome

Welcome, thanks to look my blog

Friday, 18 April 2014

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

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


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
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;

Membuat Form Transaksi pengembalian buku pada Delphi7+Ms.Accsess2007


1. Mengaktifkan Delphi 7.0 dengan cara, klik Start, Klik All Program, Klik Borland Delphi 7, Klik Delphi 7.
2. Klik menu File, klik Open Project, tentukan folder tempat anda menyimpan project PRjpustaka, lalu klik prjpustaka dan klik open
3. Klik Menu file, Klik New, klik form, ganti caption pada properties dengan Input Data Transaksi Pengembalian, dan pada name ketikkan frmkembali.
4. Klik menu View, lalu klik forms dan double klik frmenu, klik Transaksi pada frmmenu, klik Pengembalian dan ketikkan :
frmkembali.show;
5. Klik menu View, lalu klik forms dan double klik frmkembali, lengkapi form tersebut seperti gambar berikut :
Gambar 1. Membuat form Transaksi Pengembalian Buku

Adapun koding selengkapnya adalah :
a. Buatlah variable seperti di bawah ini :
b. Membuat Koding pada Form Activate
procedure TFrmKembali.FormActivate(Sender: TObject);
begin
edit1.SetFocus;
end;
c. Membuat Koding pada Form Create

01procedure TFrmKembali.FormCreate(Sender: TObject);
02begin
03edit1.Text :='';
04edit6.Text := '1000';
05edit2.Enabled := false;
06edit3.Enabled := false;
07edit4.Enabled := false;
08edit5.Enabled := false;
09edit6.Enabled := false;
10edit7.Enabled := false;
11edit8.Enabled := false;
12datetimepicker1.Enabled := false;
13end;
d. Buat koding pada edit1 dengan menggunakan event on keypress

01procedure TFrmKembali.Edit1KeyPress(Sender: TObject; var Key: Char);
02var tgl :tdatetime;
03begin
04if key=#13 then
05begin
06adoquery1.Close;
07adoquery1.SQL.Clear;
08adoquery1.SQL.add('Select * from pinjam where id_pinjam="'+ edit1.Text +'"');
09adoquery1.open;
10if not adoquery1.Eof then
11begin
12
13  //menghitung tanggal tempo
14  decodedate(datetimepicker1.DateTime,thn,bln,hari);
15  hari := hari + 5;
16  tanggal := encodedate(thn,bln,hari);
17  edit2.Text := formatdatetime('dd/mm/yyyy',tanggal);
18
19  edit3.Text := adoquery1.Fields[1].AsString;
20  tgl := adoquery1.Fields[3].AsDateTime;
21  if datetostr(tgl)  <> ''  then
22  begin
23    button1.Enabled := false;
24    datetimepicker2.enabled := false;
25    showmessage('Buku Sudah dikembalikan');
26  end;
27
28  datetimepicker1.Date := adoquery1.Fields[2].AsDateTime;
29  datetimepicker2.date := adoquery1.fields[3].asdatetime;
30
31  //menselect data pada id anggota
32  adoquery2.close;
33  adoquery2.SQL.clear;
34  adoquery2.SQL.add('select * from Anggota where id_Anggota = "'+ edit3.Text +'"');
35  adoquery2.Open;
36  if not adoquery2.Eof then
37  begin
38    edit4.text := adoquery2.Fields[1].AsString;
39    edit5.Text := adoquery2.Fields[2].AsString;
40  end;
41
42  //menampilkan data buku pada datagrid
43  adoquery3.Close;
44  adoquery3.SQL.Clear;
45  adoquery3.SQL.add('select dpinjam.id_pinjam,dpinjam.id_buku,buku.judulbuku,jumlah from dpinjam,buku where dpinjam.id_buku = buku.kode and id_pinjam ="' + edit1.Text +'"');
46  adoquery3.open;
47  if not adoquery3.eof then
48  datasource1.dataset := adoquery3;
49  DBGrid1.DataSource := datasource1;
50end
51else
52  showmessage('data tidak ditemukan');
53
54end;
55end;
e. Membuat koding pada datetimepicker2 dengan menggunakan event change

01procedure TFrmKembali.DateTimePicker2Change(Sender: TObject);
02begin
03edit8.text:='0';
04edit7.Text :='0';
05tgl1 := datetimepicker1.Date;
06tgl2 := datetimepicker2.date;
07if (tgl2 > tanggal) then
08begin
09lama :=trunc(tgl2 - tgl1);
10edit7.Text := inttostr(lama);
11edit8.text := inttostr(strtoint(edit6.text) * lama);
12end
13else
14edit7.Text := '0';
15end;
f. Membuat koding pada tombol prosess button1
procedure TFrmKembali.Button1Click(Sender: TObject);
begin

01adoquery1.Close;
02adoquery1.SQL.clear;
03adoquery1.SQL.add('update pinjam set tgl_kembali = "'+ datetostr(datetimepicker2.date)+'", tgl_tempo = "'+ edit2.text +'" where id_pinjam ="'+ edit1.text +'"');
04adoquery1.ExecSQL;
05showmessage('Data Sudah terupdate');
06edit1.Text := '';
07edit2.text := '';
08edit3.text := '';
09edit4.text := '';
10edit5.text := '';
11edit6.text := '';
12edit7.text := '';
13edit8.text := '';
14end;



SUMBER : http://12094406.blogspot.com/2011_03_01_archive.html


























SUMBER

No comments:

Post a Comment