Pack / UnPack Metodu

İçinde diaolg bulunan bir Clases değişik kullanıcılar tarafından farklı zamanlarda çalıştırıldığında, data ve değişken karışıklıklarını önlemek amacıyla classes dioloğundan girilmiş olan değişkenleri ve yapılmış olan ayıklama işlemlerini kullanıcı bazında tutmak isteyebiliriz. Axaptada bu isteğimize çözüm olarak Pack ve UnPack metodlarını kullanabiliriz.

Bir Classes'ın çalışmasını izlemeye aldığımızda göreceğimiz gibi Classes 'da gerekli değişkenleri girip OK/TAMAM tuşuna bastığımızda pack metodu da tetiklenmiş olur. Bu şu anlamada gelir, bizim dialog üzerinden girdiğimiz değişkenler Axapta tarafından saklanacaktır. Bu Classes'ı tekrardan çalıştırdığızda ise bu Classes daha önce çalıştırıldığı için UnPack metodu tetiklenmiş olur ve dialog'a bir önce girdiğimiz değişkenler görüntülenir. Peki bu işlemleri Axapta nasıl yapıyor. Pack ve UnPack metodlarını tanımaya çalışalım.

Pack metodunun son derece bazit bir içeriği vardır. Bu metod dialog'a girdiğimiz değerleri Axapta tarafından saklanmasını sağlar. Yalnız girilen değişkinlerden hangisinin saklanacağına ise Classes Declaration 'un da yerel olarak tanımladığımız macro ile belirleriz. Bu macronun oluşturulmuş olması gereklidir.

Pack metodu Container tipinde değişken döndürür ve dönen Container'ın elemanları bizim oluşturduğumuz macro elemanlarıdır.

Basit bir şekilde Pack metodu ;

public container pack()
{
return [#CurrentVersion,#CurrentList];
}

UnPack metodu ise Pack metodunun kardeşidir. UnPack metodu ise bu Classes daha önce çalıştırılmış mı çalıştırıldıysa hangi değerle çalıştırıldı onun bilgisini getir. Aslında birisi değerleri yazarken dieri değerleri okur.

UnPack metodu Container tipinde değişken alır ve boolean tipinde değişen döndürür. Eğer geri yüklenecek değer sistemde mevcutsa Unpack metodu bize true döndürecektir.

Basit bir şekilde Unpack metodu;

public boolean unpack(container packedClass)
{
Version version = runbase::getVersion(packedClass);
;
switch (version)
{
case #CurrentVersion:
[version,#CurrentList] = packedClass;
break;
default:
return false;
}
return true;
}

1 yorum:

Adsız dedi ki...

Oi, achei teu blog pelo google tá bem interessante gostei desse post. Quando der dá uma passada pelo meu blog, é sobre camisetas personalizadas, mostra passo a passo como criar uma camiseta personalizada bem maneira. Até mais.