Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Oracle : Form/Report Developer
Pertemuan 10 Dibuat oleh: Lis Suryadi, M.Kom
2
Materi: Membuat Form Cetak Nota
3
Sasaran Belajar Agar mahasiswa :
Dapat mengerti dan membuat form master-detail 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. Dapat membuat cetakan formulir nota dengan menggunakan report builder.
4
Membuat Block Data pada Form Cetak Nota
Buatlah 2 buah Block Data dengan menggunakan Wizard, kemudian beri nama sebagai berikut : BlokNota , item-itemnya adalah : TxtNo_Nota, TxtTgl_Nota, TxtKdPlg, TxtNmPlg, TxtAlamat, TxtGrandtot, BSimpan, BCetak, BBatal dan BKeluar. BlokPesan, item-itemnya adalah : TxtKdbrg, TxtNmbrg, TxtSatuan, TxtHrgsat, TxtJml_Pesan dan TxtTotal.
5
Langkah-1: Me-running OC4J Instance
6
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 :
7
Langkah ke-2: Memanggil Forms Builder
Dari : Start -> Program -> Oracle Developer Suite -> Forms Developer -> Forms Builder. Sehingga akan tampil kotak dialog sebagai berikut :
8
Memanggil Form Builder
9
Langkah ke-3: Login Koneksi
10
Langkah ke-4: Membuat Form Baru
11
Memberi Nama Module 2 1
12
Membuat Object Alert 2 1
13
Membuat Data Block “BlokNota”
14
Membuat Data Block Menggunakan Wizard
15
Membuat Data Block Menggunakan Wizard
16
Memilih Tipe Data Block
17
Mencari Tabel atau View
18
Memilih Tabel Nota
19
Memilih Kolom Yang Ada Di Tabel
1 2
20
Memilih Kolom Sebagai Item Di Form
21
Memberi Nama Data Blok 1 2
22
Membuat Layout
23
Memulai Layout Wizard
24
Memilih Canvas Untuk Layout
25
Memilih Item Yang Akan Ditampilkan
1 2
26
Memilih Item Yang Akan Ditampilkan
27
Memberi Judul, Panjang dan Lebar Item
28
Memilih Model Layout
29
Memberi Judul Pada Frame
30
Tahap Akhir Pembuatan Data Block
31
Layout Yang Terbentuk
32
Membuat Data Block “BlokPesan”
33
Membuat Data Block BlokPesan
34
Membuat Data Block Menggunakan Wizard
35
Memilih Tipe Data Block
36
Mencari Tabel atau View
37
Memilih Tabel Pesan
38
Memilih Kolom Yang Ada Di Tabel
1 2
39
Memilih Kolom Yang Akan Ditampilkan
40
Memberi Nama Data Block
41
Membuat Layout Form
42
Memulai Layout Wizard
43
Memilih Canvas Untuk Meletakkan Desain Form
44
Memilih Item Yang Akan Ditampilkan
1 2
45
Memilih Item Yang Akan Ditampilkan
46
Memberi Judul, Panjang dan Lebar Item
47
Memilih Model Layout
48
Memasukkan Jumlah Record Yang Akan Ditampilkan
49
Tahap Akhir Pembuatan Data Block
50
Desain Form Cetak Nota Yang Terbentuk
51
Mendesain Ulang Form Cetak Nota
52
Struktur Data Block
53
Membuat Block PL/SQL dengan Trigger When-New-Form-Instance
54
Dengan Trigger When-New-Form-Instance
Block PL/SQL Dengan Trigger When-New-Form-Instance DECLARE judul VARCHAR2(100); BEGIN :global.koreksi:='F'; judul :=‘Form Cetak Nota‘; SET_WINDOW_PROPERTY('WINDOW1', WINDOW_STATE, MAXIMIZE); SET_WINDOW_PROPERTY('WINDOW1', TITLE, JUDUL); COUNTER_NONOTA(); GO_ITEM('bloknota.txtno_nota'); END;
55
Membuat Prosedur Counter_NoNota()
2 1
56
Membuat Prosedur Counter_NoNota
PROCEDURE COUNTER_NONOTA IS x NUMBER:=0; vnomor CHAR(7); TH CHAR(2); BEGIN SELECT MAX(to_number(SUBSTR(no_nota,5,3))) INTO x FROM nota; EXCEPTION WHEN NO_DATA_FOUND THEN x:=0; END; TH:=SUBSTR(TO_CHAR(SYSDATE,’YYYY’),3,2); x:=NVL(x,0)+1; IF LENGTH(x) = 1 THEN vnomor :=‘NT'||TH||’00’||TO_CHAR(x); ELSIF LENGTH(x) = 2 THEN ELSE vnomor :=TO_CHAR(x); END IF; :bloknota.txtno_nota:= vnomor;
57
Membuat Block PL/SQL Pada Object TxtNo_Nota
1 2
58
Block PL/SQL pada object TxtNo_Nota ketika Trigger Key-Next-Item
DECLARE ada NUMBER:=0; total NUMBER:=0; BEGIN SELECT COUNT(*) INTO ada FROM nota WHERE no_nota=:bloknota.txtno_nota; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN -- Jika data nota ada, tampilkan datanya… SELECT nota.tgl_nota, nota.kdplg, pelanggan.nmplg, pelanggan.alamat INTO :bloknota.txttgl_nota, :bloknota.txtkdplg,:bloknota.txtnmplg, bloknota.txtalamat FROM nota, pelanggan WHERE nota.no_nota=:bloknota.txtno_nota AND nota.kdplg=pelanggan.kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN :bloknota.txttgl_nota :=‘ ‘; :bloknota.txtkdplg :=‘ ‘; :bloknota.txtnmplg : :=‘ ‘; :bloknota.txtalamat :=‘ ‘; END;
59
Block PL/SQL pada object TxtNo_Nota Cont…
GO_BLOCK('blokpesan'); FIRST_RECORD; DECLARE CURSOR cur_pesan IS SELECT pesan.kdbrg, barang.nmbrg, barang.satuan, barang.hrgsat, pesan.jml_pesan, barang.hrgsat*pesan.jml_pesan as totalharga FROM pesan, barang WHERE pesan.kdbrg=barang.kdbrg AND pesan.no_nota=:bloknota.txtno_nota; vtampung cur_pesan%ROWTYPE; BEGIN :GLOBAL.jumrec :=1; OPEN cur_pesan; LOOP FETCH cur_pesan INTO vtampung; EXIT WHEN cur_pesan%NOTFOUND; :blokpesan.txtkdbrg := vtampung.kdbrg; :blokpesan.txtnmbrg := vtampung.nmbrg; :blokpesan.txtsatuan := vtampung.satuan; :blokpesan.txthrgsat := vtampung.hrgsat; :blokpesan.txtjml_pesan := vtampung.jml_pesan; :blokpesan.txttotal := vtampung.totalharga; NEXT_RECORD; total :=total+(vtampung.hrgsat * vtampung.jml_pesan); END LOOP; :bloknota.txtgrandtot :=total; END;
60
Block PL/SQL pada object TxtNo_Nota (Lanjutan)
GO_ITEM('blokpesan.txtkdbrg'); ELSE -- Jika data nota tidak ada, maka entri data baru… GO_ITEM('bloknota.txttgl_nota'); END IF; END;
61
1 Mengatur Properti Object TxtTGL_NOTA 2
62
Membuat Block PL/SQL Pada Object TxtTGL_NOTA
1 2
63
Block PL/SQL pada object TxtTgl_Nota ketika Trigger Key-Next-Item
BEGIN GO_ITEM('bloknota.txtkdplg'); END;
64
Membuat Block PL/SQL Pada Object TXTKDPLG dengan Trigger: Key-Next_Item
1 2
65
Block PL/SQL pada object TxtKdPlg ketika Trigger: Key-Next-Item
DECLARE ada NUMBER :=0; psn NUMBER :=0; BEGIN SELECT COUNT(*) INTO ada FROM pelanggan WHERE kdplg=:bloknota.txtkdplg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0 THEN SELECT nmplg, alamat INTO :bloknota.nmplg, :bloknota.alamat FROM pelanggan WHERE kdplg=:bloknota.kdplg; EXCEPTION WHEN NO_DATA_FOUND THEN :bloknota.nmplg :=‘ ’; :bloknota.alamat :=‘ ’; END; GO_ITEM(‘blokpesan.kdbrg’); ELSE SET_ALERT_PROPERTY('PESAN',ALERT_MESSAGE_TEXT,'Kode pelanggan tidak ada..'); psn:=SHOW_ALERT('PESAN'); RAISE FORM_TRIGGER_FAILURE; GO_ITEM('bloknota.txtdplg'); END IF;
66
Menyimpan Modul Form Cetak Nota
Dari menu File Save As Pilih Direktori Penyimpanan, (misalkan di E:\ ORA ), Beri nama FrmCetakNota.FMB, dan Disimpan dengan tipe .FMB. Seperti kotak dialog berikut :
67
Menyimpan Form Module Builder
68
Menyimpan Form Module Builder
1 2
69
Mengkompile PL/SQL 1 2
70
Proses Kompilasi Berhasil
71
Selamat Mencoba
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.