oracle : form/report developer
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Oracle : Form/Report Developer
Pertemuan 9
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.
• 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.
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: Login Koneksi
Langkah ke-4: Membuat Form Baru
Membuat Form Baru
1
2
Membuat Object Alert untuk pesan
1
2
Membuat Data Block Menggunakan Wizard
Membuat Data Block Menggunakan Wizard
Membuat Data Block Menggunakan Wizard
Memilih Tipe Data Block
Mencari Tabel atau View di Database
Memilih Tabel atau View dari Database
Memilih Kolom yang akan Ditampilkan di Layout Editor
Memilih Kolom yang akan Ditampilkan di Layout Editor
Memberi Nama Data Block
1
2
Memanggil Layout Wizard
Memilih Canvas yang akan digunakan untuk Layout Data Block
Memilih Item-item yang akan tampil di Frame
Memilih Item-item yang akan tampil di Frame
Menyetting Label, Panjang dan Lebar Item
1
2
Memilih Style Layout untuk Frame
1
2
Menyetting Judul Frame
1
2
Tahap Akhir Membuat Data Block Menggunakan Wizard
Hasil Akhir Layout Menggunakan Wizard
Buatlah Disain Form Seperti Berikut :
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;
Block PL/SQLketika Trigger When-New-Form-Instance
Membuat Prosedur Counter_KdPlgPROCEDURE 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;
---(***)
---(***) 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;
Membuat Procedure Counter_KdPlg
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 TxtKdBrg 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 KdPlg ketika Trigger Key-Next-Item
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 BSimpanketika 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 BSimpanketika Trigger When-Button-Pressed
Membuat Alertuntuk Konfirmasi Penghapusan Data
1
2
3
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 BHapusketika 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 BHapusketika 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 BBatalketika Trigger When-Button-Pressed
BEGIN
EXIT_FORM;
END;
Block PL/SQL pada object BKeluarketika Trigger When-Button-Pressed
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
Hasil Setelah Disimpan
Langkah ke-5: Mengkompile PL/SQL
12
Hasil Setelah Dikompile
Program Setelah Dirunning
Lengkapilah Form Entri Pelanggandengan List Of Values (LOV)
Pelanggan.
Selamat Mencoba