Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

12 Februari 2015

Menambah field Description pada Lookup InventSizeId

Catatan:
Menggunakan Dynamic AX 2012 FP1


Default AX 2012 FP1 untuk lookup InventSizeId saat ini hanya menampilkan field SizeId. Pada implementasi AX di sini InventSizeId di manfaat kan untuk input item version, misalkan untuk Master Item laptop maka versionnya adalah merk dan tipe laptop.
 
Tampilan default pada lookup nya:
 

Terlihat bila yang ditampilkan hanya version akan membingungkan. Atau minimal bisa memberikan peluang user salah memilih version yang benar. Untuk itu saya menginginkan ditambah Name/Description pada lookup tersebut.

InventSizeId termasuk group dari InventDim. Di AX lookup untuk InventDim tidak menggunakan lookup standart/auto lookup yang di set di setiap tabel.

Form yang digunakan untuk lookup adalah: InventProductDimensionLookup 

 Setelah di lihat ternyata pada form tersebut memang hanya menampilkan satu field saja.

Maka langkah selanjutnya adalah menambah StringEdit baru untuk menampilkan Description.

Kemudian tambahkan di method initDimensionControls:
/** add by Shindu
    Add description field
    @ 12 Feb 2015
**/
    DimensionDesc.dataSource(inventDimDimension_ds.id());
    DimensionDesc.dataMethod("configDesc");
/** end by shindu **/
Code diatas maksudnya untuk men-set datasource dan datamethod untuk StringEdit DimensionDesc. Kita menggunakan method dengan nama "configDesc".

Sekarang kita menambahkan method display "configDesc" di table InventDim karena datasource yang digunakan adalah InventDim.

/* Add by shindu
@ 12 Feb 2015
Add Description
**/
display Description configDesc(InventDim dim)
{
    EcoResSize size;
    EcoResProductMasterSize resSize;
    EcoResProductMasterDimensionValue valSize;
    select size
    join resSize
    join valSize
    where  size.Name == dim.InventSizeId &&
     resSize.Size == size.RecId && valSize.RecId == resSize.RecId ;
    if(valSize){
        return valSize.Description;
    }else{
        return "";
    }
}
/** end **/
Untuk mendapatkan Description atas InventSizeId kita harus melakukan join pada tiga tabel, yaitu: EcoResSize, EcoResProductMasterSize, dan EcoResProductMasterDimensionValue

 Lakukan compile. Maka hasilnya:

Referensi:
http://thedynamicsblog.com/product-dimensions-description-field-on-lookup/

Link diatas ditemukan oleh HENTOOOL