İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL
Trendlerdeki Yazı

Logo Sqlinfo ile Tanımlı Alan Ekleme

Logo Sqlinfo ile Tanımlı Alan Ekleme
logo sqlinfo kullanımı
14

Logo sqlinfo formülü, ticari programda kullanılan rapor ve form tasarımlarına, sql sorguları kullanılarak farklı tablolardan veri çekmek için kullanılır. Yani, rapor tasarımında olmayan bir alanı sqlinfo kullanarak o rapor tasarımına ekleyebilmeye yarar.

Sqlinfo Formülü Nasıl Yazılır ?

Logo sqlinfo formülünün standart bir kalıbı vardır ve şu şekildedir:   _SQLINFO(“KolonAdı“,”TabloAdı“,”Şartlar“)

  • İlk tırnak içerisine sqlinfo ile tasarıma eklemek istediğimiz verilerin bulunduğu sütunun adı yazılır.
  • İkinci tırnak içerisine bu sütunun bağlı olduğu tablonun adı yazılır.
  • Üçüncü ve son tırnak içerisine de veriyi doğru çekebilmek için gereken şartlar yazılır.

Örneğin; Stok->Durum Bilgileri->Ayrıntılı Satış Raporu tasarımına Fatura Numarası alanı eklemek istiyoruz. İzleyeceğimiz adımlar şu şekilde olmalı;

  • Fatura Numarası alanına erişmek için faturalar tablosuna gitmemiz lazım. Logo veritabanında faturaların tutulduğu tablonun ismi LG_XXX_XX_INVOICE tablosudur. Buradaki XXX çalışılan firma numarasını XX firmaya ait dönem numarasını belirtir.
  • INVOICE tablosunda fatura numarasının tutulduğu kolon adı ise FICHENO kolonudur. KolonAdı ve TabloAdı bilgilerini bu şekilde tespit etmiş olduk.
  • Bu bilgiye, SQL Server Management Studio üzerinden ulaşmaya çalışsaydık sorgumuz şu şekilde olacaktı;

    [sql]SELECT FICHENO FROM LG_XXX_XX_INVOICE[/sql]

  • Sorguyu yukarıdaki şekilde çalıştırdığımızda, bize tüm faturaların fatura numaralarını listeleyecektir. Bizim istediğimiz ise, rapordaki filtrelere uyan faturaların çekilmesi. Bu yüzden bir şart tanımı yapmamız gerekir.
  • Şart tanımını, satırdaki malzemelerin hareketlerinin tutulduğu LG_XXX_XX_STLINE tablosu üzerinden yapacağız. 2 tablo arasında bağlantı kurmak için STLINE daki INVOICEREF kolonu ile INVOICE daki LOGICALREF kolonlarını birbirine eşitleyeceğiz. Aslında bu işlemin adı SQL JOIN işlemi. Bu işlemden sonra SQL üzerindeki sorgumuz aşağıdaki hali almış olacak.

    [sql]SELECT FICHENO FROM LG_XXX_XX_INVOICE INV LEFT JOIN LG_XXX_XX_STLINE STL ON INV.LOGICALREF=STL.INVOICEREF[/sql]

  • Sql üzerinde istediğimiz veriye ulaşacak sorguyu yazdıktan sonra bunu sqlinfo formülüne uyarladıktan sonra rapor tasarımına alan olarak ekleyebiliriz. Sorgunun sqlinfo formülüne uygun hali;

    [sql]_SQLINFO("FICHENO","LG_001_01_INVOICE","LOGICALREF=’"+STR(R7.invoiceRef)+"’")[/sql]

    şeklinde olacaktır.

Sqlinfo ile Tanımlı Alan Nasıl Eklenir ?

  • Ayrıntılı Satış Raporu ekranını açtıktan sonra kullanıcı rapor tasarımı kutucuğu işaretlenir ve listeden ilgili tasarım üzerinde sağ tuş değiştir diyerek tasarımın dizayn penceresi açılır.
    logo sqlinfo kullanımı

     

  • Üst menüden tanımlı alanlar seçilir ve açılan ekranda sağ tuş ekle diyerek yeni bir tanımlı alan eklenir.
    logo sqlinfo kullanımı-2

     

  • Oluşturulan sqlinfo formülü, formül alanına yazılır ve kaydedilerek ilgili forma veri alanı olarak eklenir.
    logo sqlinfo kullanımı-3

     

