Dizayn SQL Desteği ile ilgili detaylı bilgiye bu dokümandan ulaşılabilir.
SQL tipi, basım sırasında veri tabanından değer getirilmesi için kullanılır.
Örneğin;
"Müşteri Çekleri" kaydı sırasında "Cari Rapor Kodu", çekin verildiği bankaya ait şube kodu ve adının girilmesi için kullanılabilir. Bu bilgilerin dizayn ile basımı, Dizayn → Kayıt → Dizayn → Dizayn → Kalem Bilgileri → Tip → "Program" seçeneği kullanılarak yapılamaz. Bunun sebebi, "Cari Rapor Kodu" alanı için alan numarasının olmamasıdır. SQL seçeneği, basımın yapılmasını sağlar.
Yukarıdaki ekranda SQL seçeneğinin kullanımı yer alır. Bu örnekte, MCEK View’unda bulunan RAP_KOD alanının basımı gerçekleşir. Bu da "Cari Rapor Kodunun" tutulduğu alandır. SQL seçeneği ile TBLMCEK tablosu kullanılarak, aynı bilgi bastırılabilir.
Yapılan basım sonucu; Banka Kodu/Adı sütununa, çek kaydı sırasında "Cari Rapor Kodu" alanına girilen bilgi basılır.
SQL tipli alan kullanımında dikkat edilmesi gereken konular;
- Cümlede, “Select” komutundan sonraki kısmın yazılması gerekir. Select komutu, yazılacak cümlenin başına program tarafından otomtik olarak getirilir.
- Yazılan cümle sonucu tek bir değerin dönmesi gerekir. Bunun için de kısıt verilmesi gerekebilir.
Çek Alındı Bordrosunda, tek bir çekin olduğu varsayıldığında ve kısıt olarak da çek numarası verildiğinde;
Çek Alındı bordrosunda birden fazla çek olması halinde, her çeke ait "Cari Rapor Kodu" farklı olabileceği için, örnekte verilen cümle istenen sonucu getirmez. Çünkü, bu cümleye göre sadece “B00000000000051” numaralı çek için girilen "Cari Rapor Kodu" bastırılabilir (SC_NO=’B00000000000051’).
Bunun gibi kısıt verilecek alanın değişken olduğu durumlarda, fonksiyon kullanılması gerekir. Dizaynda kullanılabilecek 3 adet fonksiyon vardır.
Bunlar;
VT_Sayisal(),
VT_Karakter() ve
VT_Tarih() şeklindedir.
VT_Sayisal(): Sayısal kısıt vermek için kullanılır.
VT_Karakter(): Alfa sayısal kısıt vermek için kullanılır.
VT_Tarih(): Tarih kısıdı vermek için kullanılır.
Yukarıdaki ekranda görüntülenen "Fonksiyon Ekle" seçeneği kullanıldığında ("Karakter" fonksiyonu gibi), seçilen fonksiyon program tarafından ekrana getirilir.
Fonksiyon seçildikten sonra, bu fonksiyonun hangi alana kısıt verilmesi için seçildiğinin belirtililmesi gerekir. Örnekte, alındı bordrosundaki her çek için girilen "Cari Rapor Kodunun" bastırılması amacı ile, kısıt olarak çek numarasının kullanılması gerekir. Bu durumda, çek numarasının dizayn alan numarasının, fonksiyonun parametresi olarak belirtilmesi gerekir.
Alındı bordrosunda çek numarası basımı 6000 numaralı alan ile yapılır. Ayrıca, kısıt olarak belirlenen "Çek Numarası" alanı alfa sayısal olduğu için, örnekte kısıt VT_Karakter({6000}) olarak girilmiştir. SQL cümlesinin girişi sırasında, mevcut dizayn alanlarının hepsine, farenin sağ tuşuile ekrana gelen "Saha Rehberi" seçeneğinden ulaşılır.
Yukarıdaki tanımlama ile, bordrodaki çek numaraları değiştikçe, program MCEK view’unda ilgili çeke ait satırın "Cari Rapor Kodunu" basar.
VT_Sayisal() ve VT_Tarih() fonksiyonlarının kullanımı da VT_Karakter’de olduğu gibidir. Tek fark, fonksiyonlarda girilecek alan numarasına sahip sahanın sayısal ya da tarih formatında olmasıdır.