C# SQL GET LOGICALREF

        public string GET_LOGICALREF(string TABLENAME, string LOGICALREF, string WHEREFIELDNAME, string WHEREDATA) {
            SqlDatabase sqlSERVICEDB;
            sqlSERVICEDB = new SqlDatabase(M.CONSTR_BMS);
            DataTable DATA = sqlSERVICEDB.ExecuteDataSet(new SqlCommand("SELECT TOP 1 " + LOGICALREF + " FROM " + TABLENAME + " WHERE " + WHEREFIELDNAME + "='" + WHEREDATA + "' ORDER BY LOGICALREF DESC")).Tables[0];
            if (DATA.Rows.Count == 0) {
                return "";
            }
            return DATA.Rows[0][0].ToString();
        }

IIS UZERİNDEN LOGO OBJECTSTE YETKİLENDİRME HATASI VARSA

HATA:Retrieving the COM class factory for component with CLSID {72DB412A-6BF5-4920-A002-2AAC679951DF} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).

ÇÖZÜM:WEB.CONFIGE SYSTEM.WEB IN ALTI aşağısı gibi olur ve iis stop start yapılır

  <system.web>
    <compilation targetFramework="4.7.2" />
    <httpRuntime targetFramework="4.7.2" />
    <identity impersonate="true" userName="domain\username" password="password"/>
  </system.web>

LOGO OBJECT DESIGNER – LOD NOTLAR

İlk çalışmada project-options-team membersi aşağıdaki şekilde yap şifre sorarsa logo

tasarımda yavaş hareket et yoksa arka planda başka objectler oluşturmakta

lod combobox bilgilerini burda tutar (20 COMBOBOXDUR) içeriği kodlanmıştır : select * from L_CDBTMP WHERE INFOTYPE=20

lodda tablo yaratıldığında sistemden firmalardan ilgili firmaya sağ tıklayıp uyarlama tablolarını sil ve oluştur yapılmalıdır

lod tasarımlarını logoda görebilmek için rol tanımlanıp rol üzerinden lod çalışmaları eklenip istenilen kullanıcıya o rol tanımlanmalıdır

lodda yapılan tabloları databasede LG_XT olarak yaratılır

LOD EXTENDED FORM ÇAĞIRMA

Sub ButtonClick(ctrl as String)
        if ctrl="LButton1" then
'Malzeme Kartındaki Ürünün Logicalrefini alır
       ' AppTables[1].GetIntFieldR(RecHandle,"LOGICALREF",intLref)
       ' warn(intLref)
'Custom Formu Açar        
        CreateQForm("CUSTENTR2", 1,3, 1, CstForm)
        CstForm.ShowForm(1)
        end if
End Sub
Sub FormShow()
        'TableName=Application.GetTableName(",Application.CompanyId,Application.FiscPerdId)
        mgrid="LGridList1"
        SqlTxt="select DISTINCT TARIH,SONSATINALMAFIYATI,INDIRIMLIFIYAT,KDVDAHILMALIYET,NMALIYET,PROMOSYONMALIYETI,SATISFIYATI from BM_XT001_120"
        CreateQuery(qry)
        qry.SetSqlText(SqlTxt)
        qry.ExecuteDirect()
        i=0
         _breakpoint
        if qry.Ready=1 then
         res=qry.First()
         do while res=1
         ' GetFieldValue(fieldOrder as Integer, valTyp as Integer, value as Variant)
         'Order of the field in the select statement valType(in) Type of the field 1 for INTEGER 2 for DATE (Logo format) 3 for FLOAT 4 for
         'TEXT value(out) Value of the field Example Qry.GetFieldValue(1, 1, logRef)
          qry.GetFieldValue(1,2,TARIH)
          qry.GetFieldValue(2,3,SONSATINALMAFIYATI)
          qry.GetFieldValue(3,3,INDIRIMLIFIYAT)
          qry.GetFieldValue(4,3,KDVDAHILMALIYET)
          qry.GetFieldValue(5,3,NMALIYET)
          qry.GetFieldValue(6,3,PROMOSYONMALIYETI)
          qry.GetFieldValue(7,3,SATISFIYATI)
          SetMGridRow(mgrid,i)
          InsertGridRow(mgrid,1)
          SetCellInt(mgrid,i,10000,TARIH)
          SetCellFloat(mgrid,i,10001,SONSATINALMAFIYATI)
          SetCellFloat(mgrid,i,10002,INDIRIMLIFIYAT)
          SetCellFloat(mgrid,i,10003,KDVDAHILMALIYET)
          SetCellFloat(mgrid,i,10004,NMALIYET)
          SetCellFloat(mgrid,i,10006,PROMOSYONMALIYETI)
          SetCellFloat(mgrid,i,10007,SATISFIYATI)
          InvalidateGrid(mgrid)
          RefreshControl(mgrid,1)
          i=i+1
          res=qry.next() 
         loop

        end if 
End Sub
'Sağ tuş tetikleme işlemini DoPopupAction method unu kullanarak gerçekleştirebilirsiniz. 
'Aşağıdaki şekilde kullanımı mevcuttur 1. parametresi PopupMenu ismi 2. parametre seçeneğin index bilgisi.
DoPopupAction("StBrwPopupMenu", 14)
Sub FormShow()
        MNAddItem("OrdBrwPopup","-",-10001)
        MNAddItem("OrdBrwPopup","FlashTech Gönder",1001) 
        MNAddItem("OrdBrwPopup","FlashTech Sipariş İptal Et",1002)
        MNAddItem("OrdBrwPopup","-",-1003)
        MNAddItem("OrdBrwPopup","Dolum Fişi Yazdır",1003)
        MNAddItem("OrdBrwPopup","-",-1004)
        MNAddItem("OrdBrwPopup","Mühür Girişi",1004)
