Categories

Powered by Blogger.

Thursday, July 25, 2013

MENGETAHUI DATA SUDAH ADA

Dalam sebuah program biasanya ada sebuah modul untuk input data, data yang memerlukan inputan data berupa Kode dimana kode ini sifatnya unik atau hanya ada satu , atau berupa primary key, misalnya memasukan Kode Anggota pada inputan data Anggota Program Koperasi, atau Inputan Nomer Induk Mahasiswa, atau inputan Nomer Induk Pegawai dan lain lain. Jika kita menggunakan pengkodean secara manual maka kendala yang kita hadapi adalah untuk mengetahui apakah kode yang kita ketikan itu sudah ada dalam database atau tidak, lain halnya kalau kita menggunakan teknik pengkodean secara otomatis.  Untuk mengetahui apakah data  yang kita ketikan sudah ada atau belum, kita harus memahami logikanya terlebih dahulu, Secara logika untuk mengetahui apakah data yang kita ketikan tersebut sudah ada atau belum adalah dengan memeriksanya kedalam tabel bersangkutan, jadi kita harus memeriksa apakah data yang akan kita masukan sudah ada atau belum, kalau sudah ada kita harus menampilkan peringatan kalau data sudah ada, kalau belum ada kita bisa melanjutkan memasukan data.  Setelah kita paham logikanya barulah kita memikirkan codingnya, Berdasarkan logika tadi , yaitu pada saat kita memasukan kode baru , kita harus memeriksa dulu kedalam tabel, untuk memeriksa isi tabel tentunya kita menggunakan perintah SELECT pada sqlnya. 

Misalnya sebelemu proses simpan data , kita lakukan pengecekan sebagai berikut:
      with Querybaca do
      begin
           Close;
           Sql.clear;
           sql.add('Select kode from tabelstock');
           sql.add('Where kode=:pkode');
           Parambyname('pkode').Asstring:=dbKode.field.asstring;
           Open;
      end;
if Querybaca.isempty  then   [Lanjutkan Proses Simpan ] Else  [Tampilkan Pesan Data Sudah Ada]
Keterangan :
Querybaca : Komponen Query pada Delphi ( sesuai dengan database yg dipakai apakah ADOQuery atau Query dari Komponen ZEUS dll )
dbKode :adalah tempat menginputkan Kode, apakah itu berupa Edit Text atau DBEdit sesuai dengan gaya pemrograman masing masing
[Lanjutkan Proses Simpan ] : adalah Proses Penyimpanan data
[Tampilkan Pesan Data Sudah Ada] : Coding Tampilkan peringatan kalau data sudah ada. kemudian batalkan proses penyimpanan
»»  READMORE...

TOMBOL ENTER UNTUK LANJUT PADA KOMPONEN EDIT

Salah satu komponen pada Delphi yang sering digunakan adalah komponen ‘Edit’, dimana komponen ini digunakan sebagai media input berupa text atau tulisan.Dalam penggunaan komponen ini biasanya kita mendapatkan kendala jika kita menggunakan beberapa komponen edit untuk input data, misalnya input biodata yang berisi nama , alamat, hobi,dan lain lain dimana kita harus menggunakan beberapa komponen ‘Edit’ . Masalah yang timbul adalah pada saat kita ingin pindah ke komponen Edit berikutnya, Karena Kebiasaan kita saat ingin pindah ke baris berikutnya adalah menggunakan tombol Enter, walaupun secara default sistem operasi windows sudah menyediakan tombol TAB untuk berpindah kekomponen selanjutnya


Untuk yang sudah terbiasa dengan tombol TAB, hal ini tidak menjadi masalah, naah untuk yang biasa menggunakan tombol Enter tentu saja ini menjadi suatu kesulitan tersendiri. Untuk itu disini saya mencoba memberikan sedikit tips agar kita bisa memfungsikan tombol Enter pada komponen Edit.

Caranya adalah memanfaatkan Even OnKeyDown pada Komponen Edit tersebut, jadi pada Even OnKeyDown kita definisikan kalau user menekan tombol Enter maka kursor akan pindah ke Komponen Edit Berikutnya, Salah satu cara yang paling sederhana adalah menggunakan Properti SetFocus ( Cara ini masih ada kelemahannya namun disini saya berikan contohnya untuk pemahaman saja ) dan berikutnya saya juga akan berikan cara yang lebih efektif.


Perhatikan Contoh Berikut:

Ketikan kode ini pada Even OnKeyDown
if Key=VK_Return then Edit2.SetFocus;
VK_Return adalah Tombol Enter, artinya Jika User Menekan Tombol Enter padasaat berada di Komponen Edit1 maka kursor akan pindah ke Komponen Edit2   ( Edit2.setfocus )
Cara ini tidak efektif jika kita menggunakan banyak komponen edit, karena kita harus selalu mendefinisikan tombol Edit berikutnya yang kita setFocus, Berikut adalah cara yang lebih efektif lagi,
Masukan kode berikut pada Even OnKeyDown



   if (key =VK_UP) then  perform(WM_NEXTDLGCTL,1,0);
   if (key =VK_RETURN) or (key =VK_DOWN) then  perform(WM_NEXTDLGCTL,0,0);

VK_UP adalah tombol Panah KeAtas
perform(WM_NEXTDLGCTL,1,0); adalah perintah untuk memindahkan kursor ke komponen diatasnya ( setfocus ke Komponen yang ada diatasnya / Sebelumnya )

VK_Down adalah Tombol Panah Ke Bawah
VK_Return adalah Tombol Enter
perform(WM_NEXTDLGCTL,0,0); adalah perintah untuk memindahkan kursor ke komponen dibawahnya
setfocus ke komponen selanjutnya.
Jadi dengan cara ini, jika kita menggunakan banyak komponen Edit, maka kita tidak perlu mendefinisakn focus pada setiap komponen, tetapi cukup hanya pada satu komponen saja, kemudian komponen yang lainnya mengikuti Even OnKeyDown dari Komponen Edit yang pertama

Selamat Mencoba
»»  READMORE...