InventDim tablosunu form data source kısmına ekleyip inventDimId alanının bulunduğu tabloyla (bu örnekte adı SNBProductDemonte) InnerJoin yapın.
Form gride aşağıdaki gibi bir Group kontrol ekleyin:
Forma aşağıdaki kodları ekleyin:
public class FormRun extends ObjectRun
{
InventDimCtrl_Frm_EditDimensions inventDimFormSetup;
}
public void init()
{
super();
...
element.updateDesign(InventDimFormDesignUpdate::Init);
...
}
Object inventDimSetupObject()
{
return inventDimFormSetup;
}
void updateDesign(InventDimFormDesignUpdate mode)
{
InventDimParm inventDimParmVisible;
switch (mode)
{
// Form Init
case InventDimFormDesignUpdate::Init :
if (!inventDimFormSetup)
inventDimFormSetup = InventDimCtrl_Frm_EditDimensions::newFromForm(element);
inventDimFormSetup.parmSkipOnHandLookUp( true);
// Use the methods on InventDimParm
// to set which dimensions to show when form is initialized
// inventdimparmvisible.inventsiteidflag = true;
// inventdimparmvisible.InventLocationIdFlag = true;
inventDimFormSetup.parmDimParmVisibleGrid(inventDimParmVisible);
// Datasource Active
case InventDimFormDesignUpdate::Active :
inventDimFormSetup.formActiveSetup(InventDimGroupSetup::newItemId(SNBProductDemonte.ItemId));
inventDimFormSetup.formSetControls( true);
break;
// Datasource Field change
case InventDimFormDesignUpdate::FieldChange :
inventDimFormSetup.formActiveSetup(InventDimGroupSetup::newItemId(SNBProductDemonte.ItemId));
InventDim.clearNotSelectedDim(inventDimFormSetup.parmDimParmEnabled()); // InventDim is referring to datasource name
inventDimFormSetup.formSetControls( true);
break;
default :
throw error(strFmt ("@SYS54195", funcName()));
}
}
InventDimId alanının olduğu tabloya aşağıdaki kodları ekleyin:
public boolean validateWrite()
{
boolean ret;
SNBProductDemonte.InventDimId = InventDim::findOrCreate(InventDim).InventDimId;
ret = super();
return ret;
}
public int active()
{
int ret;
ret = super();
element.updateDesign(InventDimFormDesignUpdate::Active);
return ret;
}
ItemId alanı modified metoduna aşağıdaki kodu ekleyin:
public void modified()
{
super();
element.updateDesign(InventDimFormDesignUpdate::FieldChange);
InventDim.clearNotSelectedDim(element.inventDimSetupObject().parmDimParmEnabled());
}
Sistemde hazır bulunan InventDimParmFixed isimli Display menu item'i forma ekleyin.
Kaynak:
https://daxbeginners.wordpress.com/2014/08/05/how-to-dynamically-display-inventory-dimension/
Axapta - Usable functions for queries
5 yıl önce
Hiç yorum yok:
Yorum Gönder