ÖNEMLİ NOTLAR

  • SQLINFO ile veritabanından çekilen değerler her zaman STRING yani Metin türündedir. Bu yüzden tanımlı alan eklerken Türü Metin olarak seçilir.
  • SQLINFO ile çekilen değerin sayı olarak gelmesi isteniyorsa formülün başına VAL() eklenir. Örn: VAL(_SQLINFO(“FICHENO”,”LG_001_01_INVOICE”,”LOGICALREF='”+STR(R7.invoiceRef)+”‘”))

 

Logo SQLINFO Örnekler

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])+””)

 

SQLINFO kullanımı ile alakalı sorun yaşamanız durumunda yazı altındaki yorum bölümünden veya iletişim sayfamızdaki bilgilerden bizlere ulaşıp destek alabilirsiniz.

Yazar Hakkında

Bilgisayarla 2001 yılında tanıştım. 2005 yılında ilk web sitemi kurdum ve o saatten sonra bu sanal dünyadan hiç kopmak istemedim. Web site kurulumu, wordpress, php, html, css konularında kendimi geliştirdim. 2017 yılında LOGO Yazılım ile tanıştım. Aynı yıl sertifikalı Logo Sistem Uzmanı oldum. MSSQL ve C# konusunda kendimi geliştirip müşteriye özel raporlamalar yaptım.

Yorum Yap

Yorumlar (14)

Popüler Yorumlar
  1. Abdullah Bey merhaba,
    Browserlara veri çekme işlemini sqlinfo ile değil arayüz uyarlama işlemi ile yapabilirsiniz.

  2. 1 sene önce

    Merhabalar,
    sqlinfo ile malzeme veya cari browserına veritabanından herhangi bir tablodan bilgi getirebilirmiyiz.

