Logo'da SQLINFO Kullanımı

Blog Image
08 Şubat 2025

Logo'da SQLINFO Kullanımı

_SQLINFO KULLANIMI

Logo Sqlinfo fonksiyonu kullanımı yeni başlayanlar için karmaşıktır. Peki bu Sqlinfo nedir? Sqlinfo ne için kullanılır? Logo Sqlinfo fonksiyonu, Logo raporlarında standart alanlar içerisinde olmayan bir bilgiyi veritabanı içerisinden çekmek için kullanılır. Rapor tasarımı yaparken Logo Sqlinfo fonksiyonu çok büyük öneme sahiptir.  Logo Rapor tasarımı için ilgili yazımı incelemek için tıklayın. Bu fonksiyon kimileri tarafından Logo sql info şeklinde yazılsa da aslında doğru kullanımı sqlinfo şeklindedir. Sqlinfo fonksiyonu ile bir rapora tanımlı alan getirebilirsiniz, Logo rapor üretici ile sıfırdan bir sorgu yazıp logo programı içerisine entegre edebilirsiniz. Logo Sqlinfo kullanımı sırasında temel olarak üç bölümden oluşur;

  1. Tablodaki kolon adı
  2. Tablo adı
  3. Sorgudaki koşul kısmı (where kolon adı = ”)

 

Rapor tasarımında en çok kullanılan fonksiyonlardan birisi olan _sqlinfo ile raporda yer alan standart alanlar yeterli olmuyorsa bu fonksiyon ile veritabanından istenilen bilgi rapora eklenebilir. Sqlinfo fonksiyonu üç adet bilgi ile çalışır; tırnak içerisinde ilk kısımda tablo kolonu, ikinci kısımda veri çekilecek tablo, üçüncü kısımda varsa koşul veya koşullar yazılır ve aralara virgül eklenir. Koşul kısmı genellikle satırdan gelen bilginin okunarak farklı tablodan referans çekilerek dinamik olarak getirilir.

Örnek Kullanım: _SQLINFO(“KOLON ADI”,”TABLO ADI”,”KOŞUL”)

Not: Sqlinfo ile dönen bilgi metin olduğundan koşul kısmında kullanılacak veri sayı ise str(), tarih ise datestr() kullanılarak metine çevrilmelidir.

Str(): Sayı olarak tanımlanmış alanı metin formatına çevirerek yazar.

Datestr(): Tarih olarak tanımlanmış alanı metin formatına çevirerek yazar.

 

Örnekler:

Satış fatura dökümü raporuna kdv oranı %18 olan satırların toplamını getiren tanımlı alanı yazınız.

Sql Sorgusu: SELECT SUM(VATAMNT) FROM LG_020_01_STLINE WHERE VAT=18 AND INVOICEREF= 47

Tanımlı Alan: _SQLINFO("SUM(VATAMNT)","LG_020_01_STLINE","VAT=18 AND INVOICEREF='"+STR(R1.logicalRef)+"'")

Malzeme fiş listesi raporuna stok kartındaki özel kod bilgisini getiren tanımlı alanı yazınız.

Sql Sorgusu: SELECT SPECODE FROM LG_020_ITEMS WHERE LOGICALREF= 20

Tanımlı Alan: _SQLINFO("CAPIBLOCK_CREADEDDATE","LG_020_CLCARD","LOGICALREF='"+STR(R1.logicalRef)+"'")

Cari hesap listesi raporuna cari hesap eklenme tarihini getiren tanımlı alanı yazınız.

Sql Sorgusu: SELECT CAPIBLOCK_CREADEDDATE FROM LG_020_CLCARD WHERE LOGICALREF= 4

Tanımlı Alan: _SQLINFO("CAPIBLOCK_CREADEDDATE","LG_020_CLCARD","LOGICALREF='"+STR(R1.logicalRef)+"'")

Not: Tanımlı alanın çok uzun olması durumunda bilgileri parçalayıp tek sqlinfo içerisinde birleştirmek gerekebilir.

Cari hesap ekstresine fatura ile ilişkili olan mahsup fişinin numarasını getiren tanımlı alanı yazınız.

Sql Sorgusu: SELECT E.FICHENO FROM LG_020_01_EMFICHE E WITH(NOLOCK) ,LG_020_01_INVOICE I WHERE I.ACCFICHEREF=E.LOGICALREF AND I.LOGICALREF= 12

Tanımlı Alan: _SQLINFO("E.FICHENO",[TABLO],"I.ACCFICHEREF=E.LOGICALREF AND I.LOGICALREF='"+STR(R5.logicalRef)+"'")

Tablo Adlı Alan: "LG_020_01_EMFICHE E,LG_020_01_INVOICE I"

Not: Sqlinfo fonksiyonundan dönen bilginin veri tipi her zaman metindir. Yapılan tanımlı alan matematiksel bir işleme sokulacaksa val() fonksiyonu kullanılarak veri tipi sayısal olarak çevrilebilir. Benzer senaryoda tarih veri tipine çevirebilmek için de date() fonksiyonu kullanılabilir.

Val(): Metin türünde yazılmış bir sayısal değeri sayı (integer) formatına çevirir.

Date(): Gün, ay ve yıl bilgisine göre değeri tarih formatına çevirir.

Örnek:

Cari hesap listesi raporunda cari hesap hareket miktarını sayı türünde getiren tanımlı alanı yazınız

Tanımlı Alan: VAL(_SQLINFO("COUNT(LOGICALREF)","LG_020_01_CLFLINE","CLIENTREF="+STR(R1.clientRef)+""))