Eray

Lod ile Object Kullanım Örneği

  Tiger/Logo Object Designer (LOD)

Merhaba , 

Logo Object Designer içinde object i kullanarak insert işlemi yapabilir miyiz ? 

Yapılabiliyor ise örnek paylaşır mısınız ? 

Örn. Satış İrsaliyesi.


lodileobject object lod


Kişi bilgileri gizlidir. Logo çalışanları görebilir.

merhaba,


Lod içerisinden objecti kullanabilirsiniz. Aşağıda bir örnek paylaşıyorum.


if ctrl = "Button1" then
 invref=3
 Invoice = Application.NewDataObject(19)
 If Invoice.Read(invref) Then
 warn(Invoice.DataFields.FieldByName("NUMBER").Value)
 Else
 warn("okunmadı.")
 Exit Sub
 End If
 InvoiceLines = Invoice.DataFields.FieldByName("TRANSACTIONS").Lines
 a=0
 a=InvoiceLines.Item[0].FieldByName("QUANTITY").Value
 InvoiceDetLines = InvoiceLines.Item[0].FieldByName("SL_DETAILS").Lines
 b=0
 b=InvoiceDetLines.item[1].FieldByName("SOURCE_QUANTITY").Value
 If InvoiceDetLines.DeleteLine(1) Then
 InvoiceLines.item[0].FieldByName("QUANTITY").Value = a-b
 Else
 warn("satır silme false")
 End If
 If Invoice.Post() Then
 warn("post ok")
 Else
 warn("post false")
 End If
 end if





11/12/17 09:12


Uluç Karadeniz

Onaylanmış Cevap

Eray Bey merhaba,

LOD içerisinde object kullanımlarında Application nesnesinden türetilen metot kullanımlarında login olmaya yada ayrı bir object lisansına gerek yoktur. Aşağıda sizinle malzeme fişi aktarım örneğini paylaşıyorum. Sizinde bildiğiniz gibi bütün fiş aktarımları benzer. Siz istediğiniz fişe göre XML çıktısı alıp alanları değiştirirsiniz.

Ancak her sınıf için bu geçerli değil. UnityObjects,OleObject gibi türetmeler de Login olup exe'yi ayağa kaldırmanız ve işlem bitince kill etmeniz gerekecektir. Örneğin hızlı üretim için örnek kodu ikinci blokta paylaşıyorum.

Malzeme Fişi Örneği

 objFire = Application.NewDataObject(1)
 objFire.New()
 
 objFire.DataFields.FieldByName("GROUP").Value = 3
 objFire.DataFields.FieldByName("TYPE").Value = aktTyp
 objFire.DataFields.FieldByName("NUMBER").Value = "~" 
 objFire.DataFields.FieldByName("DATE").Value = day
 objFire.DataFields.FieldByName("AUXIL_CODE").Value = "D"
 objFire.DataFields.FieldByName("FOOTNOTE1").Value = strNote 
 objFire.DataFields.FieldByName("DOC_NUMBER").Value = strFisNo
 objFire.DataFields.FieldByName("SOURCE_WH").Value = 6
 objFire.DataFields.FieldByName("CURRSEL_TOTALS").Value = 1 
 
 transactions_lines = objFire.DataFields.FieldByName("TRANSACTIONS").Lines

 
 i = 0
 For i = 0 To intSatSay - 1
 
 'GetCellInt(mgrd, i, 10008, logRef) 
 GetCellFloat(mgrd, i, 3, aksFlt)
 GetCellText(mgrd, i, 1, codeTxt)
 GetCellText(mgrd, i, 4, brmTxt)
 GetCellFloat(mgrd, i, 5, fltTutar) 
 
 if codeTxt <> "" and aksFlt <> 0 then
 
 If transactions_lines.AppendLine() Then
 transactions_lines[i].FieldByName("ITEM_CODE").Value = codeTxt 
 transactions_lines[i].FieldByName("LINE_TYPE").Value = 0
 transactions_lines[i].FieldByName("SOURCEINDEX").Value = 6
 ' transactions_lines[i].FieldByName("LINE_NUMBER").Value = 1 
 transactions_lines[i].FieldByName("QUANTITY").Value = aksFlt
 transactions_lines[i].FieldByName("PRICE").Value = fltTutar 
 transactions_lines[i].FieldByName("UNIT_CODE").Value = brmTxt 
 End if

 end if
 Next i
 
 If Not objFire.Post() Then 
 if (objFire.ValidateErrors.Count > 0) then 
 tmpErrStr = "XML Hatası mevcut!" 
 Cntr = objFire.ValidateErrors.Count 
 For ilp = 0 To (Cntr - 1) 
 vID = objFire.ValidateErrors.Item[ilp].ID 
 Str(vID, strvID) 
 tmpErrStr = tmpErrStr + strvID + " , " + objFire.ValidateErrors.Item[ilp].Error 
 Next ilp 
 warn(tmpErrStr) 
 Else 
 tmpErrStr="" 
 tmpErrStr = "DB Hatası mevcut!" 
 ErrId = objFire.ErrorCode 
 Str(ErrId, strErr) 
 ErrDef = "" 
 ErrDef = objFire.DBErrorDesc 
 tmpErrStr = tmpErrStr + "Hata Kodu : " + strErr + " " + ErrDef 
 warn(tmpErrStr) 
 End if
 Else
 
 
 end if

Hızlı Üretim Örneği

 UnityApp=OleObject("UnityObjects.UnityApplication") 
 res=UnityApp.Login("UYARLAMA","",comId)
 
 UnityApp.ProdApp=OleObject("UnityObjects.ProductionApplication")
 ProdApp.RefList=OleObject("UnityObjects.QuickProdSlipRefLists")
 PackTime(12,12,12,tval) 
 QProd = ProdApp.QuickProdFicheProc(logRef, urtFlt, RefList,intDate,tval,0,0)
 if QProd = true then
 
 srfLref = RefList.UsageSlips.Item[0].lref
 
 
 UnityApp.Disconnect()
 
 ProdApp.RefList = null
 UnityApp.ProdApp = null
 UnityApp = null
 quilt.CollectGarbage()
 
 end if






11/12/17 09:39


Eray

Merhaba , Elif hanım teşekkürler ilginize .. 


Uluç bey detaylı bilginiz için çok teşekkürler 2 tür örnek oldu çoğaltmasını bugün yapacağım eksik olmayın . İyi çalışmalar.


11/12/17 09:46

Cevap vermek için giriş yapmanız gerekmektedir.