panduan lengkap pemrograman oracle developer 6i

18
69 FORM DENGAN TABLE Setiap sistem aplikasi yang dibuat haruslah dapat menyimpan data yang di-entry ke dalam suatu wadah, dalam hal ini sebuah table. Selain table, data yang di-entry dapat disimpan dalam sebuah file yang telah ditentukan saat sistem akan dibuat. Tabel yang dimaksud di atas adalah table yang merupakan bagian dari database. Selanjutnya database yang digunakan oleh buku ini adalah database Oracle 10g. Pembahasan Oracle Form Gi dengan Database Oracle 10g dilakukan dua macam, yaitu pembuatan Form Wizard dan Form Manual. Keduanya akan dibahas di buku ini guna pengenalan terhadap Oracle Form Gi lebih dalam. Selain itu, buku ini juga akan mem- bahas pembuatan Form Master Detail. Dalam pembuatan Form bisa dilakukan secara langsung lebih dari satu buah. Baik Form yang satu dengan form yang lain ada hubungannya ataupun tidak. Begitupun dengan menjalankan form- form dapat dijalankan lebih dari satu form, secara bersamaan. Jika ingin menjalankan form pastikan form tersebut tidak dalam keadaan running. Jika form yang akan dijalankan berada dalam keadaan running, form tersebut akan menampilkan kesalahan/error. Walaupun oracle developer form dapat membuat sekaligus beberapa form, tetapi untuk dapat berkoneksi ke database oracle hanya dapat diberikan izin satu user saja. Jika kita hendak pindah ke user lain, kita dapat mengganti user serta nama database yang lain. Untuk selanjutnya bab ini akan menggunakan user scott dan password-nya tiger, sesuai dengan settingan saat database oracle 10g diinstal (lihat Gambar 1.10).

Upload: dedy-hartama

Post on 25-Oct-2015

25 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Panduan Lengkap Pemrograman Oracle Developer 6i

69

FORM DENGAN TABLE

Setiap sistem aplikasi yang dibuat haruslah dapat menyimpan data yang di-entry ke dalam suatu wadah, dalam hal ini sebuah table. Selain table, data yang di-entry dapat disimpan dalam sebuah file yang telah ditentukan saat sistem akan dibuat. Tabel yang dimaksud di atas adalah table yang merupakan bagian dari database. Selanjutnya database yang digunakan oleh buku ini adalah database Oracle 10g.

Pembahasan Oracle Form Gi dengan Database Oracle 10g dilakukan dua macam, yaitu pembuatan Form Wizard dan Form Manual. Keduanya akan dibahas di buku ini guna pengenalan terhadap Oracle Form Gi lebih dalam. Selain itu, buku ini juga akan mem-bahas pembuatan Form Master Detail.

Dalam pembuatan Form bisa dilakukan secara langsung lebih dari satu buah. Baik Form yang satu dengan form yang lain ada hubungannya ataupun tidak. Begitupun dengan menjalankan form-form dapat dijalankan lebih dari satu form, secara bersamaan. Jika ingin menjalankan form pastikan form tersebut tidak dalam keadaan running. Jika form yang akan dijalankan berada dalam keadaan running, form tersebut akan menampilkan kesalahan/error.

Walaupun oracle developer form dapat membuat sekaligus beberapa form, tetapi untuk dapat berkoneksi ke database oracle hanya dapat diberikan izin satu user saja. Jika kita hendak pindah ke user lain, kita dapat mengganti user serta nama database yang lain. Untuk selanjutnya bab ini akan menggunakan user scott dan password-nya tiger, sesuai dengan settingan saat database oracle 10g diinstal (lihat Gambar 1.10).

Page 2: Panduan Lengkap Pemrograman Oracle Developer 6i

70

3.1 Form Wizard Jika form designer telah terkoneksi pada salah satu user, form designer dapat menggunakan sejumlah atribut yang berada pada user tersebut. Atribut yang dapat digunakan oleh form designer pada umumnya Table, View, synonym, procedure, function, dan package. Selain itu, masih banyak atribut yang dapat digunakan.

