530 likes | 934 Views
Pertemuan 9. Oracle : Form/Report Developer. Dibuat oleh : Lis Suryadi , M.Kom. Materi : Membuat Form Entri Pelanggan. 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 9 Oracle : Form/Report Developer Dibuatoleh : LisSuryadi, M.Kom
Materi: Membuat Form EntriPelanggan
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.
Membuat Form Master Pelanggan Dengan Menggunakan Wizard Berikut ini adalah langkah-langkahnya : Dari Form Builder -> File -> New -> Form. Atau melalui Object Navigator.
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 :
Block PL/SQL ketika Trigger When-New-Form-Instance DECLARE judul VARCHAR2(100); BEGIN :global.ubah:='T‘; judul :=‘Form Entri Pelanggan‘; SET_WINDOW_PROPERTY(WINDOW1, WINDOW_STATE, MAXIMIZE); SET_WINDOW_PROPERTY(‘WINDOW1’, TITLE, judul); -- Memanggil prosedur counter kode pelanggan COUNTER_KDPLG(); GO_ITEM('blokplg.kdplg'); SET_ITEM_PROPERTY(‘blokplg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Membuat Prosedur Counter_KdPlg PROCEDURE COUNTER_KDPLG IS x NUMBER:=0; vnomor CHAR(5); BEGIN BEGIN SELECT MAX(TO_NUMBER(SUBSTR(kdplg,2,5))) INTO x FROM pelanggan ORDER BY kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN x:=0; END; ---(***)
Membuat Procedure Counter_KdPlg ---(***) Koding program lanjutan … x:=NVL(x,0)+1; IF LENGTH(x) = 1 THEN vnomor :='P'||'000'||TO_CHAR(x); ELSIF LENGTH(x) = 2 THEN vnomor :='P'||'00'||TO_CHAR(x); ELSIF LENGTH(x) = 3 THEN vnomor :='P'||'0'||TO_CHAR(x); ELSE vnomor :=TO_CHAR(x); END IF; :blokplg.kdplg:= vnomor; END;
Block PL/SQL pada object TxtKdBrgketika Trigger Key-Next-Item DECLARE ada NUMBER:=0; BEGIN BEGIN SELECT COUNT(*) INTO ada FROM pelanggan WHERE kdplg=:blokplg.kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN :global.ubah :='T'; --- (***)
Block PL/SQL pada object KdPlg ketika Trigger Key-Next-Item --- (***) Koding program lanjutan …. BEGIN SELECT nmplg, alamat INTO :blokplg.nmplg, :blokplgn.alamat FROM pelanggan WHERE kdplg=:blokplg.kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN :blokplg.nmplg :=‘ '; :blokplg.alamat :=‘ '; END; GO_ITEM('blokplg.nmplg'); SET_ITEM_PROPERTY('blokplg.bhapus',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY(‘blokplg.bkeluar',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_TRUE);
Block PL/SQL pada object KdPlg ketika Trigger Key-Next-Item ---(***) Koding program lanjutan ELSE :global.ubah:='F'; GO_ITEM('blokplg.nmplg'); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bkeluar',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.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 pelanggan WHERE kdplg=:blokplg.kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN UPDATE pelanggan SET nmplg=:blokplg.nmplg, alamat=:blokplg.alamat WHERE kdplg=:blokplg.kdplg; COMMIT; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Berhasil diubah....'); psn:=SHOW_ALERT('PESAN');
Block PL/SQL pada object BSimpan ketika Trigger When-Button-Pressed ---(***) Lanjutan ELSE INSERT INTO pelanggan(kdplg, nmplg, alamat) VALUES(:blokplg.kdplg, :blokplg.nmplg, :blokplg.alamat); COMMIT; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Berhasil disimpan....'); psn:=SHOW_ALERT('PESAN'); END IF; CLEAR_MESSAGE; CLEAR_FORM; COUNTER_KDPLG(); GO_ITEM(‘blokplg.kdplg'); SET_ITEM_PROPERTY('blokplg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_FALSE); END;
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 pelanggan WHERE kdplg=:blokplg.txtkdplg; COMMIT; CLEAR_MESSAGE; SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Berhasil dihapus....'); psn:=SHOW_ALERT('PESAN'); END IF; CLEAR_MESSAGE; CLEAR_FORM; COUNTER_KDPLG(); GO_ITEM(‘blokplg.kdplg');
Block PL/SQL pada object BHapus ketika Trigger When-Button-Pressed SET_ITEM_PROPERTY('blokplg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Block PL/SQL pada object BBatal ketika Trigger When-Button-Pressed BEGIN CLEAR_MESSAGE; CLEAR_FORM; COUNTER_KDPLG(); GO_ITEM(‘blokplg.kdplg'); SET_ITEM_PROPERTY('blokplg.bkeluar',ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('blokplg.bhapus',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bbatal',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('blokplg.bsimpan',ENABLED,PROPERTY_FALSE); END;
Block PL/SQL pada object BKeluar ketika Trigger When-Button-Pressed BEGIN EXIT_FORM; END;
Langkah ke-4: Menyimpan Modul Form Entry Pelanggan Dari menu File Save As Pilih Direktori Penyimpanan (misalkan di E:\Oracle ), Beri nama FrmEntryPlg, dan Disimpan dengan tipe .FMB. Seperti kotak dialog berikut :
1 2