Tiger’a Lobject.Dll ile Yeni Malzeme Karti Nasil Tanimlanir

Ençok kullanilan muhasebe programlarindan biri olan Tiger programi çok kullanisli olmasina ragmen genis çapli özellestirilememektedir. Bazen çok küçük bir islem için bile tüm programi baslatmamiz gerekmektedir veya yaptigimiz rutin isler için biraz daha basit bir yapi talep ederiz. Bu ve benzeri durumlar için Tiger programi Lobject.dll i sayesinde entegre uygulamalari desteklemektedir. Lobject.dll kullanilarak Object Oriented programlama dilleri ile uygulamalar gelistirilebilinmektedir. En çok mobil cihazlarda ihtiyaç duyulmaktadir.

Bu makalede Lobject.dll ile yeni malzeme karti tanimlamasini anlatmaya çalisacagim.

Öncelikle Lobject.dll class ve metotlarini kullanabilmemiz için, yazdigimiz class’a Lobject.dll kütüphanelerinin eklenilmesi gerekiyor.

using UnityObjects;
using System.Data;
.

Daha sonra kodlamaya geçiyoruz. Yeni Malzeme karti tanimlamasi basitçe asagidaki gibidir.

UnityObjects.Data _newMalzeme = new Data();

_newMalzeme = Genel.UnityApp.NewDataObject(UnityObjects.DataObjectType.doMaterial);

_newMalzeme.New();

_newMalzeme.DataFields.FieldByName("CODE").Value = _code;
//Zorunlu Alandir.Urun kodu
_newMalzeme.DataFields.FieldByName( "NAME" ).Value = _name;
//Zorunlu Alandir. Urun adi
_newMalzeme.DataFields.FieldByName( "CARD_TYPE" ).Value = _cardtype;
//Zorunlu Alandir.Kart tipi 

_newMalzeme.DataFields.FieldByName("UNITSET_CODE").Value = "ADET";
//Zorunlu Alandir.Birim (adet,kg,gr...)
// _newMalzeme.DataFields.FieldByName("GROUP_CODE").Value = "AGÇ"; 
//Zorunlu degildir. Malzeme grup kodu
_newMalzeme.DataFields.FieldByName( "VAT" ).Value = _vat;
//Zorunlu Alandir.KDV
_newMalzeme.DataFields.FieldByName("SELVAT").Value = _vat;
_newMalzeme.DataFields.FieldByName("RETURNVAT").Value = _vat;

//Malzeme kartinin detayi ekleniyor.

Lines detay = _newMalzeme.DataFields.FieldByName("UNITS").Lines; 
//Malzeme detayi. Zorunlu degildir.
//if (detay.AppendLine())
{//ÜRÜNLER EKLENIYOR

    detay[0].FieldByName("UNIT_CODE").Value = "ADET";
    detay[0].FieldByName("USEF_MTRLCLASS").Value = 1;
    detay[0].FieldByName("USEF_PURCHCLAS").Value = 1;
    detay[0].FieldByName("USEF_SALESCLAS").Value = 1;
    detay[0].FieldByName("CONV_FACT1").Value = 1;
    detay[0].FieldByName("CONV_FACT2").Value = 1;
    //detay[0].FieldByName("BARCODE").Value = "HP7700BARKOD7";
    //detay[0].FieldByName("DATA_REFERENCE").Value ="~";
    //detay[0].FieldByName("VOLUME").Value = "22";
    //detay[0].FieldByName("WEIGHT").Value = "22";
                    
    Lines detay1 = detay[0].FieldByName("BARCODE_LIST").Lines;
    if (detay1.AppendLine())
    {
        detay1[0].FieldByName("BARCODE").Value = _barcode;
       
    }

}

if (_newMalzeme.Post())
{
    _result = true;
}
.

Yukarida görülecegi üzere Lobject.dll ile yeni malzeme karti tanimlamasi oldukça kolay ve gelistirilebilir.

Kisaca yukarida yaptigimizi anlatacak olursak:

Lobject.dll ‘de tüm veri islemlerinde ”Data” isimli nesne tanimlanir.

UnityObjects.Data _newMalzeme = new Data();

Daha sonra hangi bölümde islem yapilmak isteniyorsa onun tipi tanimlanir asagidaki gibi.

_newMalzeme = Genel.UnityApp.NewDataObject(UnityObjects.DataObjectType.doMaterial);

Daha sonra malzeme kartinin zorunlu alanlari girilir. Malzemeye ait ektra detay bilgisi eklenilmek isteniyorsa (barkod, gr, adet ..) bu bilgileri Lines tipi degisken araciligiyla ekliyoruz..

