LOGO OBJECT İLE SORGU İŞLEMİ

TIGER 3 ENTERPRISE

NEDEN İHTİYAÇ DUYULDU: LOGO SYSDE FİRMALARA FARKLI VERİTABANLARI ÜZERİNDEN İŞLEM YAPILABİLMEKTE. DOLAYISIYLA İLGİLİ VERİTABANINDAN OBJECT İLE SORGU KONTROLÜ YAPILIP ONA GÖRE DEVAM EDİLMESİ GEREKMEKTE(PROJE TABLOSU).

ÖNCE SORGUYU CEKMEK İSDEDİGİM TABLO İSMİ TESPİT EDİLİR-GetTableName(https://docs.logo.com.tr/public/wua/logo-objects/logo-objects-kuetuephanesi/unityapplication/gettablename)

string projectTable = AppUnity.GetTableName(229, firmNr, 0);
bool isProjectExists = ObjectProjectCodeControl(projectTable, L.PROJEKODU);
bool canContinue = true;
                        if (!isProjectExists)
                        {
                            canContinue = false;
                            WRITELOG(firmNr.ToString() + " PROJE KODU BULUNAMADI : " + L.PROJEKODU, null);
                        }
private static bool ObjectProjectCodeControl(string table, string code)
{
    bool isExists = false;
    string sql = "SELECT LOGICALREF FROM " + table + " WHERE CODE = '" + code + "'";
    string resultTxt = "";
    UnityObjects.Query Qry = AppUnity.NewQuery();
    Qry.Statement = sql;
    if (Qry.OpenDirect())
    {
        bool res = Qry.First();
        while (res)
        {
            resultTxt = Qry.QueryFields[0].Value.ToString();
            isExists = true;
            res = Qry.Next();
        }
    }
    else
    {
        MessageBox.Show(Qry.DBErrorDesc.ToString());
    }
    Qry.Close();
    return isExists;
}

LOGO Banka İşlem Fişi Kesilmiştir Detay

Logoda kk fişi silerken banka işlem fişi kesilmiştir hatası veren fişlerin bağlarını bulmak için :

 SELECT * FROM (
 SELECT 
	DISTINCT
	Tarih,
	CariFisKKFisNo=(SELECT CLFICHE.FICHENO FROM LG_301_01_CLFICHE CLFICHE WHERE CLFICHE.LOGICALREF=CariFisKKFisRef),
	CariFisMuhasebeFisNo=(SELECT EMFICHE.FICHENO FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=CariFisMuhasebeFisRef),
	BankaFisNo,
	BankaFisMuhasebeFisNo=(SELECT EMFICHE.FICHENO FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=BankaFisMuhasebeFisRef)
 FROM (
	 SELECT 
	 Tarih=BNFICHE.DATE_,
	 CariFisKKFisRef=BNFLINE.CRCARDFCREF,
	 CariFisMuhasebeFisRef=(SELECT CLFICHE.ACCFICHEREF FROM LG_301_01_CLFICHE CLFICHE WHERE CLFICHE.LOGICALREF=(CASE WHEN ISNULL(BNFICHE.CRCARDFCREF,'')=0 THEN BNFLINE.CRCARDFCREF ELSE BNFICHE.CRCARDFCREF END)),
	 BankaFisNo=BNFICHE.FICHENO,
	 BankaFisMuhasebeFisRef=(SELECT EMFICHE.LOGICALREF FROM LG_301_01_EMFICHE EMFICHE WHERE EMFICHE.LOGICALREF=BNFICHE.ACCFICHEREF)
	 FROM 
		LG_301_01_BNFICHE BNFICHE LEFT JOIN LG_301_01_BNFLINE BNFLINE ON BNFLINE.SOURCEFREF=BNFICHE.LOGICALREF
	  WHERE BNFICHE.TRCODE=1 AND BNFICHE.MODULENR=7
  ) AS TT
  ) AS TF WHERE CariFisKKFisNo='BMS.0073921'

LOGO OBJECTS INVOICE ITEXT

Logo objectse invoice fatura atarken ITEXT her 255 karaktere ¦ konması gerekmektedir .

İlgili fonksiyon:

    public static string SplitString(string input)
        {
            int chunkSize = 255;
            List<string> chunks = new List<string>();
            for (int i = 0; i < input.Length; i += chunkSize)
            {
                int remaining = Math.Min(chunkSize, input.Length - i);
                chunks.Add(input.Substring(i, remaining));
            }
            return string.Join("¦", chunks);
        }
            F.DataFields.FieldByName("ITEXT").Value = SplitString(description);

LOGO LOD- SATIŞ FATURA SATIRINA İKİNCİ MİKTAR GETİRME

Events:

Modules

Table:

Events:

Sub FormShow()
Call GetData()
End Sub

Sub BeforeSave(proceed as Integer)
Call SetLineArray()
End Sub

Sub AfterSave()
AppTables[14].GetIntFieldR(RecHandle,”LOGICALREF”,gSETLOGREF)
Call SetData(gSETLOGREF)
End Sub

Modules:

Dim LineDataArr1(200) as string

Sub GetData()
AppTables[14].GetIntFieldR(RecHandle,”LOGICALREF”,iMasrefRef)

 MaxGridLine=MGridLines("InvoiceGrid")
 for i=0 to MaxGridLine-1
   GetGridRowHandle("InvoiceGrid",i,recH)
   AppTables[9].GetIntFieldR(recH,"LOGICALREF",intLineRef)

   CustTables[62].Search(2,2,intLineRef)
   if not (DBErr <>0) then

       CustTables[62].GetFltField("MIKTAR2",fMIKTAR2)

       SetCellFloat("InvoiceGrid",i,10072,fMIKTAR2)          

   end if
 next i

End Sub

Sub SetData(intLogref as Long)
i=0
CreateQuery(Qry)
tblName = Application.GetTableName(9, Application.CompanyId, Application.FiscPerdId)
Qry.AddTable(“A”, tblName)
Qry.AddSelField(“A”, “LOGICALREF,”)
Qry.AddSelField(“A”, “INVOICELNNO”)
Str(intLogref, LogRefTxt)
MyWhereCond = “INVOICEREF = ” + LogRefTxt

Qry.AddWhereCond(MyWhereCond,1)
Qry.Execute()
if Qry.Ready = 1 then
   res = Qry.First()
   Do while res = 1
      Qry.GetFieldValue(1, 1, MyLineRef)
      Qry.GetFieldValue(2, 1, MyLineNo)
      if MyLineRef<>0 then
            CustTables[62].Search(2,2,MyLineRef)
            if (DBErr <>0) then
                CustTables[62].NewRecord()
                CustTables[62].SetIntField("PARLOGREF",MyLineRef)
                CustTables[62].SetIntField("INVFICHEREF",intLogref)
                CustTables[62].SetFltField("MIKTAR2",LineDataArr1[MyLineNo - 1])                
            else
                CustTables[62].SetFltField("MIKTAR2",LineDataArr1[MyLineNo - 1])             
            end if
            CustTables[62].UpdateRecord()
      end if
      res =  Qry.Next()
   Loop
end if

End Sub

Sub SetLineArray()
MaxGridLine=MGridLines(“InvoiceGrid”)
i=0
for i=0 to MaxGridLine-1
GetCellFloat(“InvoiceGrid”,i,10072,LineDataArr1[i])
next i
End Sub