Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Oracle : Form/Report Developer Pertemuan 10 Dibuat oleh: Lis Suryadi, M.Kom.

Presentasi serupa


Presentasi berjudul: "Oracle : Form/Report Developer Pertemuan 10 Dibuat oleh: Lis Suryadi, M.Kom."— Transcript presentasi:

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 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. Membuat Block Data pada Form Cetak Nota

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 1 2

12 Membuat Object Alert 1 2

13 Membuat Data Block “BlokNota”

14 Membuat Data Block Menggunakan Wizard

15

16 Memilih Tipe Data Block

17 Mencari Tabel atau View

18 Memilih Tabel Nota

19 Memilih Kolom Yang Ada Di Tabel 2 1

20 Memilih Kolom Sebagai Item Di Form

21 Memberi Nama Data Blok 2 1

22 Membuat Layout

23 Memulai Layout Wizard

24 Memilih Canvas Untuk Layout

25 Memilih Item Yang Akan Ditampilkan 2 1

26

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 2 1

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 2 1

45

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 DECLARE judulVARCHAR2(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; Block PL/SQL Dengan Trigger When-New-Form-Instance

55 Membuat Prosedur Counter_NoNota() 2 1

56 Membuat Prosedur Counter_NoNota PROCEDURE COUNTER_NONOTA IS x NUMBER:=0; vnomorCHAR(7); THCHAR(2); BEGIN SELECT MAX(to_number(SUBSTR(no_nota,5,3))) INTO x FROMnota; 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 vnomor :=‘NT'||TH||’00’||TO_CHAR(x); ELSE vnomor :=TO_CHAR(x); END IF; :bloknota.txtno_nota:= vnomor; END;

57 Membuat Block PL/SQL Pada Object TxtNo_Nota 2 1

58 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 THENada:=0;END; IF ada <> 0 THEN -- Jika data nota ada, tampilkan datanya… BEGIN 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; Block PL/SQL pada object TxtNo_Nota ketika Trigger Key-Next-Item

59 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 WHEREpesan.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; Block PL/SQL pada object TxtNo_Nota Cont…

60 GO_ITEM('blokpesan.txtkdbrg'); ELSE -- Jika data nota tidak ada, maka entri data baru… GO_ITEM('bloknota.txttgl_nota'); END IF; END; Block PL/SQL pada object TxtNo_Nota (Lanjutan)

61 Mengatur Properti Object TxtTGL_NOTA 2 1

62 Membuat Block PL/SQL Pada Object TxtTGL_NOTA 2 1

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 2 1

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; EXCEPTIONWHEN NO_DATA_FOUND THEN ada:=0; END; IF ada <> 0THEN BEGIN SELECTnmplg, alamat INTO :bloknota.nmplg, :bloknota.alamat FROM pelanggan WHEREkdplg=: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; END;

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 2 1

69 Mengkompile PL/SQL 1 2

70 Proses Kompilasi Berhasil

71 Selamat Mencoba


Download ppt "Oracle : Form/Report Developer Pertemuan 10 Dibuat oleh: Lis Suryadi, M.Kom."

Presentasi serupa


Iklan oleh Google