Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Örneğin;

"Müşteri çekleri Çekleri" kaydı sırasında "Cari Rapor Kodu", çekin bankasına verildiği bankaya ait şube kodu ve adının girilmesi için kullanılıyor olabilirkullanılabilir. Bu bilgilerin dizayn ile basımı, dizayn tanımlamada tip sahasında Program seçeneği kullanılarak yapılamamaktadırDizayn → Kayıt → Dizayn → Dizayn → Kalem Bilgileri → Tip → "Program" seçeneği kullanılarak yapılamaz. Bunun sebebi de , "Cari Rapor Kodu sahası " alanı için alan numarasının olmamasıdır. Ancak SQL seçeneği ile basım mümkün hale gelmiştir, basımın yapılmasını sağlar.


Image Added


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

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


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

  • Cümlede, “Select” komutundan sonraki kısım yazılmalıdırkısmın yazılması gerekir. Select komutu, yazılacak olan cümlenin başına program tarafından getirilecektirotomtik olarak getirilir.
  • Yazılan cümle sonucunda sonucu tek bir değer değerin dönmesi gerektiğidirgerekir. Bunun için de kısıt verilmesi gerekebilir.

Yukarıdaki örnekte alındı bordrosunda Çek Alındı Bordrosunda, tek bir çek çekin olduğu varsayılmış varsayıldığında ve kısıt olarak da bu çekin numarası verilmiştir. Ancak alındı çek numarası verildiğinde;

Çek Alındı bordrosunda birden fazla çek olması halinde, her çeke ait "Cari Rapor Kodu" farklı olabileceğindenolabileceği için, bu örnekte verilen cümle istenen sonucu getirmeyecektirgetirmez. Çü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 alanın değişken olduğu durumlarda, fonksiyon kullanılması gerekmektedirgerekir. 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 Alfa sayısal kısıt vermek için kullanılır.

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

Info
Bu fonksiyonlara

...

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


Yukarıda gösterilen fonksiyon ekle Image Added


Yukarıdaki ekranda görüntülenen "Fonksiyon Ekle" seçeneği kullanıldığında (örneğin karakter "Karakter" fonksiyonu gibi), seçilen fonksiyon program tarafından getirilecektirekrana getirilir.


Image Added


Fonksiyon seçildikten sonra, bu fonksiyonun hangi alana kısıt verilmesi için çağrıldığı belirtilmelidir. Örneğimizdeseçildiğinin belirtililmesi gerekir. Örnekte, alındı bordrosundaki her çek için girilen "Cari Rapor Kodunun" bastırılması amaçlandığındanamacı ile, kısıt olarak çek numarası kullanılmalıdırnumarasının kullanılması gerekir. Bu durumda, çek numarasının dizayn alan numarasınumarasının, fonksiyonun parametresi olarak belirtilmelidirbelirtilmesi gerekir.


Image Added


Alındı bordrosunda çek numarası basımı 6000 numaralı saha alan ile yapılmaktadıryapılır. Ayrıca, kısıt olarak belirlenen çek numarası sahası "Çek Numarası" alanı alfa sayısal olduğundanolduğu için, örnekte kısıt VT_Karakter({6000}) olarak girilmiştir. Sql cümlesi SQL cümlesinin girişi esnasındasırasında, mevcut dizayn alanlarının hepsine, sağ klikte bulunan farenin sağ tuşuile ekrana gelen "Saha Rehberi" seçeneğinden ulaşılabilirulaşılır.

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

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ğidirolmasıdır.