Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Oracle : Form/Report Developer Pertemuan 11 Dibuat Oleh : Lis Suryadi, M.Kom.

Presentasi serupa


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

1 Oracle : Form/Report Developer Pertemuan 11 Dibuat Oleh : Lis Suryadi, M.Kom

2 Materi: Membuat Form Cetak Nota Lanjutan

3 Block PL/SQL pada object TxtKdBrg Dengan Trigger: Key-Next-Item 2 1

4 DECLARE adaNUMBER:=0; psnNUMBER:=0; BEGIN SELECT COUNT(*) INTO ada FROM barang WHERE kdbrg=:blokpesan.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN ada:=0; END; Block PL/SQL pada object TxtKdBrg Dengan Trigger: Key-Next-Item

5 IF ada<> 0 THEN BEGIN SELECT nmbrg, satuan, hrgsat INTO :blokpesan.txtnmbrg, :blokpesan.txtsatuan, :blokpesan.txthrgsat FROM barang WHERE kdbrg=:blokpesan.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN :blokpesan.txtnmbrg :=‘ ‘; :blokpesan.txtsatuan:=‘ ‘; :blokpesan.txthrgsat:=‘ '; END; go_item('blokpesan.txtjml_pesan'); ELSE SET_ALERT_PROPERTY('pesan',ALERT_MESSAGE_TEXT,'Kode barang tersebut tidak ada..'); psn:= SHOW_ALERT('pesan'); RAISE FORM_TRIGGER_FAILURE; GO_ITEM('blokpesan.txtkdbrg'); END IF; END; Block PL/SQL pada object TxtKdBrg Dengan Trigger: Key-Next-Item

6 Membuat Block PL/SQL Pada Object TxtJml_Pesan Dengan Trigger: Key-Next-Item 2 1

7 DECLARE jumlah number:=0; totalnumber:=0; BEGIN :blokpesan.txttotal := :blokpesan.txthrgsat * :blokpesan.txtjml_pesan; FIRST_RECORD; WHILE :blokpesan.txthrgsat IS NOT NULL LOOP IF :GLOBAL.koreksi = 'T' THEN jumlah:=jumlah+ :blokpesan.txtjumlah; :blokpesan.txttotal:=jumlah; NEXT_RECORD; ELSE jumlah:=jumlah + :blokpesan.txttotal; END IF; NEXT_RECORD; END LOOP; :bloknota.txtgrandtot:=jumlah; END; Block PL/SQL pada object TxtQty Ketika Trigger Key-Next-Item

8 Membuat Block PL/SQL Pada Object Bsimpan Dengan Trigger: When-Button-Pressed 2 1

9 DECLARE adaNota NUMBER:=0; adaPesanNUMBER:=0; BEGIN SELECT COUNT(*) INTO adaNota FROM nota WHERE no_nota = :bloknota.txtno_nota; EXCEPTION WHEN NO_DATA_FOUND THENx:=0; END; IF adaNota <> 0 THEN UPDATE nota SETtgl_nota = :bloknota.txttgl_nota, kdplg=:bloknota.txtkdplg WHEREno_nota = :bloknota.txtno_nota; COMMIT; CLEAR_MESSAGE; ELSE INSERT INTO nota(no_nota,tgl_nota, kdplg) VALUES(:bloknota.txtno_nota,:bloknota.txttgl_nota,:bloknota.txtkdplg); COMMIT; CLEAR_MESSAGE; END IF; Block PL/SQL pada object BSimpan ketika Trigger: When-Button-Pressed

10 GO_BLOCK('blokpesan'); FIRST_RECORD; WHILE :blokpesan.txtkdbrg is NOT NULL LOOP FIRST_RECORD; BEGIN SELECT COUNT(*) INTOadaPesan FROM pesan WHERE no_nota=:bloknota.txtno_nota AND kdbrg=:blokpesan.txtkdbrg; EXCEPTION WHEN NO_DATA_FOUND THEN adaPesan:=0; END; IF adaPesan <> 0 THEN UPDATE pesan SET jml_pesan=:blokpesan.txtqty WHERE no_nota=:bloknota.txtno_nota AND kdbrg=:blokpesan.txtkdbrg; COMMIT; CLEAR_MESSAGE; -- *) Lanjutan… Block PL/SQL Continue …

11 -- *) Lanjutan … ELSE INSERT INTO pesan(no_nota, kdbrg, jml_pesan) VALUES(:bloknota.txtno_nota, :blokpesan.txtkdbrg, :blokpesan.txtjml_pesan); COMMIT; CLEAR_MESSAGE; END IF; CLEAR_RECORD; IF :blokpesan.txtkdbrg IS NULL THEN EXIT; END IF; END LOOP; CLEAR_FORM; counter_nonota(); GO_ITEM('bloknota.txtno_nota'); END; Block PL/SQL Continue …

12 BEGIN CLEAR_FORM; CLEAR_RECORD; Counter_Nonota(); go_item('bloknota.txtno_nota'); END; Block PL/SQL pada object BBatal Dengan Trigger: When-Button-Pressed

13 BEGIN EXIT_FORM; END; Block PL/SQL pada object BKeluar Dengan Trigger: When-Button-Pressed

14 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 :

15 Menyimpan Form Module Builder

16 2 1

17 Mengkompile PL/SQL 1 2

18 Proses Kompilasi Berhasil

19 Program Setelah Dijalankan

20 Selamat Mencoba


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

Presentasi serupa


Iklan oleh Google