How to add the ledger
account (ledger dimension ) in form in AX 2012(show the ledger dimension lookup
in field)
A ledger account contains the main account, account structure,
and each financial dimension value needed to fulfill the related account
structure and account rule structures.A foreign key representing a ledger
account is a 64 bit integer field that contains the data from the corresponding
RecId field the DimensionAttributeValueCombination (LedgerDimension) table.
The ledger account control uses the
LedgerDimensionAccountController class as its controller class. This
control handles the entry and display of ledger accounts in AX forms.
In simple scenarios the changes needed on an AX form are as
follows:
1.
Verify that the table
that holds the Foreign Key to the DimensionAttributeValueCombination table is a
data source on the form.
2.
Drag the LedgerDimension
field from the data source to the desired location on form design. This creates
a SegmentedEntry control with the appropriate DataSource and ReferenceField
property values. Alternatively this can be done by adding a SegmentedEntry
control to the design and manually setting the DataSource and ReferenceField
properties.
3.
Override the following
methods on the form. If the methods already exist just add the code to
the methods. Be sure to denote where the super () call is for the init ()
method.
classDeclaration():
public
class FormRun extends ObjectRun
{
LedgerDimensionAccountController
ledgerDimensionAccountController;
}
Init():
public
void init()
{
super();
ledgerDimensionAccountController =LedgerDimensionAccountController::construct(InventParameters_ds,
fieldstr(InventParameters,LedgerDimension));
}
Overload the following methods on
the SegmentedEntry control instance in the form design
jumpRef():
public void jumpRef()
{
ledgerDimensionAccountController.jumpRef();
}
validate():
public boolean validate()
{
boolean isValid;
isValid = super();
isValid =
ledgerDimensionAccountController.validate() && isValid;
return isValid;
}
segmentValueChanged():
public void
segmentValueChanged(SegmentValueChangedEventArgs _e)
{
super(_e);
ledgerDimensionAccountController.segmentValueChanged(_e);
}
loadSegments():
public void loadSegments()
{
super();
ledgerDimensionAccountController.parmControl(this);
// The valueof this parameter varies
depending on the type of form.
// See the Additional options
section for more detail.
ledgerDimensionAccountController.loadSegments();
}
loadAutoCompleteData():
public void
loadAutoCompleteData(LoadAutoCompleteDataEventArgs _e)
{
super(_e);
ledgerDimensionAccountController.loadAutoCompleteData(_e)
}
After that go to datasource of form –datasource-field(ledgerdimension)
Overload the below on the data source field that backs the
SegmentedEntry control
resolveReference():
public
Common resolveReference(FormReferenceControl _formReferenceControl)
{
return
ledgerDimensionAccountController.resolveReference();
}
No comments:
Post a Comment