Dalam pembuatan Form menggunakan fasilitas Form Wizard, table yang akan diakses hanya 1 buah table saja. Jika akan mengakses table yang lain, gunakanlah kembali fungsi Form Wizard ini. Form Wizard ini pun dapat membuat Form Master-Detail, jika block yang akan dijadikan master telah tersedia. Pada buku ini, Form Wizard disimulasikan hanya berada pada sebuah block dan tidak berbentuk Form Master Detail.

Rumus untuk menempatkan item dalam pembuatan form wizard dapat dibuat secara otomatis. Canvas yang akan dibuat pun dapat dipilih sesuai dengan tipe canvas yang dibutuhkan. Untuk setting properti dikerjakan saat form telah selesai.

Untuk memulai membuat form wizard, ikutilah langkah-langkah berikut ini:

1. Letakkan kursor pada objek block.

2. Pilihlah menu Create pada window Navigator, setelah itu akan tampil window berikut ini.

Gambar 3.1. Menu utama membuat block

3. Pilihlah menu ‘use data block wizard’ dan tekanlah button OK, maka akan tampil window di bawah ini.

Page 3: Panduan Lengkap Pemrograman Oracle Developer 6i

71

Gambar 3.2. Menu utama block wizard

4. Window ini merupakan tampilan utama. Jika kita memilih uncheck, tampilan window ini untuk ke depannya akan hilang. Untuk melanjutkannya, pilihlah tombol “NEXT”, maka akan tampil gambar di bawah ini.

Gambar 3.3. Atribut yang akan digunakan oleh block

5. Pilihlah menu “TABLE OR VIEW” karena form ini memang akan memfokuskan pada atribut tersebut. Pilih tombol NEXT, maka akan tampil gambar di bawah ini.

Page 4: Panduan Lengkap Pemrograman Oracle Developer 6i

72

Gambar 3.4. Nama atribut yang akan dipilih

6. Pada item “TABLE OR VIEW” isilah nama table. Untuk melihat field pada table tersebut, pilihlah tombol “REFRESH”.

7. Jika tidak tahu nama table, pilihlah tombol BROWSE, maka akan tampil gambar berikut ini.

Gambar 3.5. Pilihan nama-nama table dan view

8. Pilihlah salah satu atribut pada window ini, pada buku ini memilih table emp.

9. Semua field pada tombol emp akan berada pada item available column.

10. Untuk menampilkan field pada canvas/form pilihlah data pada item “Available Column” dan tekanlah tombol “>” atau tombol

Page 5: Panduan Lengkap Pemrograman Oracle Developer 6i

73

“>>” untuk memilih semua item. Item yang terpilih akan pindah ke item database form. Gambar di bawah ini meru-pakan hasil pemilihan semua item yang akan ditampilkan pada form.

Gambar 3.6. Field-field yang dipilih

11. Pilihlah button Next jika sudah yakin item yang akan ditam-pilkan pada form. Setelah itu tampilan window akan tampil seperti di bawah ini.

Gambar 3.7. Penawaran membuat Layout secara wizard

12. Karena sejak awal pembuatan form belum ada canvas, maka window ini menawarkan pembuatan object Canvas. Untuk selanjutnya pilihlah Finish. Setelah menekan tombol Finish, akan tampil window berikut ini.

Page 6: Panduan Lengkap Pemrograman Oracle Developer 6i

74

Gambar 3.8. Tampilan utama membuat layout wizard

13. Ini adalah tampilan pertama membuat Canvas secara Wizard. Jika menu tidak dicetak dipilih, selanjutnya tampilan window ini tidak akan ada. Untuk meneruskan pekerjaan ini, tekanlah tombol Next.

Gambar 3.9. Pilihan canvas dan type canvas

14. Window ini memilih canvas jika canvas sudah dibuat sebe-lumnya. Dan membuat sendiri canvas bila belum ada, berikut dengan type canvas yang akan digunakan. Untuk memper-cepat pada item canvas, isilah data dengan “NEW CANVAS” dan item type dengan pilihan “ CONTENT”. Setelah selesai, tekanlah tombol ‘NEXT’, maka akan tampil sesuai pada gam-bar berikut.

Page 7: Panduan Lengkap Pemrograman Oracle Developer 6i

