How long have you been using Microsoft Dynamics Ax?

Toplam Sayfa Görüntüleme Sayısı

Popular Posts

Translate

Bu Blogda Ara

29 Şubat 2012 Çarşamba

Tablo alanları arasında dinamik gezinmek.

Merhaba, Birbirinden türetilmiş tablolarda veya dinamik olarak oluşturduğunuz ve alan adını bilmediğiniz tablolarda kullanabileceğinizi bir kod örneğini paylaşmak isterim. Öncelikle kodu anlamaya başlamadan önce bazı şeyleri açıklayalım. DictTable parametre olarak gönderdiğiniz tablo numarasının bağlı olduğu tablo objesi ile ilgili bilgilere ulaşmanızı sağlayan bir sınıf. DictField parametre olarak gönderdiğimiz tablo numarası ve alan numarasının bağlı olduğu tablo alanı ile ilgili bilgilere ulaşılmasını sağlayan sınıf. Anytye değişken tipi ile okuma yapacağımız tablonun alanlarının veri türü her ne olursa olsun çevirme işlemine tabi tutmadan saklamamızı sağlıyor. Örnekte müşteriler tablosunun bir kaydı için alanları gezip sistem alanı olmayan alanların önce alan adını sonra = işareti ekleyerek alanın değerini info ile yazdırıyoruz.
 DictTable dictTable = new DictTable(tableNum(CustTable));
DictField dictField;
int counter, fieldId;
CustTable custTable;
anytype value;
select firstonly custTable;
 for (counter = 1; counter <= dictTable.fieldCnt(); counter++)
{
       fieldId = dictTable.fieldCnt2Id(counter);
       dictField = new DictField(tableNum(CustTable), fieldId);
       if (!dictField.isSystem())
      {
          value = custTable.(fieldId);
          if(value)
         {
              info(strFmt('%1 = %2', dictField.label(), any2str(value)));
         }
     }
}

Dinamik tablo yapılarında kullanabileceğiniz bu yapıyı faydalı bulduğunuzu umarım.
Bol AX'lı günler,
Alper.

Hiç yorum yok:

Yorum Gönder