Merhaba yoğun taleb ve verdiğim sözler nedeniyle bu örneği yazmam farz oldu.
Bu işe başlamadan önce biraz logoyu, gerek kullanımı, tablo yapısı gibi özelliklerini inceleyin.
anlatma kabiliyetim biraz zayıftır şimdiden özür dilerim.
Lisansınız yoksa yormayın kendinizi !!!!
örnekteki amacım sizin işinizi yapmak değil size küçük bir örnekle yardımcı olmak balık tutumayı öğretmek gibi düşünün bu nedenle yazılım bilginiz konu için yetmiyorsa (zamanla oda olur kimse anasının karnında öğrenmedi) ne olur beni üzmeyin ben sadece 1 adet fatura örneği vereceğim farklı fişler yapma istiyorsanız kartları veya hareketleri dışarı xml olarak atarak xml dosyaları inceyin emin olun çok kısa sürede olayı kavrayacaksınız şimdi bir fatura xml ile başlayaım örnekle bereber xml yi anlayacasınız.
<?xml version="1.0" encoding="ISO-8859-9"?> <SALES_INVOICES> <INVOICE DBOP="INS" > <TYPE>8</TYPE> <NUMBER>A00001</NUMBER> <DATE>22.02.2017</DATE> <TIME>202116096</TIME> <DOC_NUMBER>A00001</DOC_NUMBER> <AUXIL_CODE>AUTO</AUXIL_CODE> <ARP_CODE>CR-001</ARP_CODE> <POST_FLAGS>247</POST_FLAGS> <TOTAL_DISCOUNTED>15</TOTAL_DISCOUNTED> <TOTAL_VAT>2.7</TOTAL_VAT> <TOTAL_GROSS>15</TOTAL_GROSS> <TOTAL_NET>17.7</TOTAL_NET> <TC_XRATE>1</TC_XRATE> <TC_NET>17.7</TC_NET> <CREATED_BY>2</CREATED_BY> <DATE_CREATED>22.02.2017</DATE_CREATED> <HOUR_CREATED>20</HOUR_CREATED> <MIN_CREATED>14</MIN_CREATED> <SEC_CREATED>18</SEC_CREATED> <DATA_REFERENCE>5</DATA_REFERENCE> <PAYMENT_LIST> </PAYMENT_LIST> <ORGLOGOID></ORGLOGOID> <GENIUSFLDSLIST> </GENIUSFLDSLIST> <DEDUCTIONPART1>2</DEDUCTIONPART1> <DEDUCTIONPART2>3</DEDUCTIONPART2> <GUARANTOR1_FICHETYPE>1</GUARANTOR1_FICHETYPE> <GUARANTOR1_NR>1</GUARANTOR1_NR> <GUARANTOR2_FICHETYPE>1</GUARANTOR2_FICHETYPE> <GUARANTOR2_NR>2</GUARANTOR2_NR> <AFFECT_RISK>1</AFFECT_RISK> <DOC_DATE>22.02.2017</DOC_DATE> <PROFILE_ID>2</PROFILE_ID> <GUID>93EC47CC-90CE-4E82-8567-3DF50A694525</GUID> <EDURATION_TYPE>0</EDURATION_TYPE> <EXIMVAT>0</EXIMVAT> <EARCHIVEDETR_INTPAYMENTTYPE>0</EARCHIVEDETR_INTPAYMENTTYPE> <OKCINFO_LIST> <OKCINFO> </OKCINFO> </OKCINFO_LIST> </INVOICE> </SALES_INVOICES>
XML dosyamız yerinde dursun şimdilik biz logoda bir kaç işlem yapalım.
1- Logo klasörünün içinde bulunan register.bat dosyamızı çalıştırıyoruz ve logonun terminelimizde gerekli registerleri yapmasını sağlıyoruz.
2- sys den terminal kaydımız yapıyoruz.
3- artık logonun kendisi sorunsuz terminal pc de çalışıyor olması gerekiyor. şimdi örneğimiz için gereken kartları açalım.
4-evet şimdi delphiyi açıyoruz ve UnityObjects i import ediyoruz.
5-importa devammm..
6- ve yazamaya geçebiliriz.
LogoBaglantisi : UnityApplication;
adı aldında global bir nesne tanımlayın yeri size ait birden fazla tanımlarsanız. her nesneyi 1 kullanıcı sayar bilginize.
7- 1 defaya mahsus nesnemizi yaratıyor (bu deyimide sevmiyorum ama)
LogoBaglantisi := CoUnityApplication.Create;
unutmadan işimiz bitince firmadan çıkmayı unutmayalım sonra herp bağlı kalırız 🙂
LogoBaglantisi.CompanyLogout; LogoBaglantisi.Disconnect;
8- logoya bağlanalım
if LogoBaglantisi.Login('kullanıcıadı','şifre',2,0) then begin Memo1.lines.Add( 'Logo Bağlantısı Kuruldu ' + LogoBaglantisi.Version); end else Memo1.lines.Add( 'Logo Bağlantısı Kurulamadı' + LogoBaglantisi.GetLastErrorString);
burada 2 firma numarası 0 ise aktif dönem anlamına geliyor.
9- form tasarımı düğme felanonlar sizin işiniz
10- evetttt dananın kuyruğunun koptuğu yere geldik
var Fatura: IData; FaturaSatirlari: UnityObjects_TLB.ILines; Saat: OleVariant; SonucStr :string; i: integer; begin Fatura := LogoBaglantisi.NewDataObject(doSalesInvoice); Fatura.New; Fatura.DataFields.FieldByName('TYPE').Value := 8; Fatura.DataFields.FieldByName('NUMBER').Value := 'A00001' ; Fatura.DataFields.FieldByName('DOC_NUMBER').Value := 'A00001'; Fatura.DataFields.FieldByName('AUXIL_CODE').Value := 'AUTO'; Fatura.DataFields.FieldByName('DATE').Value := '22.02.2017'; Fatura.DataFields.FieldByName('DOC_DATE').Value := '22.02.2017'; LogoBaglantisi.PackTime(12, 12, 12, Saat); Fatura.DataFields.FieldByName('TIME').Value := Saat; Fatura.DataFields.FieldByName('ARP_CODE').Value := 'CR-001'; FaturaSatirlari := Fatura.DataFields.FieldByName('TRANSACTIONS').Lines; FaturaSatirlari.AppendLine; FaturaSatirlari[0].FieldByName('TYPE').Value := 0; FaturaSatirlari[0].FieldByName('MASTER_CODE').Value := 'STK-001' ; FaturaSatirlari[0].FieldByName('QUANTITY').Value := 5 ; FaturaSatirlari[0].FieldByName('PRICE').Value := 3 ; FaturaSatirlari[0].FieldByName('UNIT_CODE').Value := 'ADET'; FaturaSatirlari[0].FieldByName('VAT_RATE').Value := 18 ; if Fatura.Post then begin SonucStr := 'Abi Kestim Faturayı Referans No :'+ VarToStr(Fatura.DataFields.FieldByName('INTERNAL_REFERENCE').Value); end else begin SonucStr := 'Sıçtık : ' + Fatura.ErrorDesc + IntToStr(Fatura.ErrorCode) end; Fatura.ExportToXML('SALES_INVOICES',ExtractFilePath(Vcl.Forms.Application.ExeName) +'fatura.xml'); Memo1.Lines.Add(SonucStr)
Çok kısa bir anlatım oldu ama ben bu kadar becerebiliyorum. dikkat ederseniz baştakı xml ile sondaki kodarımız aynı yöntem 1 deme nedenine gelirsek web servis olarakta bu işlemi yapa biliyoruz. dua ile olurmu bilmem ama çalıştığım kurumda çok yoğun çalışıyorum işlerimin yoğunluğu azalarısa onada basit bir örnek yazarız. projenin kodlarını https://github.com/lazymule/LogoObjectsSample adresine atıyorum vakti olan arkadaşların örneklerinide burada toplayabiliriz. alıntı yapan arkadaşlarım bir kuble olsada bizi belirtirlerse sevinirim belirmeselerde canları sağolsun hadi kolay gele
unutmadan örnekte delphi xe7 ve logo tiger 3 kullandım
Aktif Forum Konusu https://www.delphican.com/showthread.php?tid=692
benden tembelleride varmış 🙂 http://forum.logo.com.tr/?page=xml-code-converter
allah razı olsun arkadaşım
bırazdan test edıp bılgı verecegım bu logocular okadar katıkı bilgi paylaşıldıkça güzeldir konusu uzak onlara malesef ama bu parayla verilen bir eğitimse bizede yol açmalılar neyse verelım sıkıntı yok ama sansurlemek yanlış inşallah bir sürü insan senin blogundan faydalanacak
seniz azıcık zorladım gerçe 🙂
evet payın büyük ama unutma bu L ‘si inan ben LOB ‘dayımdır 🙁 tecrübe gerek
Teşekkürler…
Merhaba kolay gelsin object ten sipariş yazdırmatya çalışıyorum
Siparis := LogoBaglantisi.NewDataObject(doSalesOrderSlip);
Siparis.New; // burda takılıyor Acces violation hatası veriyo ‘ntdll.dll’
Siparis.DataFields.FieldByName(‘TRCODE’).Value := 1 ;
Yadımcı olablir misiniz
merhaba 2.50 den sonra Object yeniden import etmeniz gerekiyor , onun harici küçük bir örnek mail atın bakayım kemalbayat – gmail.com