75

Gambar 3.10. Pemilihan field yang akan ditampilkan

15. Pada item data block harus sama dengan nama table yang dipilih sebelumnya (lihat Gambar 3.6). Pindahkanlah data-data pada item available form ke item displayed form untuk dapat ditampilkan pada form. Buku ini menganjurkan agar semua data dipindahkan ke item Displayed Form. Tekanlah tombol ‘NEXT’, maka akan tampil gambar berikut ini.

Gambar 3.11. Pengaturan tampilan item

16. Maksud window ini adalah mengatur panjang dan lebar semua item yang dipilih untuk ditampilkan pada form. Window be-rikutnya tampak pada gambar berikut.

Page 8: Panduan Lengkap Pemrograman Oracle Developer 6i

76

Gambar 3.12. Mengatur bentuk tampilan

17. Selanjutnya tampilan ini memilih jenis tampilan untuk semua item. Tabular berarti item-item akan ditempatkan ke samping semua, sedangkan pilihan form akan menempatkan item-item sesuai panjang dan lebar objek window. Buku ini menyarankan untuk memilih menu form dan tekanlah tombol ‘NEXT’, akan tampil window di bawah ini.

Gambar 3.13. Mengatur judul dan jumlah item

18. Item form title untuk memberikan judul pada form. Item ‘record displayed’ berguna untuk menampilkan jumlah semua item yang akan ditampilkan dan item selanjutnya berfungsi untuk menentukan lebar jarak sebuah item dengan item yang lain.

Page 9: Panduan Lengkap Pemrograman Oracle Developer 6i

77

Gambar 3.14. Tampilan canvas wizard telah selesai

19. Tampilan ini akan memberi tahu jika proses pembuatan form wizard telah selesai dan berhasil. Jika dijalankan, program ini akan tampil seperti pada gambar berikut ini.

Gambar 3.15. Hasil akhir form wizard

20. Simpanlah form ini dengan nama file B3wiz.fmb.

3.2 Form Manual Maksud form manual, yaitu membuat forn yang tanpa mengikuti langkah-langkah yang telah dipandu oleh Form Builder. Walaupun membuat secara manual, form builder pun dapat didesain tanpa membuat program. Tentu saja jika tanpa program, berarti terdiri atas satu block dan satu table saja.

Field-field yang berada pada table pun dapat dipilih untuk ditam-pilkan pada form. Field-field yang tidak ditampilkan harus memiliki beberapa kriteria, antara lain:

Page 10: Panduan Lengkap Pemrograman Oracle Developer 6i

78

1. Field tidak boleh memiliki property Not Null. Jika field ini tidak ditampilkan dan saat form sedang berjalan untuk di-entry data, maka field ini akan memiliki nilai null dan hasil form yang berjalan pun akan memiliki masalah/error.

2. Primary Key dan Secondary Key. Sebaiknya, jika field memi-liki primary key, isilah field tersebut dengan data yang unik dari data yang lain. Sedangkan secondary key, sebaiknya data tersebut diisi menggunakan fungsi LOV dari table primary key yang ditunjuk sebelumnya.

Untuk form yang sederhana cukup memiliki object canvas, block, dan item-item. Sebab, object window telah ada saat pertama form builder dijalankan.

Untuk memulai, bukalah baru form builder lalu ikutilah langkah-langkah berikut ini:

1. Buatlah object canvas dan block baru, masing-masing 1 buah.

2. Pada object block, ikutilah setting property sebagai berikut.

Property Block Name EMPLOYEE Query Data Source Name

EMP

Maksud isi property di atas, yaitu block tersebut memiliki nama employee dan terkoneksi ke table EMP.

3. Buatlah lima buah item pada block employee dan ikutilah property sebagai berikut.

Property Item 1 Item 2 Item 3 Item 4 Item 5 Name EMPNO ENAME HIREDATE DEPTNO DEPTNAME Data Type

Char Char Date Char Char

Maximum Length

4 10 10 2 14

Format Mask

dd-mm-yyyy

Column Name

Empno Ename Hiredate Deptno

Page 11: Panduan Lengkap Pemrograman Oracle Developer 6i

79

