Oracle : Form/Report Developer Pertemuan 6 Dibuat oleh : Lis Suryadi, M.Kom
Materi : Membuat Form Entri Barang
Sasaran Belajar Agar mahasiswa : Dapat mengerti dan membuat form untuk membangun sebuah aplikasi dengan menggunakan objek-objek yang ada di Form Builder. Dapat mengerti dan memahami penggunakan perintah-perintah PL/SQL dan perintah-perintah Data Manipulation Language(DML) di dalam Form.
Langkah-1: Me-running OC4J Instance
Sebelum Membuka Form Builder Running terlebih dulu OC4J Instance Caranya: Dari Oracle Developer Suite --> Forms Developer --> Start OC4J Instance, sehingga akan tampil kotak dialog seperti berikut :
Langkah ke-2: Memanggil Forms Builder Dari : Start -> Program -> Oracle Developer Suite -> Forms Developer -> Forms Builder. Sehingga akan tampil kotak dialog sebagai berikut :
Memanggil Form Builder
Langkah ke-3: Membuat Data Block Data Block Wizard Membuat data block yang mengambil tabel dan kolom dari database dengan menggunakan wizard. Manual Membuat data block yang dilakukan dengan cara manual.
Langkah ke-3: Login Koneksi
Membuat Form Baru
Memberi Nama Module 2 1
Membuat Object Alert untuk pesan 2 1
Membuat Data Block secara Manual
Membuat Data Block secara Manual 1 2
Memberi Nama Data Block 1 2
Desain Form Entry Barang
Setting Property Palette pada object Text_Item1
Setting Property Palette pada object Text_Item1 2
Setting Property Palette pada object Push_Button1 2 1
Setting Property Palette pada object Text_Item2 1 2
Setting Property Palette pada object Text_Item3 1 2
Setting Property Palette pada object Text_Item4 1 2
Setting Property Palette pada object Push_Button2
Setting Property Palette pada object Push_Button2
Setting Property Palette pada object Push_Button3
Setting Property Palette pada object Push_Button4
Desain Form Entry Barang
ketika Trigger When-New-Form-Instance Block PL/SQL ketika Trigger When-New-Form-Instance DECLARE judul VARCHAR2(100); BEGIN :global.ubah:='T‘; judul :=‘Form Entri Barang‘; SET_WINDOW_PROPERTY(WINDOW1, WINDOW_STATE, MAXIMIZE); SET_WINDOW_PROPERTY(‘WINDOW1’, TITLE, judul); COUNTER_KDBRG(); GO_ITEM('blokbrg.txtkdbrg'); SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Membuat Prosedur Counter_KdBrg() 2 1
Membuat Prosedur Counter_KdBrg() PROCEDURE COUNTER_KDBRG IS x NUMBER:=0; vnomor CHAR(5); BEGIN SELECT MAX(TO_NUMBER(SUBSTR(kdbrg,2,5))) INTO x FROM barang ORDER BY kdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN x:=0; END; x:=NVL(x,0)+1; ---(***)
Membuat Prosedur Counter_KdBrg() ---(***) Koding program lanjutan … IF LENGTH(x )= 1 THEN vnomor :='B'||'000'||TO_CHAR(x); ELSIF LENGTH(x) = 2 THEN vnomor :='B'||'00'||TO_CHAR(x); ELSIF LENGTH(x) = 3 THEN vnomor :='B'||'0'||TO_CHAR(x); ELSE vnomor :=TO_CHAR(x); END IF; :blokbrg.txtkdbrg:= vnomor; END;
Block PL/SQL pada object TxtKdBrg ketika Trigger Key-Next-Item DECLARE ada NUMBER:=0; BEGIN SELECT COUNT(*) INTO ada FROM barang WHERE kdbrg=:blokbrg.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN
Block PL/SQL pada object TxtKdBrg ketika Trigger Key-Next-Item ---(***) Koding program lanjutan …. BEGIN SELECT nmbrg, satuan, hrgsat INTO :blokbrg.txtnmbrg, :blokbrg.txtsatuan, :blokbrg.txthrgsat FROM barang WHERE kdbrg=:blokbrg.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN :blokbrg.txtnmbrg :=‘ '; :blokbrg.txtsatuan :=‘ '; :blokbrg.txthrgsat :=‘ '; END; GO_ITEM('blokbrg.txtnmbrg'); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_TRUE);
Block PL/SQL pada object TxtKdBrg ketika Trigger Key-Next-Item ---(***) Koding program lanjutan ELSE GO_ITEM('blokbrg.txtnmbrg'); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_FALSE); END IF; END;
Block PL/SQL pada object BSimpan ketika Trigger When-Button-Pressed DECLARE ada NUMBER:=0; psn NUMBER:=0; BEGIN SELECT COUNT(*) INTO ada FROM barang WHERE kdbrg=:blokbrg.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN UPDATE barang SET nmbrg=:blokbrg.txtnmbrg, satuan=:blokbrg.txtsatuan, hrgsat=:blokbrg.txthrgsat WHERE kdbrg=:blokbrg.txtkdbrg; COMMIT; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Data berhasil diubah....'); psn:=SHOW_ALERT('PESAN');
Block PL/SQL pada object BSimpan ketika Trigger When-Button-Pressed ELSE INSERT INTO barang(kdbrg, nmbrg, satuan, hrgsat) VALUES (:blokbrg.txtkdbrg, :blokbrg.txtnmbrg, :blokbrg.txtsatuan, :blokbrg.txthrgsat); COMMIT; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Data berhasil disimpan....'); psn:=SHOW_ALERT('PESAN'); END IF; CLEAR_MESSAGE; CLEAR_FORM; COUNTER_KDBRG(); GO_ITEM('blokbrg.txtkdbrg'); SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Membuat Object Alert 2 1 3
Block PL/SQL pada object BHapus ketika Trigger When-Button-Pressed DECLARE ada NUMBER:=0; psn NUMBER:=0; BEGIN psn:=SHOW_ALERT('pesan_hapus'); IF psn=Alert_Button1 THEN DELETE barang WHERE kdbrg=:blokbrg.txtkdbrg; COMMIT; CLEAR_MESSAGE; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Berhasil dihapus....'); psn:=SHOW_ALERT('PESAN'); END IF; CLEAR_FORM; COUNTER_KDBRG(); GO_ITEM('blokbrg.txtkdbrg');
Block PL/SQL pada object BHapus ketika Trigger When-Button-Pressed SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Block PL/SQL pada object BBatal ketika Trigger When-Button-Pressed BEGIN CLEAR_MESSAGE; CLEAR_FORM; COUNTER_KDBRG(); GO_ITEM('blokbrg.txtkdbrg'); SET_ITEM_PROPERTY('blokbrg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokbrg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokbrg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Block PL/SQL pada object BKeluar ketika Trigger When-Button-Pressed BEGIN EXIT_FORM; END;
Menyimpan Modul Form Entry Barang Dari menu File Save As Pilih Direktori Penyimpanan (misalkan di E:\Oracle ), Beri nama FrmEntryBrg, dan Disimpan dengan tipe .FMB. Seperti kotak dialog berikut :
1 2
Hasil Setelah Disimpan
Mengkompile PL/SQL 1 2
Hasil Setelah Dikompile
Program Setelah Dirunning
Selamat Mencoba