Blog Listem

30 Haziran 2015 Salı

Axapta - Grid kolonunda resim görüntülemek

Örnek tablomuzda eğer RefRecId değeri dolu ise OK değilse Cancel buton resmi göstereceğiz. Bunun için tablomuza bir display method yazıyoruz:

 display ImageRes dispIsOKImg(gzrForeSightOrderLines l)
 {
   #resAppl;
   return l.RefRecId == 0 ? #ImageError : #Image_OK;
 }


Gridinize bir Window kontrol ekleyin. Örnekteki ismi LineOK olsun. Kontrolün AlignControl özelliğini No yapın. DataMethod'a display methodumuzun adı (burada dispIsOKImg), Datasource alanına da tablomuzun adını (burada gzrForeSightOrderLines) yazıyoruz. Height ve Width alanlarına da uygun değerler verin. Ben 14 yazdım. Eğer resimleriniz çok büyükse ImageMode değerini Size to fit yapabilirsiniz.

Formu çalıştırdığınızda resimlerin sık  sık yenilendiğini göreceksiniz. Bunu engellemek için resimleri formu ilk çalıştırırken yüklemek gerekir:

ClassDeclaration metodu:
ImageList                           imageList;

Init metodu:
#resAppl
imageList = new Imagelist(Imagelist::smalliconWidth(),Imagelist::smalliconHeight());
imagelist.add(new image(#Image_OK));
imagelist.add(new image(#ImageError));
LineOK.imageList(imageList);


Display metoddaki return satırını aşağıdakiyle değiştirin:

return l.RefRecId == 0 ? 1 : 0;

resAppl makrosunun içindeki imaj listesini görmek/güncellemek için AOT->Macros->ResAppl->Düzenle.

Sistemde kayıtlı tüm imaj dosyalarını görmek için Araçlar->Geliştirme araçları->Katılaştırılmış kaynaklar (Bu terim türkçeye gerçekten çok tuhaf çevrilmiş, orijinalinde Embedded resources yazıyor ki bu çok daha anlamlı, gömülü kaynaklar olmalıydı).