Canvas Canvas2 Canvas2 Canvas2 Canvas2 Canvas2 X Position 69 110 69 69 110 Y Position 20 20 37 54 55 Width 41 119 53 41 118 Height 15 15 15 15 15

Pada item Deptname tidak memiliki nilai pada property Column Name, dimaksudkan bahwa item tersebut tidak ter-koneksi pada table employee. Memang pada table employee tidak memiliki field Deptname. Maksud item ini, yaitu untuk menjelaskan nama departemen dari karyawan yang akan ditampilkan. Nama departemen tersebut akan diambil dari table lain, yaitu table Dept.

4. Untuk menampilkan nama departemen untuk item Deptname, buatlah trigger pada item Deptno dengan nama trigger POST-CHANGE dengan isi program sebagai berikut.

begin select dname into :employee.deptname from dept where deptno = :employee.deptno ; exception when no_data_found then :employee.deptname := 'NO DEPT' ; end ;

Dari langkah-langkah di atas, block sudah terkoneksi ke table. Begitu pun dengan item-item sudah terkoneksi ke field-field yang berada pada table dan form dapat dijalankan. Form yang dija-lankan akan menghasilkan gambar berikut ini.

Gambar 3.16. Hasil akhir form manual

Page 12: Panduan Lengkap Pemrograman Oracle Developer 6i

80

Jika form dapat berjalan sesuai dengan gambar di atas, selan-jutnya simpanlah form ini dengan nama file B3MAN.FMB.

3.3 Form Master – Detail Form master – detail terdiri atas suatu form yang memiliki minimal 2 block yang saling berhubungan. Pada databasenya pun, kedua block ini akan terhubung dengan table yang saling berhubungan. Maksud form master-detail, yaitu satu buah block yang menjadi master dan block lain menjadi detail. Satu record pada block master akan memiliki banyak record pada block detail.

Baik block master maupun block detail akan tampil pada satu canvas dan tampil bersama-sama agar dapat terlihat datanya. Selanjutnya dalam simulasi ini, form manual yang dibuat sebelum-nya akan digunakan kembali. Block yang berada pada form tersebut, yaitu block Employee akan digunakan sebagai master block. Jadi, sebaiknya form di atas dibuka kembali untuk simulasi selanjutnya.

Block detail akan terhubung pada table family. Untuk selanjutnya ikutilah beberapa langkah berikut:

1. Buatlah table family dengan ketentuan di bawah ini.

Nama Field

Null Type

Empno Not null

Varchar2(4)

Nama Varchar2(15)

Tgl_lahir

Date

Status Varchar2(10)

Dari tabel di atas, script pembuatan table family akan menjadi seperti berikut ini.

create table family ( empno varchar2(4) not null, nama varchar2(15),

Page 13: Panduan Lengkap Pemrograman Oracle Developer 6i

81

tgl_lahir date, status varchar2(10) );

2. Pada form B3man.fmb buatlah block baru dan lengkapilah property-nya sebagai berikut.

Property Block Name KELUARG

A Query Data Source Name

family

Number of Record Displayed

5

Show Scroll Bar Yes Scroll Bar Canvas Canvas2 Scroll Bar Orientation

Vertical

Scroll Bar X Postition

20

Scroll Bar Y Position 97 Scroll Bar Width 16 Scroll Bar Length 74

3. Pada block keluarga ini buatlah empat item yang memiliki

property sesuai dengan table berikut ini.

Property Item 1 Item 2 Item 3 Item 4 Name EMPNO ENAME HIREDATE DEPTNO Item Type Text

Item Text Item

Text Item

Text Item

Data Type Char Char Date Char Maximum Length

4 10 10 2

Format Mask

dd-mm-yyyy

Column Name

Empno Ename Hiredate Deptno

Canvas Canvas2

Canvas2

Canvas2 Canvas2

Page 14: Panduan Lengkap Pemrograman Oracle Developer 6i

82

X Position 69 110 69 69 Y Position 20 20 37 54 Width 41 119 53 41 Height 15 15 15 15

4. Untuk membuat relasi block employee dan keluarga, taruhlah

kursor pada submenu Relation pada object block employee.