Yapılan Yorumlar
  1. 1 sene önce

    Merhabalar,
    sqlinfo ile malzeme veya cari browserına veritabanından herhangi bir tablodan bilgi getirebilirmiyiz.

  2. tahsilat yada ödeme fişine cari hesap bakiyesi nasıl eklenir acaba ?
    yardımcı olursanız sevinirim.
    kolay gelsin

  3. Stok resimlerini raporlarda listelemek için bir çalışmanız varmı?

    Stok Resimleri LG_FFF_YY_PERDOC tablosunda kayıtlı olduğunu gördüm fakat binary formatında onları nasıl getirebiliriz?

    _SQLINFO (“LDATA”, “LG_099_02_PERDOC”, “INFOREF='”+STR(R21.stockRef)+”‘”)
    Bu şekilde yaptığımda dönen değer ####### şeklinde geliyor. Tanımlı alanlarda metin, sayı, tarih ve parasal değer var, binary yada başka bir resim dosyası getirebileceğim alan yok. Bu konuda bir çalışmanız var mı?

    • Selçuk Bey merhaba,
      Stok resimlerini mevcut tasarıma zaten ekleyebiliyorsunuz. Ekstradan sqlinfo ile getirmenize gerek yok. Toolbardan resim kutusunu seçmeniz yeterli.

  4. merhaba
    bir firmada işe girdim fakat logoya hakim değilim kendi emeğimle bir yazılım tasarlayıp yazdım fakat logo nun kendi sql inde sipariş numarasının karşılığı olarak cari kodu bulmam gerekiyor bulduğum cari kodlada cari hesap ın borç alacak olarak görüntüleyip alacağımızı aldı isek cari hesabını kapatıcam fakat sql e fazla hakim değilim sipariş numarasından ne yaptıysam yapayım bir türlü cari koda ulaşamıyorum logo üzerinde sorguladığımda çıkıyor fakat ben gerekli sorguyu beceremiyorum yardımcı olun lütfen

    • Bayram Bey merhaba,
      Öncelikle hayırlı olsun yeni işiniz. Siparişten cari hesaba gitmek istiyorsanız şu şekilde bir sorgu yazabilirsiniz.
      SELECT CLC.CODE AS CARI_KOD, ORF.FICHENO AS SIPARIS_NO FROM LG_001_01_ORFICHE ORF LEFT JOIN LG_001_CLCARD CLC ON CLC.LOGICALREF=ORF.CLIENTREF
      Sipariş tablosundaki CLIENTREF alanı Cari kart tablosundaki LOGICALREF alanına eşittir. 2 tablodan istediğiniz alanları bu şekilde çekebilirsiniz.

  5. Merhaba Logo Go3 için Fatura Yetki Kodunu nasıl tanımlı alanlara ekleme yapabilirim?
    _SQLINFO(“CYPHCODE”,”LG_001_05_INVOICE”,
    Ben kestiğim resmi faturalara Yetki koduna R harfi koyup filtreliyorum. Bunu cari ekstre raporunda da filtreleyerek görmek istiyorum..

    • Soner Bey merhaba,
      Bu işlem için sqlinfo yazmanıza gerek yok. Cari hesap ekstre tasarımındaki standart alanlardan yetki kodu alanını kullanabilirsiniz.

      • Feyyaz Bey merhaba,
        Dönüşünüz için teşekkür ederim..
        Benim görmek istediğim yer Ekstre ana şablonunda ilk filtreleme ekranındaki sol bölüme bunu koyarak filtre yapmak.
        Ben yaptığım işlemi anlatayım hata yaptığım nokta nerede acaba.
        Ben Tanımlı Alan oluşturdum. Formülden Standart alandan Yetki kodu seçtim formül [Yetki Kodu] olarak geldi.
        Sonra tanımlı filtrelerden METİN==>>Bağlantı Standart Alan ve Yetki kodu olarak seçtim. Bana halen fatura içinde yetki kodu R olmayanları da ekstre yazdırma alanında gösteriyor.
        Birde tanımlı alanda tanımlı alan ==>Veri Alanı seç =>>> Invoıce==>> cyphCode seçtim onunda formülü R5.cyphCode olarak geldi ama oda yazdırma alanında R olmayan faturaları getiriyor. Yani ben Rapor ekranında değil ana filtrelemede Fatura yetki kodunu seçmem gerekiyor.
        Bunu yapma sebebim bazen firma satınalma bazı faturaları geç kestiriyor ama muhasebe departmanı resmi ekstre istediği için sapla saman birbirine karışıyor….
        İlginize teşekkür ederim.

  6. 9 ay önce

    Feyyaz Bey merhaba
    Ben satış sipariş irsaliye ve faturalarda hem adet hemde kg tanımlı alan yapmaya çalışıyorum. sqlınfo ile kurduğum formülü bir türlü çalıştıramadım. yardımcı olabilir misi
    niz ?

    • Öznur Hanım merhaba,
      Anladığım kadarıyla, ana birim setine bağlı alt birimi de tasarıma getirmek istiyorsunuz.

      [sql]
      select
      I.CODE MALZ_KODU,
      F.CODE BIRIM_SETI_KODU,
      L.CODE BIRIM_KODU
      from LG_001_ITEMS I LEFT JOIN LG_001_UNITSETF F ON F.LOGICALREF=I.UNITSETREF
      LEFT JOIN LG_001_UNITSETL L ON L.UNITSETREF=F.LOGICALREF[/sql]
      buradan yola çıkarak bir sqlinfo sorgusu üretebilirsiniz. Birim Setleri UNITSETF, Birim setine bağlı birimler de UNITSETL tablosunda tutuluyor.

  7. 8 ay önce

    Borç alacak durum raporuna en son tahsilat ne zaman ve ne kadar yapılmış bunu ekleme şansımız varmııdır.İlginiz için şimdiden teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir