FORM DENGAN TABEL
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 membahas
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 formform
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
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.
3. Pilihlah menu ‘use data block wizard’ dan tekanlah button OK,
maka akan tampil window di bawah ini.
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.
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
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.
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 “>>” untuk memilih semua item. Item yang terpilih akan
pindah ke item database form. Gambar di bawah ini merupakan
hasil pemilihan semua item yang akan ditampilkan
pada form.
11. Pilihlah button Next jika sudah yakin item yang akan ditampilkan
pada form. Setelah itu tampilan window akan tampil
seperti di bawah ini.
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.
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.
14. Window ini memilih canvas jika canvas sudah dibuat sebelumnya.
Dan membuat sendiri canvas bila belum ada, berikut
dengan type canvas yang akan digunakan. Untuk mempercepat
pada item canvas, isilah data dengan “NEW CANVAS”
dan item type dengan pilihan “ CONTENT”. Setelah selesai,
tekanlah tombol ‘NEXT’, maka akan tampil sesuai pada gambar
berikut.
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.
16. Maksud window ini adalah mengatur panjang dan lebar semua
item yang dipilih untuk ditampilkan pada form. Window berikutnya
tampak pada gambar berikut.
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.
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.
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.
20. Simpanlah form ini dengan nama file B3wiz.fmb.
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 ditampilkan
pada form. Field-field yang tidak ditampilkan harus memiliki
beberapa kriteria, antara lain:
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 memiliki
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 langkahlangkah
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 | Item1 | Item2 | Item3 | Item4 | Item5 |
Name | EMPNO | ENAME | HIREDATA | DEPTNO | DEPTNAME |
DataType | Char | Char | Date | Char | Char |
Maximum Length | 4 | 10 | 10 | 2 | 14 |
Format Mask | dd-mm-yyyy | ||||
Column Name | Empno | Ename | Hiredate | Deptno |
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 terkoneksi
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 POSTCHANGE
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 dijalankan
akan menghasilkan gambar berikut ini.
ika form dapat berjalan sesuai dengan gambar di atas, selanjutnya
simpanlah form ini dengan nama file B3MAN.FMB.
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 sebelumnya
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_lahi r |
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),
tgl_lahir date,
status varchar2(10) );
2. Pada form B3man.fmb buatlah block baru dan lengkapilah
property-nya sebagai berikut.
Property | Block |
Name | Keluarga |
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.
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’.
8. Jika pengaturan selesai, pilihlah tombol OK dan akan tampil
beberapa trigger secara otomatis seperti tampak berikut ini.
9. Jika dijalankan, akan menghasilkan form berikut ini.
10. Simpanlah form dengan nama file B3masdet.fmb.
Open Cursor
Open cursor, yaitu suatu fungsi yang pada umumnya membuka sql.
Hasil sql tersebut dijadikan suatu proses. Jika hasil suatu query sql
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 dimasukkan
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 | Item1 | Item2 |
Name | Persen | Proses |
ItemType | Text Item | Push Botton |
Data Type | Char | |
Maximum Lenght | 30 | |
Label | Proses | |
Canvas | Canvas2 | Canvas2 |
X Position | 69 | 68 |
Y Position | 71 | 104 |
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 ;
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.
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.
Sekian artikel ini semoga bisa bermanfaat bagi teman2 sekalian
thanks gan sudah share
ReplyDeleteSolder uap portable