You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Sql tipi, basımda veri tabanından değer getirilmesi için kullanılmaktadır. Bunu bir örnek ile açıklayalım;

Müşteri çekleri kaydı sırasında Cari Rapor Kodu, çekin bankasına ait şube kodu ve adının girilmesi için kullanılıyor olabilir. Bu bilgilerin dizayn ile basımı, dizayn tanımlamada tip sahasında Program seçeneği kullanılarak yapılamamaktadır. Bunun sebebi de Cari Rapor Kodu sahası için alan numarasının olmamasıdır. Ancak SQL seçeneği ile basım mümkün hale gelmiştir.

Yukarıdaki ekranda Sql seçeneğinin kullanımı gösterilmiştir. Bu örnekte Mcek View’unda bulunan RAP_KOD sahasının basımı gerçekleşecektir. Bu da Cari Rapor Kodunun tutulduğu sahadır. Sql seçeneği ile, TBLMCEK tablosu kullanılarak da aynı bilgi bastırılabilir.

Yapılan basım sonucunda, Banka Kodu/Adı sütununa çek kaydı sırasında Cari Rapor Kodu sahasına girilen bilgi basılmıştır.

Sql tipli saha kullanımında dikkat edilmesi gereken konular;

  • Cümlede “Select” komutundan sonraki kısım yazılmalıdır. Select komutu, yazılacak olan cümlenin başına program tarafından getirilecektir.
  • Yazılan cümle sonucunda tek bir değer dönmesi gerektiğidir. Bunun için de kısıt verilmesi gerekebilir.

Yukarıdaki örnekte alındı bordrosunda tek bir çek olduğu varsayılmış ve kısıt olarak da bu çekin numarası verilmiştir. Ancak alındı bordrosunda birden fazla çek olması halinde, her çeke ait Cari Rapor Kodu farklı olabileceğinden, bu örnekte verilen cümle istenen sonucu getirmeyecektir. Çü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 sahanın değişken olduğu durumlarda, fonksiyon kullanılması gerekmektedir. 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(): Alfasayısal kısıt vermek için kullanılır.

VT_Tarih(): Tarih kısıtı vermek için kullanılır.

Bu fonksiyonlara Sql cümlesinin yazıldığı alanda sağ klik yapılarak ulaşılabilir.

Yukarıda gösterilen fonksiyon ekle seçeneği kullanıldığında (örneğin karakter fonksiyonu), seçilen fonksiyon program tarafından getirilecektir.

Fonksiyon seçildikten sonra bu fonksiyonun hangi alana kısıt verilmesi için çağrıldığı belirtilmelidir. Örneğimizde, alındı bordrosundaki her çek için girilen Cari Rapor Kodunun bastırılması amaçlandığından, kısıt olarak çek numarası kullanılmalıdır. Bu durumda, çek numarasının dizayn alan numarası, fonksiyonun parametresi olarak belirtilmelidir.

Alındı bordrosunda çek numarası basımı 6000 numaralı saha ile yapılmaktadır. Ayrıca, kısıt olarak belirlenen çek numarası sahası alfa sayısal olduğundan, örnekte kısıt VT_Karakter({6000}) olarak girilmiştir. Sql cümlesi girişi esnasında, mevcut dizayn alanlarının hepsine, sağ klikte bulunan Saha Rehberi seçeneğinden ulaşılabilir.

Yukarıdaki tanımlama ile, bordrodaki çek numaraları değiştikçe, program MCEK view’unda ilgili çeke ait satırdaki Cari Rapor Kodunu basacaktır.

VT_Sayisal() ve VT_Tarih() fonksiyonlarının kullanımı da VT_Karakter’de olduğu gibidir. Tek fark, fonksiyonlarda girilecek olan alan numarasına sahip sahanın sayısal ya da tarih formatında olması gerektiğidir.