Lines detay = _newMalzeme.DataFields.FieldByName("UNITS").Lines; 
//Malzeme detayi. 

Post metodu ile islemimizi kaydediyoruz( Execute).

_newMalzeme.Post();

Konu ile ilgili daha detayli bilgi almak için iletisim bilgilerim asagidadir.

Kolay gelsin…

AHMET TÜRKER

turker.ahmet38@gmail.com

10 thoughts on “Tiger’a Lobject.Dll ile Yeni Malzeme Karti Nasil Tanimlanir

  1. Merhabalar,

    Ben cari karty da malzeme kartynyda ba?ary ile açabiliyorum.Ancak benym object.dll kullanarak muhasebe fi?i(karty) olu?turmam gerek.Açty?ym faturanyn muhasebele?ebilmesi için buna gerek var.Bunu nasyl yapabilirim.Yardymcy olursanyz sevinirim

    Te?ekkürler

  2. Mustafa Bey,

     

    Asagidaki sorun lisans problemi diye biliyorum. Ayni hatayi daha önce bende almistim. Lisans kontrolü yaparmisiniz.

    Yazilan her program için degilde kullanici bazli lisans aliniyor.1, 3 .. sayida kullanici.1 kullanicili isinizi görecektir.

     

    Birde fis eklemeden kasit hangisi. kodu kisaca paylasirsaniz inceleyim.

     

    iyi çalismalar

  3. Ahmet bey

    Lobjects.dll ile projemde su anda söyle bir hata vermeye basladi

    Run-time error ‘-2147418113(8000ffff)’: Çok zararli hata

    bu sorunu acaba nasil asabilirim, yardimci olabilirseniz çok sevinirim.

    saygilarimla

  4. Ahmet bey

    Hayirli aksamlar

    Firmamizda lobjects.dll ile yazilmis ve su anda kullanilan programlar var, bende lobjects.dll ‘i (vb6 kullaniyorum) projeme ekliyorum, size gönderdigim mailde de yazdigim gibi hazirladigim proje üzerinde login oldugum TigerSys programindan gözüküyor fakat fis ekleme bölümünde bütün alanlari yazmama ragmen ve hatada almamama ragmen fis eklenmiyor. Belirttigim gibi lobjects.dll ‘i diger programlarda kullanabiliyoruz fakat ayni lobjects.dll’i yeni projede neden çalistiramiyorum (fis eklemede). Versiyon sorunu olmamali çünkü çalistigim firmada diger programlar da kullaniliyor. Lisans sorunu olabilirmi diger programlarda su anda kullanilmasina ragmen. Her yazilan program için ayri bir lisansmi aliniyor. Veya da fis eklemeden önce yapmam gereken baska bir baglanti filan mi olmali.

    Yardimlariniz için tesekkür ederim

  5. Ahmet Bey Selamlar Bir Sey Daha Sormak Istiyorum.

    Read ile Data ID’ni Bildigim Verileri Rahatlikla Çekebiliyorum Ancak Siradan Loop Içerisinde Var Olan Her Kaydi Okumak Için Çekmek Istedigim Verinin Data_Reference Id’sini Biliyor Olmam Gerekmeden Bütün Kaydi Bastan Sona Nasil Okuyabilirim?

  6. Örnek olarak 20 id li cariyi okuyalim:

    Data _myAccount = clsDepoGenel.UnityApp.NewDataObject(DataObjectType.doAccountsRP);

     

     

    _myAccount.Read(20);

     

    object _firmakodu= _myAccount.DataFields.FieldByName("CODE").Value;// "Firma Kodu";

    object _firmaadi= _myAccount.DataFields.FieldByName("TITLE").Value = firmaadi;// "Firma Adi";

    object _firmaadres= _myAccount.DataFields.FieldByName("ADDRESS1").Value // "Adres 1";
     

     

  7. Merhaba Eren bey,

    LObject.dll ile sorgulama yapma için Read(id) metodu kullanilarak data çekilebilinmektedir. Yukarida benim new() metodu kullanildigim yerde siz Read(id) metodukullanilarak hangi id li data çekilmek isteniyorsa o girilir

  8. Ahmet Bey Selamlar

    Benim Sormak Istedigim Lobject Nesnesini Kullanarak Logo Veritabanindaki Bilgiyi Nasil Çekebilirim?

    Yardim Olabilirseniz Çok Sevinirim

     

Ahmet için bir cevap yazın Cevabı iptal et

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