Pembuatan Form Untuk Aplikasi
Pembuatan Form Untuk Aplikasi
menambah data, mengedit data, menghapus data, menampilkan data atau mencari data dapat dilakukan melalui form dengan tampilan grafhics yang bagus. Sebuah form disimpan dengan ekstensi.SCX Contoh pembuatan program aplikasi pengolahan Data Stok Barang membutuhkan banyak sekali form yang digunakan untuk mengolah data. 1. FORM ENTRY PETUGAS Langkah membuat form entry data petugas adalah 1) Dari Project Manager klik tab Docs, sehingga menampilkan sub bagian Form, Report dan Labels seperti gambar 4.1 dibawah ini
gambar 4.1 Kotak dialog Project Manager Pada Tab Document 2) Klik tombol command New, ketika New Form tampil klik New Form, setelah itu akan tampil jendela Form Designer yang biasanya diikuti oleh tampilnya Propertis dan Form Control. Jika jendela Propertis dan form Control tidak tampil anda dapat menampilkannya melalui menu View dengan menandai Submenu Form Control Toolbar dan Propertis
3)
pada judul atas jendela tersebut, selanjutnya simpan form dengan memilih menu File, Save dan ketikan nama form pada save form as dengan nama petugas 4) Setelah menyimpan form, tinggal menambah object-object yang diperlukan dalam pembuatan form pengolahan data perugas. Object yang diperlukan adalah object Label, Text Box, Command Button dan Control Grid. Label Text Box Command Botton
Grid Gambar 4.2 Tampilan designer Form A. Nama Object Form PROPERTIS OBJECT Propertis Caption Name Auto Center MDIForm ShowWindows Windowstate Caption Caption Caption Caption Name Maxlength Name Maxlength Name Maxlength Name PassworChar Maxlength Name Nilai Pengolahan Data Petugas Petugas .T. .T. 1-In Top-Level 0-Normal Kode Petugas Nama Jabatan Sandi Txtkode 5 Txtnama 20 Txtjabatan 20 txtSandi * 25 Txtcari
Maxlength 20 Command1 Name Baru Caption \<Baru Command2 Name Simpan Caption \<Simpan Command3 Name Batal Caption \<Batal Command4 Name Rubah Caption \<Rubah Command5 Name Hapus Caption \<Hapus Command6 Name Atas Caption |< Cammand7 Name Mundur Caption < Command8 Name Maju Caption > Command9 Name Bawah Caption >| Command10 Name Cari Caption \<Cari Grid1 Name Grid1 ReadOnly .T. RecordSource Petugas Setelah Design Form selesai kemudian kita tinggal menuliskan code program sebagai berikut : B. 1) PENULISAN CODE PROGRAM Aktifkan Form dengan mengklik judul form, kemudian pilih Activate Event pada properties form Klik Dua kali maka akan tampil jendela tempat penulisan Code program seperti gambar dibawah ini.
2)
propertiesnya pilih Click Event kemudian klik dua kali sehingga tampil jendela penulisan code program kemudin tuliskan Code Program Tombol baru Clik di bawah ini:
posisi=recno() thisform.txtnmptgs.enabled=.t. thisform.txtjabatan.enabled=.t. thisform.txtsandi.enabled=.t. thisform.txtkdptgs.value=" " thisform. txtnmptgs.value=" " thisform.txtjabatan.value=" " thisform. txtsandi.value=" " thisform.baru.enabled=.f. thisform.rubah.enabled=.f. thisform.hapus.enabled=.f. thisform.cari.enabled=.f.
3)
set delete off if empty(thisform. txtkdptgs.value) messagebox("Kode Petugas Harus DiIsi !",0+64,"Informasi") else vkdptgs=thisform. txtkdptgs.value select petugas set order to kdptgs set filter to seek vkdptgs if found() p=messagebox("Data Sudah Ada,Apakah Mau DiPerbaharui ?",4+64,"Info") if p=6 recall replace Kdptgs with thisform.txtkdptgs.value replace nmptgs with thisform.txtnmptgs.value replace jabatan with thisform.txtjabatan.value replace sandi with thisform.txtsandi.value endif else append blank replace Kdptgs with thisform.txtkdptgs.value replace nmptgs with thisform.txtnmptgs.value replace jabatan with thisform.txtjabatan.value replace sandi with thisform.txtsandi.value endif thisform.baru.enabled=.t. thisform.rubah.enabled=.t. thisform.hapus.enabled=.t. thisform.cari.enabled=.t. thisform.keluar.enabled=.t. thisform.maju.enabled=.t. thisform.mundur.enabled=.t. set delete on thisform.matiisian() thisform. grid1.refresh() thisform.txtkdptgs.enabled=.f. thisform.txtnmptgs.enabled=.f. thisform.txtjabatan.enabled=.f. thisform.txtsandi.enabled=.f.
endif 4) ini :
thisform.txtjabatan.value=" " thisform. txtsandi.value=" " thisform.baru.enabled=.f. thisform.rubah.enabled=.f. thisform.hapus.enabled=.f. thisform.cari.enabled=.f. thisform.keluar.enabled=.f. thisform.maju.enabled=.f. thisform.mundur.enabled=.f. thisform. txtnmptgs.setfocus()
5) ini :
posisi=recno() thisform.txtnmptgs.enabled=.t. thisform.txtjabatan.enabled=.t. thisform.txtsandi.enabled=.t. thisform.baru.enabled=.f. thisform.rubah.enabled=.f. thisform.hapus.enabled=.f. thisform.cari.enabled=.f. thisform.keluar.enabled=.f. thisform.maju.enabled=.f. thisform.mundur.enabled=.f. thisform. txtkdptgs.enabled=.f. thisform. txtnmptgs.setfocus() 6) Untuk Tombol hapus Clik Tuliskan Code program Dibawah ini :
p=messagebox("Benar Mau DI Hapus?",4+32,"Info") if p=6 delete if eof() goto bottom else skip endif thisform.ambildata() thisform.grid1.refresh() thisform.grid1.setfocus() thisform.txtkdptgs.value=kdptgs thisform.txtnmptgs.value=nmptgs thisform.txtjabatan.value=jabatan thisform.txtsandi.value=sandi endif 7) Untuk Tombol Atas Clik Tuliskan Code program Dibawah ini :
thisform.txtjabatan.value=jabatan thisform.txtsandi.value=sandi
8) ini :
select petugas if bof() messagebox("Posisi sudah di awal file...!",0+64,"Informasi") goto top else skip -1 endif thisform.txtkdptgs.value=kdptgs thisform.txtnmptgs.value=nmptgs thisform.txtjabatan.value=jabatan thisform.txtsandi.value=sandi
9) ini :
select petugas if .not. eof() skip else messagebox("Posisi sudah di akhir file...!",0+64,"Informasi") goto bottom endif thisform.txtkdptgs.value=kdptgs thisform.txtnmptgs.value=nmptgs thisform.txtjabatan.value=jabatan thisform.txtsandi.value=sandi
10) ini :
11) ini select petugas set filter to if delete() pack endif thisform.release() 2.
Untuk memulai membuat Form Supplaer langkah yang dilakukan sama seperti membuat Form petugas. Desainglah form hingga seperti gambar dibawah ini :
Gambar 4.4 Tampilan Form Petugas A. Nama Object Form PROPERTI OBJECT Propertis Caption Name Auto Center MDIForm ShowWindows Windowstate Caption Caption Caption Caption Name Maxlength Name Maxlength Name Maxlength Name PassworChar Maxlength Name Maxlength Name Caption Name Caption Name Caption Name Nilai Pengolahan Data Supplier Supplier .T. .T. 1-In Top-Level 0-Normal Kode Supplier Nama Alamat Telp Txtkode 9 Txtnama 20 TxtAlamat 40 txtTelp * 12 Txtcari 20 Baru \<Baru Simpan \<Simpan Batal \<Batal Rubah
Label1 Label2 Label3 Label4 Text1 Text2 Text3 Text4 Text5 Command1 Command2 Command3 Command4
Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name ReadOnly RecordSource METHODE (PROSEDURE)
\<Rubah Hapus \<Hapus Atas |< Mundur < Maju > Bawah >| Cari \<Cari Grid1 .T. Supplier
B.
Methode (procedure) digunakan untuk mempermudah dalam penulisan code program, agar tidak terjadi penulisan code secara berulang ulang Langkah-langkah dalam membuat procedure yaitu 1) Pilih Menu Form kemudian plih Submenu Methode kemudian akan tampil windows New Methode seperti gambar dibawah ini
Gambar 4.5 Tampilan Form Petugas 2) 3) C. Ketikan nama procedure pada Name kemudian klik Add Untuk mengakhiri klik tombol Close PENULISAN CODE PROGRAM
Untuk penulisan Code program sama seperti code program form petugas, namun pada form ini kita menggunakan metode procedure 1) Prosedure Matiisian
2)
Prosedure Hidupisian
3)
Prosedure Matitombol
4)
Prosedure Hidupl
5)
Prosedure Bersihisian
thisform.txtkdsup.value=" " thisform. txtnmsup.value=" " thisform.txtalamat.value=" " thisform. txttlp.value=" "
6)
Prosedure ambildata
7)
Prosedure No
mkdptgs="SPL-00001" else mno=val(right(kdsup,5))+1 do case case mno<10 mkdptgs="SPL-0000"+ltrim(str(mno)) case mno<100 mkdptgs="SPL-000"+ltrim(str(mno)) case mno<1000 mkdptgs="SPL-00"+ltrim(str(mno)) case mno<10000 mkdptgs="SPL-0"+ltrim(str(mno)) case mno<100000 mkdptgs="SPL-"+ltrim(str(mno)) endcase endif thisform.tXTKDsup.value=mkdptgs
8)
Prosedure Simpandata
replace Kdsup with thisform.txtkdsup.value replace nmsup with thisform.txtnmsup.value replace alamat with thisform.txtalamat.value replace telp with thisform.txttlp.value
9)
set delete on select petugas set order to kdptgs count to ada if ada >0 goto top thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matitombol() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.txtcari.visible=.f.
10)
11)
set delete off if empty(thisform. txtkdsup.value) messagebox("Kode Petugas Harus DiIsi !",0+64,"Informasi") else vkdptgs=thisform. txtkdsup.value select suplier set order to kdsup set filter to seek vkdptgs if found() p=messagebox("Data Sudah Ada,Apakah Mau DiPerbaharui ?",4+64,"Info") if p=6 recall thisform.simpandata() endif else append blank thisform.simpandata() endif thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. set delete on thisform.matiisian() thisform. grid1.refresh() endif
12)
thisform.bersihlayar() select suplier set order to kdsup count to ada if ada > 0 goto posisi thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matiisian() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. thisform.txtcari.visible=.f.
13)
14)
p=messagebox("Benar Mau DI Hapus?",4+32,"Info") if p=6 delete if eof() goto bottom else skip endif thisform.ambildata() thisform.grid1.refresh() thisform.grid1.setfocus() endif
15)
16)
select suplier if bof() messagebox("Posisi sudah di awal file...!",0+64,"Informasi") goto top else skip -1 endif thisform.ambildata()
17)
select suplier if .not. eof() skip else messagebox("Posisi sudah di akhir file...!",0+64,"Informasi") goto bottom endif thisform.ambildata()
18)
19)
thisform.txtcari.visible=.t. thisform.txtcari.setfocus()
20)
if .not. empty(thisform.txtcari.value) lacak=thisform.txtcari.value select suplier locate for upper(alltrim(substr(nmsup,1,len(nmsup))))=upper(alltrim(lacak)) if found() thisform.ambildata() set filter to upper(alltrim(substr(nmsup,1,len(lacak))))=upper(alltrim(lacak)) thisform.grid1.refresh() else messagebox("Data tidak ada/tidak ditemukan..!",0+64,"Informasi") endif thisform.txtcari.visible=.f. endif thisform.txtcari.value=""
21)
3.
Prosedure/code form jenis barang pada dasarnya sama dengan pembuanatan form data Petugas , hanya objek yang digunakan lebih sedikit. Designlah form data jenis barang seperti gambar dibawah ini atau menurut kreativitas anda masing masing.
Propertis Caption Name Auto Center MDIForm ShowWindows Windowstate Caption Caption Name Maxlength Name Maxlength Name Maxlength Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name ReadOnly RecordSource
Nilai Pengolahan Data Jenis Barang Jenis .T. .T. 1-In Top-Level 0-Normal Kode Jenis Jenis Txtkode 9 TxtJenis 30 Txtcari 30 Baru \<Baru Simpan \<Simpan Batal \<Batal Rubah \<Rubah Hapus \<Hapus Atas |< Mundur < Maju > Bawah >| Cari \<Cari Grid1 .T. jenis
Label1 Label2 Text1 Text2 Text5 Command1 Command2 Command3 Command4 Command5 Command6 Cammand7 Command8 Command9 Command10 Grid1
B.
Untuk penulisan Code program data jenis barang sama seperti code program form petugas yaitu kita menggunakan methode prosedure
1)
Prosedure Matiisian
thisform.txtkodejns.enabled=.f. thisform.txtjenis.enabled=.f.
2)
Prosedure Hidupisian
thisform.txtkodejns.enabled=.t. thisform.txtjenis.enabled=.t.
3)
Prosedure Matitombol
4)
Prosedure Hiduptombol
5)
Prosedure Bersihlayar
6)
Prosedure ambildata
thisform.txtkodejns.value=kdjns
thisform.txtjenis.value=jenis 7) Prosedure No
select jenis set order to kdjns goto bottom if kdJNs=space(9) mkdjns="KYP-00001" else mno=val(right(kdjns,5))+1 do case case mno<10 mkdjns="KYP-0000"+ltrim(str(mno)) case mno<100 mkdjns="KYP-000"+ltrim(str(mno)) case mno<1000 mkdjns="KYP-00"+ltrim(str(mno)) case mno<10000 mkdjns="KYP-0"+ltrim(str(mno))
8)
Prosedure Simpandata
9)
set delete on select jenis set order to kdjns count to ada if ada >0 goto top thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matitombol() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.txtcari.visible=.f.
10)
11)
set delete off if empty(thisform. txtkodejns.value) messagebox("Kode Jenis Barang Harus DiIsi !",0+64,"Informasi") else vkdjns=thisform. txtkodejns.value select jenis set order to kdjns set filter to seek vkdjns if found() p=messagebox("Data Sudah Ada,Apakah Mau DiPerbaharui ?",4+64,"Info") if p=6 recall thisform.simpandata() endif
else append blank thisform.simpandata() endif thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. set delete on thisform.matiisian() thisform. grid1.refresh() endif
12)
thisform.bersihlayar() select jenis set order to kodejns count to ada if ada > 0 goto posisi thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matiisian() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. thisform.txtcari.visible=.f.
13)
14)
p=messagebox("Benar Mau DI Hapus?",4+32,"Info") if p=6 delete if eof() goto bottom else skip endif thisform.ambildata() thisform.grid1.refresh() thisform.grid1.setfocus() endif
15)
16)
select jenis if bof() messagebox("Posisi sudah di awal file...!",0+64,"Informasi") goto top else skip -1 endif thisform.ambildata()
17)
select jenis if .not. eof() skip else messagebox("Posisi sudah di akhir file...!",0+64,"Informasi") goto bottom endif thisform.ambildata()
18)
19)
thisform.txtcari.visible=.t. thisform.txtcari.setfocus()
20)
if .not. empty(thisform.txtcari.value) lacak=thisform.txtcari.value select jns locate for upper(alltrim(substr(jenis,1,len(jenis))))=upper(alltrim(lacak)) if found() thisform.ambildata() set filter to upper(alltrim(substr(jenis,1,len(lacak))))=upper(alltrim(lacak)) thisform.grid1.refresh() else messagebox("Data tidak ada/tidak ditemukan..!",0+64,"Informasi") endif thisform.txtcari.visible=.f. endif thisform.txtcari.value=""
21)
4.
Prosedure/code form barang pada dasarnya sama dengan pembuanatan form yang lainnya , hanya objek yang digunakan lebih banyak. Desaignlah formdata jenis barang seperti gambar dibawah ini atau menurut kreativitas anda masing masing.
Gambar 4.7 Tampilan Form Barang A. Nama Object Form PROPERTI OBJECT Propertis Caption Name Auto Center MDIForm ShowWindows Windowstate Caption Caption Caption Caption Caption Caption Caption Name Maxlength Name Maxlength Name RowSource Name Nilai Pengolahan Data Barang Barang .T. .T. 1-In Top-Level 0-Normal Kode Barang Barang Kode Jenis Harga Beli Harga Jual Jumlah Stok Min txtKodebrg 9 Txtnama 30 Txtkodejns Jenis.kdjns txthrgjual
Label1 Label2 Label3 Label4 Label5 Label6 Label7 Text1 Text2 Combo1 Text3
Text4 Text5 Text6 Command1 Cammand2 Command3 Command4 Command5 Command6 Command7 Command7 Command8 Command9 Command10 Grid1
Name Name Name Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name ReadOnly RecordSource
txthrgbeli Txtjumlah txtstokmin Baru \<Baru Simpan \<Simpan Batal \<Batal Hapus \<Hapus Rubah \<Rubah Atas |< Mundur < Maju > Bawah >| Cari \<Cari Keluar \<keluar Grid1 .T. barang
B.
Untuk penulisan Code program data barang sama seperti code program form lainnya yaitu kita menggunakan methode procedure 1) Prosedure Matiisian
thisform.txtkodebrg.enabled=.f. thisform.txtnama.enabled=.f. thisform.txtkdjns.enabled=.f. thisform.txtjumlah.enabled=.f. thisform.txthrgjual.enabled=.f. thisform.txthrgbeli.enabled=.f. thisform.txtstokmin.enabled=.f.
2) Prosedure Hidupisian
thisform.txtkodebrg.enabled=.t. thisform.txtnama.enabled=.t. thisform.txtkdjns.enabled=.t. thisform.txtjumlah.enabled=.t. thisform.txthrgjual.enabled=.t. thisform.txthrgbeli.enabled=.t. thisform.txtstokmin.enabled=.t.
3) Prosedure Matitombol
thisform.baru.enabled=.f. thisform.simpan.enabled=.f. thisform.batal.enabled=.f. thisform.rubah.enabled=.f. thisform.hapus.enabled=.f. thisform.cari.enabled=.f. thisform.keluar.enabled=.f. thisform.maju.enabled=.f. thisform.mundur.enabled=.f.
4) Prosedure Hiduptombol
thisform.baru.enabled=.t. thisform.simpan.enabled=.t. thisform.batal.enabled=.t. thisform.rubah.enabled=.t. thisform.hapus.enabled=.t. thisform.cari.enabled=.t. thisform.keluar.enabled=.t. thisform.maju.enabled=.t. thisform.mundur.enabled=.t.
5) Prosedure Bersihlayar
thisform.txtkodebrg.value=" " thisform.txtkdjns.value=" " thisform.txtnama.value=" " thisform.txtkdjns.value=" " thisform.txtjumlah.value=0 thisform.txthrgjual.value=0 thisform.txthrgbeli.value=0 thisform.txtstokmin.value=0
6) Prosedure ambildata
select barang thisform.txtkdkodebrg.value=kodebrg thisform.txtnama.value=barang thisform.txtkdjns.value=kdjns thisform.txtjumlah.value=jmlstok thisform.txthrgjual.value=hrgjual thisform.txthrgbeli.value=hrgbeli thisform.txtstokmin.value=stokmin
7) Prosedure No
select barang set order to kodebrg goto bottom if kodebrg=space(9)
mkodebrg="KY-000001" else mno=val(right(kodebrg,6))+1 do case case mno<10 mkodebrg="KY-00000"+ltrim(str(mno)) case mno<100 mkodebrg="KY-0000"+ltrim(str(mno)) case mno<1000 mkodebrg="KY-000"+ltrim(str(mno)) case mno<10000 mkodebrg="KY-00"+ltrim(str(mno)) case mno<100000 mkodebrg="KY-0"+ltrim(str(mno)) case mno<1000000 mkodebrg="KY-"+ltrim(str(mno)) endcase endif thisform.tXTKodebrg.value=mkodebrg
8) Prosedure Simpandata
replace Kodebrg with thisform.txtkodebrg.value replace barang with thisform.txtnama.value replace Kdjns with thisform.txtkdjns.value replace hrgjual with thisform.txthrgjual.value replace hrgbeli with thisform.txthrgbeli.value replace jmlstok with thisform.txtstokmin.value replace stokmin with thisform.txtstokmin.value
thisform.txtcari.visible=.t. thisform.txtcari.setfocus()
5.
Untuk memulai membuat Form Barang Masuk langkah yang dilakukan sama seperti membuat Form lainnya. Desainglah form hingga seperti gambar dibawah ini :
PROPERTI OBJECT Propertis Caption Name Auto Center MDIForm ShowWindows Windowstate Caption Caption Caption Caption Name Maxlength Name Maxlength Name Name Name Name Name Maxlength Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Nilai Transaksi Barang Masuk Masuk .T. .T. 1-In Top-Level 0-Normal No Nota Masuk Tanggal Kode Petugas Kode Supplier txtnonmsk 10 Txttglmsk 8 Txtkdptgs txtkdsup txtnmsup Txtnmptgs Txtcari 20 Baru \<Baru Simpan \<Simpan Batal \<Batal Rubah \<Rubah Hapus \<Hapus Atas |< Mundur < Maju > Bawah >|
Label1 Label2 Label3 Label4 Text1 Text2 Combo1 Combo2 Text4 Text3 Text5 Command1 Command2 Command3 Command4 Command5 Command6 Cammand7 Command8 Command9
Command10 Grid1
B.
Untuk penulisan Code program sama seperti code program form yang lainnya, namun pada form ini kita menggunakan metode procedure 1) Prosedure Matiisian
thisform.txttglmsk.enabled=.f. thisform.txtkdptgs.enabled=.f. thisform.txtnmptgs.enabled=.f. thisform.txtkdsup.enabled=.f. thisform.txtnmsup.enabled=.f.
2)
Prosedure Hidupisian
3)
Prosedure Matitombol
4)
Prosedure Hiduptombol
5)
Prosedure Bersihlayar
thisform.txtnonmsk.value=" " thisform. txttglmsk.value=ctod("../../..") thisform.txtkdptgs.value=" " thisform. txtnmptgs.value=" " thisform.txtkdsup.value=" "
thisform.txtnmsup.value=" "
6)
Prosedure ambildata
select petugas set filter to set order to kdptgs mkdptgs=thisform.txtkdptgs.value seek mkdptgs if found() thisform.txtnmptgs.value=nmptgs else thisform.txtnmptgs.value="" endif select suplier set filter to set order to kdsup mkdsup=thisform.txtkdsup.value seek mkdsup if found() thisform.txtnmsup.value=nmsup else thisform.txtnmsup.value="" endif select masuk thisform.txtnonmsk.value=nonmsk thisform.txttglmsk.value=tglmsk thisform.txtkdptgs.value=kdPTGS thisform.txtkdsup.value=kdsup
7)
Prosedure No
select masuk set order to nonmsk goto bottom if nonmsk=space(10) mnonmsk="MSK-000001" else mno=val(right(nonmsk,6))+1 do case case mno<10 mnonmsk="MSK-00000"+ltrim(str(mno)) case mno<100 mnonmsk="MSK-0000"+ltrim(str(mno)) case mno<1000 mnonmsk="msk-000"+ltrim(str(mno)) case mno<10000 mnonmsk="MSK-00"+ltrim(str(mno)) case mno<100000 mnonmsk="MSK-0"+ltrim(str(mno)) case mno<1000000 mnonmsk="MSK-"+ltrim(str(mno)) endcase endif thisform.tXTnonmsk.value=mnonmsk
8)
Prosedure Simpandata
replace kdptgs with thisform.txtkdptgs.value replace tglmsk with thisform.txttglmsk.value replace kdsup with thisform.txtkdsup.value
9)
set delete on select masuk set order to nonmsk count to ada if ada >0 goto top thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matitombol() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.txtcari.visible=.f.
10)
posisi=recno() thisform.hidupisian() thisform.bersihlayar() thisform.matitombol() thisform.batal.enabled=.t. thisform.simpan.enabled=.t. thisform.no() thisform.txttglmsk.value=date() thisform. txtkdptgs.setfocus()
11)
set delete off if empty(thisform. txtnonmsk.value) messagebox("no nota masuk harus diisi !",0+64,"informasi") else vnonmsk=thisform. txtnonmsk.value select masuk set order to nonmsk set filter to seek vnonmsk if found() p=messagebox("data sudah ada,apakah mau diperbaharui ?",4+64,"info") if p=6 recall thisform.simpandata() endif else append blank thisform.simpandata() endif thisform.hiduptombol()
thisform.simpan.enabled=.f. thisform.batal.enabled=.f. set delete on thisform.matiisian() thisform. grid1.refresh() endif qbersih=2 mnonmsk=thisform.txtnonmsk.value mtglmsk=thisform.txttglmsk.value mkdptgs=thisform.txtkdptgs.value mkdsup=thisform.txtkdsup.value if empty(mnonmsk).or. empty(mtglmsk) messagebox("data harus diisi !",0+64,"info") else do form rincimasuk endif thisform.ambildata()
12)
thisform.bersihlayar() select masuk set order to nonmsk count to ada if ada > 0 goto TOP thisform.ambildata() thisform.hiduptombol() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. else thisform.bersihlayar() thisform.matiisian() thisform.baru.enabled=.t. thisform.keluar.enabled=.t. endif thisform.matiisian() thisform.simpan.enabled=.f. thisform.batal.enabled=.f. thisform.txtcari.visible=.f.
13)
14)
cek=thisform.txtnonmsk.value select masuk delete all for nonmsk=cek select rincimsk endif thisform.bersihlayar() if .not. eof skip if eof() goto bottom endif else goto bottom endif thisform.grid1.refresh() thisform.grid1.setfocus() thisform.grid2.refresh() thisform.ambildata()
15)
16)
select masuk if bof() messagebox("Posisi sudah di awal file...!",0+64,"Informasi") goto top else skip -1 endif thisform.ambildata()
17)
select masuk if .not. eof() skip else messagebox("Posisi sudah di akhir file...!",0+64,"Informasi") goto bottom endif thisform.ambildata()
18)
19)
thisform.txtcari.visible=.t. thisform.txtcari.setfocus()
20)
select masuk locate for upper(alltrim(substr(nonmsk,1,len(nonmsk))))=upper(alltrim(lacak)) if found() thisform.ambildata() set filter to upper(alltrim(substr(nonmsk,1,len(lacak))))=upper(alltrim(lacak)) thisform.grid1.refresh() else messagebox("Data tidak ada/tidak ditemukan..!",0+64,"Informasi") endif thisform.txtcari.visible=.f. endif thisform.txtcari.value=""
21)
thisform.release()
6.
Untuk memulai membuat Form Rinci Barang Masuk langkah yang dilakukan sama seperti membuat Form lainnya. Desainglah form hingga seperti gambar dibawah ini :
Gambar 4.9 Tampilan Form Rinci Barang Masuk A. Nama Object Form PROPERTI OBJECT Propertis Caption Name Auto Center MDIForm ShowWindows Nilai Transaksi Rinci Barang Masuk Rinci Barang Masuk .T. .T. 1-In Top-Level
Label1 Combo1 Label3 Label4 Text1 Combo1 Text2 Text3 Text4 Text5 Command1 Command2 Command3 Command4 Command5 Command6 Cammand7 Command8 Command9 Command10 Grid1
Windowstate Caption Caption Caption Caption Name Maxlength Name Name Maxlength Name Maxlength Name Name Maxlength Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name ReadOnly RecordSource
0-Normal No Nota Masuk Kode Barang Harga Jumlah txtnonmsk 10 TxtKdbrg Txthrgmsk 10 Txtjumlah 10 Txtnmbarang Txtcari 10 Baru \<Baru Simpan \<Simpan Batal \<Batal Rubah \<Rubah Hapus \<Hapus Atas |< Mundur < Maju > Bawah >| Cari \<Cari Grid1 .T. rincimsk
B.
Untuk penulisan Code program sama seperti code program form yang lainnya, namun pada form ini kita menggunakan metode procedure 1) Prosedure Active Form
select barang thisform.txtnonmsk.value=mnonmsk thisform.txthrgmsk.value=0 thisform.txtjmlmsk.value=0
2)
3)
Prosedure Ok Clik
balik=1 mkdbrg=thisform.txtkdbrg.value mnonmsk=thisform.txtnonmsk.value mjmlmsk=thisform.txtjmlmsk.value mhrgmsk=thisform.txthrgmsk.value select barang set filter to seek mkodebrg if found() replace jmlstok with jmlstok + mjmlmsk replace hrgjual with mhrgmsk endif select rincimsk set filter to set order to nonmsk locate for nonmsk=mnonmsk .and. kodebrg=mkdbrg if found() replace nonmsk with mnonmsk replace jmlmsk with mjmlmsk replace kodebrg with mkdbrg replace hrgmsk with mhrgmsk else append blank replace nonmsk with mnonmsk replace jmlmsk with mjmlmsk replace kodebrg with mkdbrg replace hrgmsk with mhrgmsk endif thisform.txthrgmsk.value=0 thisform.txtjmlmsk.value=0 thisform.txtkdbrg.value="" thisform.txtkdbrg.setfocus()
4)
5)
mkdbrg=thisform.txtkdbrg.value select barang set filter to set order to kodebrg seek mkdbrg if found() thisform.txtnmbarang.value=nmbarang thisform.txthrgmsk.value=hrgbeli else thisform.txtnmbarang.value="" thisform.txthrgmsk.value=0 endif