5. Pilihlah menu Create pada window navigator dan akan tampil sebuah window.

6. Pada item Detail Block isilah Keluarga, atau untuk memilih nama block, pilihlah tombol Select.

7. Isilah item Join Item dengan query sebagai berikut ‘employee.empno = keluarga.empno’.

Gambar 3.17. Pengaturan relasi master-detail

8. Jika pengaturan selesai, pilihlah tombol OK dan akan tampil beberapa trigger secara otomatis seperti tampak berikut ini.

Page 15: Panduan Lengkap Pemrograman Oracle Developer 6i

83

Gambar 3.18. Tampil trigger

9. Jika dijalankan, akan menghasilkan form berikut ini.

Gambar 3.19. Form master-detail

10. Simpanlah form dengan nama file B3masdet.fmb.

3.4 Open Cursor Open cursor, yaitu suatu fungsi yang pada umumnya membuka sql. Hasil sql tersebut dijadikan suatu proses. Jika hasil suatu query sql

Page 16: Panduan Lengkap Pemrograman Oracle Developer 6i

84

lebih dari 1 row, maka penggunaan open-cursor pada umumnya melakukan pengulangan.

Fungsi open cursor ini tidak membutuhkan block baru secara khusus karena fungsi open-cursor merupakan fungsi yang terdapat pada pemrograman. Open-cursor dapat disimpan pada trigger ataupun object program unit. Query dari fungsi Open-cursor ini dapat dima-sukkan filter secara dinamis dari item-item pada block ataupun dari object-object parameter.

Sebagai contoh, program open-cursor pada buku ini, yaitu akan dilakukan duplikasi data dari emp ke table karyawan. Table Emp yang diambil, yaitu hanya beberapa field saja. Untuk memulai ikutilah beberapa langkah berikut:

1. Bukalah form B3man.fmb.

2. Buatlah table baru dengan perintah sebagai berikut.

create table karyawan ( emp_no varchar2(4) not null, emp_name varchar2(30), tgl_masuk date , no_dept number(2) ) ;

3. Buatlah block baru dan berilah nama FOC.

4. Pada block FOC buatlah 2 item yang memiliki property seperti di bawah ini.

Property Item 1 Item 2 Name Persen Proses Item Type Text

Item Push Button

Data Type Char Maximum Length

30

Label Proses Canvas Canvas

2 Canvas2

X Position 69 68 Y Position 71 104

Page 17: Panduan Lengkap Pemrograman Oracle Developer 6i

85

Width 53 53 Height 15 15

5. Pada item Proses buatlah trigger item dengan nama trigger

‘WHEN-BUTTON-PRESSED’ lalu ketiklah program berikut ini.

declare cursor simulasi is select empno, ename, hiredate, deptno from emp ; vemp_no varchar2(4); vemp_name varchar2(30); vtgl_masuk date ; vdept_no number ; total_row number := 0 ; jumlah number := 0 ; begin begin delete from karyawan ; commit ; end ; begin select count(*) into total_row from emp ; end ; open simulasi ; loop fetch simulasi into vemp_no, vemp_name, vtgl_masuk, vdept_no ; exit when simulasi%notfound ; jumlah := jumlah + 1 ; begin insert into karyawan values (vemp_no, vemp_name, vtgl_masuk, vdept_no) ; commit ; end ; :foc.persen := to_char((jumlah/total_row)*100, '999,999')||' %'; end loop ;

Page 18: Panduan Lengkap Pemrograman Oracle Developer 6i

86

close simulasi ; end ;

6. Jika dijalankan dan memilih button Proses, akan tampil error.

Semua itu karena saat program berjalan ada proses commit. Untuk menghilangkan error tersebut buatlah trigger form dengan nama trigger ‘POST-FORMS-COMMIT’ dan ketiklah program ini.

Begin :sistem.message_level := '25'; End;

7. Jika dijalankan, hasil form tampak seperti berikut ini.

Gambar 3.20. Hasil fungsi Open-cursor

8. Simpanlah form ini dengan nama file B3ocur.fmb.

Catatan

► Block employee dan block Foc tidak ada hubungan.

► Item proses akan tampil lambat jika datanya banyak.