End Sub

Sub PopupMenuClick(ctrl as String, index as Integer, result as Integer)
        if ctrl="OrdBrwPopup" and index=1001 then
        warn("FlashTech Gönder")
        end if
End Sub


‘ Gridde ilgili rowun recidsini alma

DBGGetRecAdr(“OrdFicheDataGrid”,ITR)

'GRIDDEN ILGILI ROWUN LOGICALREFINE GORE TABLOSUNDA BILGI CEKME
Sub FormShow()
        MNAddItem("OrdBrwPopup","-",-10001)
        MNAddItem("OrdBrwPopup","FlashTech Gönder",1001) 
        MNAddItem("OrdBrwPopup","FlashTech Sipariş İptal Et",1002)
        MNAddItem("OrdBrwPopup","-",-1003)
        MNAddItem("OrdBrwPopup","Dolum Fişi Yazdır",1003)
        MNAddItem("OrdBrwPopup","-",-1004)
        MNAddItem("OrdBrwPopup","Mühür Girişi",1004)
End Sub

Sub PopupMenuClick(ctrl as String, index as Integer, result as Integer)
        if ctrl="OrdBrwPopup" and index=1001 then
        'ILGILI GRID ROWUN LOGICALREFINI ALIR
        DBGGetRecAdr("OrdFicheDataGrid",ORDFICHEREF)
        AppTables[12].SearchByRef(ORDFICHEREF) '12:ORFICHE
        AppTables[12].GetTxtField("DOCTRACKINGNR", DOCTRACKINGNR)
        warn(DOCTRACKINGNR)  
        end if
End Sub

 

set popup menu to grid SetPopup(“LGridList1″,”LPopupMenu1”)

lod hariciye firma bilgilerini gönderme;

Lodda logo viewi üzerinden işlem yapma:

MyQryTable = Application.GetViewName(10, Application.CompanyId, Application.FiscPerdId) ‘GNTOTCL

1 : LV_FFF_PP_BNFLINE  

2 : LV_FFF_PP_CLCARD  

3 : LV_FFF_PP_CLEKSTRE  

4 : LV_FFF_PP_CLFLINE  

5 : LV_FFF_PP_CSCARD  

6 : LV_FFF_PP_EMUHTOT  

7 : LV_FFF_PP_EMUHTOTV1  

8 : LV_FFF_PP_EMUHTOTV2  

9 : LV_FFF_PP_EMUHTOTV3  

10 : LV_FFF_PP_GNTOTCL  

11 : LV_FFF_PP_GNTOTST  

12 : LV_FFF_PP_GNTOTVRNT  

13 : LV_FFF_PP_ORFLINE  

14 : LV_FFF_PP_STINVENS  

15 : LV_FFF_PP_STINVTOT  

16 : LV_FFF_PP_STLINE  

17 : LV_FFF_PP_TRDGRP  

18 : LV_FFF_PP_VRNTINVENS  

19 : LV_FFF_PP_VRNTINVTOT  

20 : LV_FFF_CLCARD  

21 : LV_FFF_ITEMS  

22 : LV_FFF_ORDER_ITEMS  

23 : LV_FFF_ORDER_SERVICE  

24 : LV_FFF_SALES_ITEMS  3/3

25 : LV_FFF_SALES_ITEMS_TOTAL  

26 : LV_FFF_SALES_SERVICE  

27 : LV_FFF_SALES_SERVICE_TOTAL

Debug modu(https://docs.logo.com.tr/public/wua/logo-object-designer/lod-kuetuephanesi/lod-quilt):

1 – Object Designer uygulamasında Project Options > Release sekmesine gidin.

2 – Project configuration > Debug seçeneğini işaretleyin.

3 – Debugging info > Save Debugging info seçeneğini işaretleyin.

4 – Unity debug modu için Unity.exe /qd girin.

LOGO INVDEFDE OLMAYAN ITEMLERI SQLDEN EKLEME

INVDEF TABLOSU : URUNLERIN GENEL OLARAK AMBAR BAZLI NEGATIF SEVIYEYE DUSUP DUSMEMESININ BILGISINI ICERIR

INSERT INTO LG_101_INVDEF (INVENNO,ITEMREF,MINLEVEL,MAXLEVEL,SAFELEVEL,LOCATIONREF, PERCLOSEDATE,
ABCCODE,MINLEVELCTRL,MAXLEVELCTRL,SAFELEVELCTRL,NEGLEVELCTRL,IOCTRL,VARIANTREF,OUTCTRL)  
SELECT  W.NR INVENNO, I.LOGICALREF ITEMREF, 0 MINLEVEL,0 MAXLEVEL, 0 SAFELEVEL, 0 LOCATIONREF, NULL PERCLOSEDATE,
0 ABCCODE, 0 MINLEVELCTRL, 0 MAXLEVELCTRL, 0 SAFELEVELCTRL, 0 NEGLEVELCTRL, 0 IOCTRL, 0 VARIANTREF, 0 OUTCTRL FROM L_CAPIWHOUSE W
CROSS JOIN LG_101_ITEMS I  
WHERE FIRMNR=101 AND I.CARDTYPE=1 AND I.LOGICALREF NOT IN ( select ID.ITEMREF from  LG_101_INVDEF ID)