In the dynamics ax 2012, there
are different ways to fill the combo box/drop down list
This above method of lookup was
heavily used in AX 2009, and it also used in the AX 2012 when there isn’t any data
source specified in the form (i.e. Dialog Form) and the StringEdit control used
for the lookup
How to create a simple lookup
The SysTableLookup class is provided by the standard application to allow
programmers to easily create their own lookup forms, in code.
The basic steps to using this class are as follows:- Create the sysTableLookup object
- Create the query to select the lookup data
- Add the fields shown on the lookup
- Performs the lookup
|
client static
void lookup<TableName> (FormStringControl
_ctrl)
{
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(<tableName>),_ctrl);
Query query = new Query();
// create
the query for the lookup
QueryBuildDataSource queryBuildDataSource =
query.addDataSource(tableNum(<tableName>));
// Add
fields that will be shown in the lookup as columns
sysTableLookup.addLookupfield(fieldNum(<tableName>,<FeildName1>));
sysTableLookup.addLookupfield(fieldNum(<tableName>,<FeildName2>));
//Add
the query to the lookup form
sysTableLookup.parmQuery(query);
// Perform the lookup
sysTableLookup.performFormLookup();
}
|
How to create a simple lookup Reference
The SysReferenceTableLookup class is used
to construct lookup forms for reference controls.
- Create the SysReferenceTableLookup object
- Create the query which will be used to select the lookup data
- Add the fields which will be shown on the lookup
- Perform the lookup
|
public static
client <tableName> lookup<tableName>(
FormReferenceControl _formReferenceControl)
{
Query query;
SysReferenceTableLookup
referenceLookup;
if
(_formReferenceControl == null)
{
throw
error(Error::missingParameter(null));
}
referenceLookup =
SysReferenceTableLookup::newParameters(
tableNum(<tableName>),
_formReferenceControl,
true);
// create
the query for the lookup form
query.addDataSource(tableNum(<tableName>));
// Add
fields that will be shown in the lookup form as columns
referenceLookup.addLookupfield(fieldNum(<tableName>,<FeildName1>));
referenceLookup.addLookupfield(fieldNum(<tableName>,<FeildName2>));
// Add the
query to the lookup form
referenceLookup.parmQuery(query);
// Perform
the lookup and return the selected record
return
referenceLookup.performFormLookup() as
<tableName>;
}
|