Logo ERP programlarında bulunan form tasarımlarına, standart olarak eklenen alanların dışında, veritabanındaki herhangi bir veriyi getirmek için sqlinfo fonksiyonu kullanılır. Bu fonksiyon ile veritabanında bulunan herhangi bir veri Logo Go3, Logo Tiger3 veya Logo Tiger3 Enterprise ürünlerindeki form tasarımlarına getirilebilir.
Sqlinfo Nasıl Yazılır ?
Sqlinfo fonksiyonda temelde 3 ana kısımdan oluşur ve şu formatta yazılır: _SQLINFO(“Alan”,”Tablo”,”Şart”)
- Alan: SQL Serverda, verinin tutulduğu kolonun adı. (ÖRN: CLCARD tablosundaki DEFINITION_ alanı)
- Tablo: SQL Serverda, verinin çekileceği tablonun adı. (ÖRN: LG_001_CLCARD)
- Şart: İstenilen verinin gelmesi için gerekli şartlar. (ÖRN: CANCELLED=0 veya CARTYPE<>22)
_SQLINFO(“SPECODE”,”LG_001_CLCARD”,”CARDTYPE=3″) Bu formül ile kart türü “Alıcı+Satıcı” olan cari hesapların Özel Kod alanları listelenebilir.
Yukarıdaki formül aslında SQL Server da şu sorguyu çalıştırır
SELECT SPECODE FROM LG_001_CLCARD WHERE CARDTYPE=3
Bu nedenle, sqlinfo formülü oluşturmadan önce sorguyu SQL Server üzerinde hazırlayarak, doğruluğundan emin olduktan sonra formüle çevirebiliriz.
Sqlinfo ile Tanımlı Alan Nasıl Eklenir ?
Program içerisinde bulunan “Cari Hesap Listesi” tasarımına, cari hesap kartlarına tanımlanan ödeme planı bilgisini getirecek sqlinfo fonksiyonunu yazalım.
- Finans –> Cari Hesap Raporları –> Cari Hesap Listesi seçilerek rapor ekranı açılır.
- Değiştirilmek istenen tasarım üzerinde sağ tuş –> değiştir diyerek içerisine girilir.
-
- Açılan form tasarımı penceresinin üst kısmındaki “Tanımlı Alanlar” butonuna tıklanır ve açılan pencerede sağ tuş –> ekle denir.
- Tanımlı alan ekleme penceresindeki türü kısmı “Metin”, adı kısmı “Ödeme Planı” yazıldıktan sonra formülü kısmına tıklanır.
-
- Formül kısmına aşağıdaki formül yazılır
_SQLINFO(“DEFINITION_”,”LG_001_PAYPLANS”,”LOGICALREF='”+STR(R1.paymentRef)+”‘”)Ödeme planı açıklamaları PAYPLANS tablosunda tutulduğu için ve CLCARD tablosunun PAYMENTREF değeri, PAYPLANS tablosunun LOGICALREF değerine eşit olduğu için yukarıdaki kısımda buna uygun bir formül ürettik.
- Oluşturulan tanımlı alan tasarıma alan olarak, başlık ve satır şeklinde eklenir.
- Rapor çalıştırılarak ilgili alanın raporun ekran tasarımına geldiği görülür.
Logo SQLINFO Örnekleri
Cari Hesap Listesi raporunda Ödeme plan kodunun yanında Ödeme plan açıklamasının raporlanması.
_SQLINFO(“DEFINITION_”,”LG_003_PAYPLANS”,”CODE=’”+[Ödeme plan kodu]+”‘”)
(SELECT DEFINITION_ FROM LG_003_PAYPLANS WHERE CODE=’P.01’)
Cari Hesap Listesi raporunda C/H Özel kodunun yanında C/H Özel kod açıklamasının raporlanması.
_SQLINFO(“DEFINITION_”,”LG_003_SPECODES”,”CODETYPE=1 AND SPECODE=’”+[Cari hesap özel kodu]+”‘”)
(SELECT DEFINITION_ FROM LG_003_SPECODES WHERE CODETYPE=1 AND SPECODE=’S01’)
Genel Amaçlı Raporlar içerisinde 100 Kasa hesabı’ nın Hareket Borç toplam bilgilerine ulaşmak.
VAL(_SQLINFO(“SUM(S.DEBIT)”,”LG_003_EMUHACC AS H, LG_003_02_EMFLINE AS S”,”H.LOGICALREF=S.ACCOUNTREF AND H.CODE=’100′”))
(SELECT SUM(S.DEBIT) FROM LG_003_EMUHACC AS H, LG_003_02_EMFLINE AS S
WHERE (H.LOGICALREF=S.ACCOUNTREF AND H.CODE=’100′))
Seri / Lot Envanter raporunda Son Kullanım tarihinin listelenmesi
Aşağıdaki alanlar tek tek tanımlı alan yapıldıktan sonra
[MALZ] = R1.logicalRef (Türü = Sayı )
[LINE] = R2.logicalRef (Türü = Sayı )
[LOT] = R4.logicalRef (Türü = Sayı )
(Türü = Metin)
_SQLINFO(“EXPDATE”,”LG_003_02_SLTRANS”,”STTRANSREF=”+STR([LINE])+” AND ITEMREF=”+STR([MALZ])+” AND SLREF=”+STR([LOT])+””)
ÖNEMLİ NOT:
- Sqlinfo formülü ile eklenen tüm alanlar STRING yani metin tipindedir. Eğer sayısal bir veri çekilmek isteniyor ise VAL() fonksiyonu kullanılmalıdır. (ÖRN: VAL(_SQLINFO(“CARDTYPE”,”LG_001_PAYPLANS”,”LOGICALREF='”+STR(R1.paymentRef)+”‘”))