Nasıl yapıldığını anlamak için
LedgerJournalTable formuna bakılabilir.
DimensionDefault EDTsi ile tabloya eklediğimiz alana
DimensionAttributeValueSet tablosunun
RecId alanıyla bir relation ekliyoruz.
Forma bir tab sayfası ekleyip adını
tabFinancialDimensions yapıyoruz ve aşağıdaki property ayarlarını yapıyoruz:
AutoDeclaration = true
caption = @SYS101181
HideIfEmpty = No
NeedPermission = Manual
Formun
classDeclaration metoduna aşağıdaki tanımlamayı yapıyoruz:
DimensionDefaultingController dimensionDefaultingController;
Formun init metoduna aşağıdaki kodları yazıyoruz:
public void init()
{
boolean allowEdit = true;
super();
dimensionDefaultingController = DimensionDefaultingController::constructInTabWithValues(false, true, allowEdit, 0, this, tabFinancialDimensions, "@SYS101181");
dimensionDefaultingController.parmAttributeValueSetDataSource(MyTable_ds, fieldStr(MyTable, DefaultDimension));
dimensionDefaultingController.parmValidateBlockedForManualEntry(true);
}
Tab sayfası kontrolüne bu metodu ekliyoruz:
public void pageActivated()
{
dimensionDefaultingController.pageActivated();
super();
}
Tablo data source metodlarını aşağıdaki gibi güncelliyoruz:
public void delete()
{
super();
DimensionDefaultingController.deleted();
}
public void write()
{
ttsBegin;
DimensionDefaultingController.writing();
super();
ttsCommit;
}
public int active()
{
int ret;
ret = super();
DimensionDefaultingController.activated();
return ret;
}