PERTEMUA 3-Revisi
PERTEMUA 3-Revisi
PERTEMUA 3
PEMROGRAMAN DESTOP
Pokok Bahasan
a. Membuat Menu Utama
b. Membuat Login Aplikasi
c. component DateTimePicker,Timer,ProgressBar
d. Memanggil Data Pada table Lain dengan perulangan
e. Penggunaan component AdoTable,membuat Prosedur
f. Pencarian Menggunakan Kata Kunci, fungsi IntToStr dan fungsi Random
Kasus Umum
Buat datamaster yang meliputi
1. Master Data vendor
2. Master Data Item dimana satu item bisa di miliki oleh 2 vendor atau satu item bisa memiliki
2 atau lebih system pembayaran, dam dalam data master item memuat informasi Stok
keseluruhan dan stok by vendor atau stok by status payment
3. Master Group Item
Double Klik Pada Menu Exit ketik Sintak Sebagai Berikut: untuk keluar aplikasi
Application.Terminate;
Design table
begin
pass:=txt_Pass.Text;
pass1:=txt_Pass1.Text;
if key=#13 then
begin
if (pass)=(pass1) then
Lov_Bagian.SetFocus
else
begin
ShowMessage('Pass Tidak Sama Dengan konfirmasi Pass');
txt_Pass.SetFocus;
end;
end;
end;
Tombol Simpan
begin
//'*inisialisai variabel*'/
user:= txt_UID.Text;
nama:=txt_User.Text;
pass1:=txt_Pass.Text;
pass2:=txt_Pass1.Text;
sts:=LeftStr(Lov_Bagian.Text,1);
sts1:='1';
TglCrete:=FormatDateTime('yyyy-mm-dd',date);
if
(txt_UID.Text<>'')and(txt_User.Text<>'')and(txt_Pass.Text<>'')and(txt_Pass1.Text<>'')
then
begin
//'*query data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin where
UID='+QuotedStr(txt_UID.Text);
ADOQuery1.Active:=True;
//'*Cek Data*'/
if ADOQuery1.RecordCount>0 then
begin
MessageDlg('Data Sudah Ada, Apakah Mau Di Update',mtWarning,[mbOK],0);
if Application.MessageBox('Apakah Data Akan DI
Perbaharui','Informasi',MB_YESNO or MB_ICONINFORMATION)=IDYES then
begin
//'*Update Data*'/
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Text:='Update tlogin set
nama="'+txt_User.Text+'",pass="'+txt_Pass1.Text+'",
kode="'+sts+'",keterangan="'+Lov_Bagian.Text+'",date_Modify="'+
FormatDateTime('yyyy-mm-dd',date) +'" where UID='+QuotedStr(txt_UID.Text);
ExecSQL;
end;
//'*Tampilkan Semua Data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin';
ADOQuery1.Active:=True;
end
else
exit;
end
else
//'*Insert Data*'/
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Text:='insert into
Tlogin(UID,nama,pass,status,kode,keterangan,date_create,date_Modify)values('+QuotedS
tr(txt_UID.Text)+
','+QuotedStr(txt_User.Text)+','+QuotedStr(txt_Pass1.Text)+','+QuotedStr(sts1)+','+Quote
dStr(sts)+','+QuotedStr(Lov_Bagian.Text)+
',"'+ formatdatetime('yyyy-mm-dd',Tanggal_Create.Date) +'","'+
formatdatetime('yyyy-mm-dd',Tanggal_Create.Date)+'")';
ExecSQL;
Tombol Hapus
procedure TForm_MaintenenceUser.cmd_hapusClick(Sender: TObject);
begin
if (txt_UID.Text<>'')and(txt_User.Text<>'')and(txt_Pass.Text<>'')and(txt_Pass1.Text<>'') then
begin
if messagedlg('Apakah User Dengan Kode '''+ txt_UID.Text
+'''...?',mtinformation,[mbyes,mbno],0)=mryes then
begin
ADOQuery1.Delete;
//'*Tampilkan Semua Data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin';
ADOQuery1.Active:=True;
Tombol Clear
procedure TForm_MaintenenceUser.Button2Click(Sender: TObject);
begin
txt_UID.Text:='';
txt_User.Text:='';
txt_Pass.Text:='';
txt_Pass1.Text:='';
txt_UID.SetFocus;
end;
Pada Timer1
procedure TForm_Login.Timer1Timer(Sender: TObject);
begin
timer1.Interval := 10;
bar1.Position := bar1.Position +1;
if bar1.Position = 100 then
begin
bar1.Position := 0;
timer1.Enabled := false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from TLOGIN where UID='+
QuotedStr(txt_Login.Text)+' and Pass='+QuotedStr(txt_Pass.Text));
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin
Application.MessageBox('Maap, Username tersebut tidak ada !!!',
'Informasi',MB_OK or MB_ICONINFORMATION);
exit;
end
else
begin
showmessage ('Login Aplikasi Berhasil !');
Form_Utama.Show;
Hide;
exit;
end
end;
end;
4. Pada kololom kode vendor jika data sudah ada lakukan validasi untuk menampilkan data
5. Masukan Adoquery dan Adotable untuk operasi masukan data, ubah data.
6. Pada tombol hapus jika kode vendor masih kosong , validasi akan memberikan informasi
ada parameter yang kurang buat menghapus data
7. Pada tombol Find munculkan Form Baru untuk melakukan pencarian By Kode Vendor
dan By Nama Vendor dengan Kata Kunci
8. Keluarkan Report untuk mencetak Data Vendor
Adotable Merupakan komponen yang dapat digunakan untuk mengakses data pada table
tunggal dari suatu database.
Design Table
if (txt_KodeV.Text='') then
begin
MessageDlg('Ada Paramter Yang Kurang',mtWarning,[mbOK],0);
txt_KodeV.SetFocus;
end
else
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where
SupplierId='+QuotedStr(txt_KodeV.Text) ;
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
begin
MessageDlg('Kode Vendor Tidak Di Temukan',mtWarning,[mbOK],0);
txt_Nama.SetFocus;
end
else
begin
txt_Nama.Text:=ADOQuery1['NamaSupplier'];
txt_Person.Text:=ADOQuery1['KontakPerson'];
txt_Alamat.Text:=ADOQuery1['Alamat'];
txt_Telp.Text:=ADOQuery1['Telepon'];
txt_FAX.Text:=ADOQuery1['Fax'];
TXT_email.Text:=ADOQuery1['Email'];
txt_komisi.Text:=ADOQuery1['Komisi'];
end;
end;
end;
Membuat Prosedur Bersih adalah sebuah fungsi atau prosedur baru untuk memberiskan
area form dari inputan user gunakan CTR+SHIFT+C untuk menggenerit prosedur baru pada
Delphi
procedure TForm_Supplier.Bersih;
begin
txt_KodeV.Text:='';
txt_Nama.Text:='';
txt_Person.Text:='';
txt_Alamat.Text:='';
txt_Telp.Text:='';
txt_FAX.Text:='';
TXT_email.Text:='';
txt_komisi.Text:='';
end;
if Length(txt_KodeV.Text)<>5 then
begin
ShowMessage('Panjang Kode Vendor Harus 5 Digir');
exit;
end;
if
(txt_KodeV.Text<>'')and(txt_Nama.Text<>'')and(txt_Person.Text<>'')and(txt_Alamat.Te
xt<>'')and(txt_Telp.Text<>'')and(txt_FAX.Text<>'')and(TXT_email.Text<>'')and(txt_ko
misi.Text<>'') then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
if ADOQuery1.RecordCount=0 then
begin
ADOTable1.Open;
ADOTable1.Append;
ADOTable1['SupplierID']:=txt_KodeV.Text;
ADOTable1['NamaSupplier']:=txt_Nama.Text;
ADOTable1['KontakPerson']:=txt_Person.Text;
ADOTable1['Alamat']:=txt_Alamat.Text;
ADOTable1['Telepon']:=txt_Telp.Text;
ADOTable1['FAX']:=txt_FAX.Text;
ADOTable1['Email']:=TXT_email.Text;
ADOTable1['Komisi']:=txt_komisi.Text;
ADOTable1['Date_crt']:= Tgl_Opn;
ADOTable1['Date_Modify']:=Tgl_Opn;
ADOTable1.Post;
ShowMessage('Data Sudah Di Simpan');
bersih; //*-- memangil Funsgi*/
end
else
begin
ADOTable1.Edit;
ADOTable1['NamaSupplier']:=txt_Nama.Text;
ADOTable1['KontakPerson']:=txt_Person.Text;
ADOTable1['Alamat']:=txt_Alamat.Text;
ADOTable1['Telepon']:=txt_Telp.Text;
ADOTable1['FAX']:=txt_FAX.Text;
ADOTable1['Email']:=TXT_email.Text;
ADOTable1['Komisi']:=txt_komisi.Text;
ADOTable1['Date_crt']:= Tgl_Opn;
ADOTable1['Date_Modify']:=Tgl_Opn;
ADOTable1.Post;
ShowMessage('Data Sudah Di Ubah');
bersih; /**Memanggil Prosedur */
end;
end
else
begin
ShowMessage('Ada Paramer Yang Kurang Lengkap');
txt_KodeV.SetFocus;
end;
end;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where
SupplierId='+QuotedStr(txt_KodeV.Text) ;
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
begin
ShowMessage('Kode Vendor Tidak Di Temukan');
exit;
end
else
begin
ADOQuery1.Delete;
bersih;
ShowMessage('Kode Vendor Sudah Di Hapus');
end;
end;
Pencarian Data
a. Pencarian untuk semua data
ADOQuery1.SQL.Text:='select *from tSupplier where Alamat like'+
QuotedStr('%'+Txt_Cari.Text+'%');
end;
ADOQuery1.Active:=True;
if ADOQuery1.RecordCount=0 then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='insert into tkatagory
value('+QuotedStr(txt_KodeC.Text)+','+QuotedStr(txt_NameC.Text)+')';
ADOQuery1.ExecSQL;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory';
ADOQuery1.Active:=True;
end
else
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='update tkatagory set
NamaKatagory='+QuotedStr(txt_NameC.Text)+' where KodeKatagory
='+QuotedStr(txt_KodeC.Text);
ADOQuery1.ExecSQL;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory';
ADOQuery1.Active:=True;
end;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang',mtWarning,[mbOK],0);
exit;
end;
end;
if ADOKatagory.RecordCount>0 then
begin
LOv_Katagory.Clear;
ADOKatagory.First;
while not ADOKatagory.Eof do
begin
LOv_Katagory.Items.Add(ADOKatagory.Fields[0].AsString+'-
'+ADOKatagory.Fields[1].AsString);
ADOKatagory.Next;
end;
end;
end;
tampilall;
end;
end;
end;
end;
begin
KodeKatag:=LeftStr(LOv_Katagory.Text,4);
if (txt_KDSUBC.Text<>'')and(txt_Nama.Text<>'') then
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='select *from tsubkatagory where
kodekatagory='+QuotedStr(KodeKatag)+' and
subkatagory='+QuotedStr(txt_KDSUBC.Text);
ADOSubKatagory.Active:=True;
if ADOSubKatagory.RecordCount=0 then
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='insert into tsubkatagory
value('+QuotedStr(KodeKatag)+','+QuotedStr(txt_KDSUBC.Text)+','+QuotedStr(txt_Na
ma.Text)+')';
ADOSubKatagory.ExecSQL;
exit;
end;
end;