490 likes | 692 Views
Pertemuan 6. Oracle : Form/Report Developer. 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.
E N D
Pertemuan 6 Oracle : Form/Report Developer Dibuatoleh : LisSuryadi, M.Kom
Sasaran Belajar Agar mahasiswa : • Dapatmengertidanmembuat form untukmembangunsebuahaplikasidenganmenggunakanobjek-objek yang adadi Form Builder. • Dapatmengertidanmemahamipenggunakanperintah-perintah PL/SQL danperintah-perintah Data Manipulation Language(DML) didalam Form.
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 :
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.
Desain Form Entry Barang
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() PROCEDURE COUNTER_KDBRG IS x NUMBER:=0; vnomor CHAR(5); BEGIN 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 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 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_MESSAGE; 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