« Kamen Rider Kiva | Main | Error saat deploy di Oracle Application Server »
Oracle Form Timer
By deepe | February 14, 2008
Timer??? Bagaimana sih implementasi timer di Oracle Form? Kemudian apa saja fungsinya? Untuk menjawab pertanyaan ini saya membuat aplikasi sederhana yang fungsinya mengupdate jam system, jadi kita akan melihat seolah-olah jam tersebut berdetik terus.
Langkah pertama adalah membuat form seperti berikut ini

Selanjutnya pada form kita buat block dengan nama ‘BTime’. Kemudian didalam block kita tambahkan text item dan display item. Text Item kita beri nama dummy, berfungsi sebagai focus ketika form aktif. Sedangkan Display Item kita beri nama MyTime, berfungsi untuk menampilkan jam yang bergerak terus (dinamis time). Kemudian kita buat program unit type ‘Prosedure’ dengan nama ‘RUN_TIMER’. Isi program unit tersebut sebagai berikut:
PROCEDURE run_timer IS
timer_id TIMER;
timer_interval NUMBER := 1000;
BEGIN
timer_id := CREATE_TIMER(‘simple_time’,timer_interval,REPEAT);
END;
Mari kita bahas satu persatu program unit diatas. Program unit diatas menggunakan 2 buah variable dengan nama timer_id dan timer_interval. Variabel timer_id ber-type TIMER sedangkan timer_interval ber-type NUMBER. Nilai variable timer_interval diberi 1000 sama artinya dengan 1 detik. Program unit ini memanggil fungsi built in CREATE_TIMER untuk membuat sebuah timer. Fungsi CREATE_TIME memiliki 3 parameter yaitu nama timer, waktu timer dijalankan, dan proses timer. Parameter proses timer bernilai sama dengan REPEAT bila timer ini diulang terus menerus, jika tidak maka beri nilai parameter ini dengan nilai NO_REPEAT.
Kemudian mungkin anda bertanya, Dimana saya harus meletakkan program unit tersebut?
Jawaban dari pertanyaan tersebut adalah anda dapat meletakkan program unit ini dimana saja, tetapi untuk contoh kasus ini, saya meletakkan program unit ‘RUN_TIMER’ di trigger level Form dengan nama “WHEN-NEW-FORM-INSTANCE”. Isi trigger tersebut adalah seperti tertulis di bawah ini.
:btime.mytime := to_char(sysdate,’hh24:mi:ss’);
run_timer;
Nah, setelah itu mungkin kalian akan bertanya lagi, Dimana saya harus meletakkan potongan code yang harus dijalankan setelah interval tercapai?
Kali ini kalian harus meletakkan potongan kode tersebut di trigger level form dengan nama “WHEN-TIMER-EXPIRED”. Potongan kode saya yang ada di trigger “WHEN-TIMER_EXPIRED” adalah sebagai berikut:
:btime.mytime := to_char(sysdate,’hh24:mi:ss’);
Setelah semua proses ini dilaksanakan, anda tinggal menjalankan program ini dan hasilnya adalah sebuah jam digital sederhana.
Jika anda tertarik dengan contoh ini, anda dapat mendowloadnya di link ini . Silahkan dikembangkan dan semoga bermanfaat.
Kesimpulan yang utama adalah Timer digunakan untuk mengeksekusi code pada waktu tertentu tergantung dari interval yang ditentukan. Hal-hal yang berhubungan dengan timer adalah CREATE_TIMER, FIND_TIMER, SET_TIMER, WHEN-TIMER-EXPIRED TRIGGER. Untuk lebih jelasnya silahkan cari di helpnya Form Developer 10g.
Topics: Oracle | 4 Comments »



June 9th, 2009 at 3:48 am
klo mau bikin timer untuk execute query di form gimana mas ?
June 11th, 2009 at 11:03 pm
maksudnya setiap berapa detik mengeksekusi query??? kalo maksudnya seperti itu yang tinggal diganti aja baris “:btime.mytime := to_char(sysdate,’hh24:mi:ss’);” dengan perintah untuk mengeksekusi query.
July 6th, 2009 at 1:51 am
@deepe
tolong baca lagi dengan seksama mas, kan mas dwi njelasinnya juga spt yg sampeyan maksudkan..
@dwi
thanks, nice info.
July 12th, 2009 at 12:30 am
ooo…. bisa ya pake database oracle untuk bikin form seperti itu… baru tau(newbie)… makasih infonya…