1.Create formA like
Note : FormA contains multiple select lookup so it has features of getting the multiple Account Number;
Main class is modified as below in the FormA
public classFormRun extends ObjectRun
{
SysLookupMultiSelectCtrl msCtrl;
}
/***************************************************/
//in the init method of FormA.
public voidinit()
{
super();
// AccountNum – Name of control on which you want a lookup.
// CustQry – Query to get the lookup data of that required table
msCtrl = SysLookupMultiSelectCtrl::construct(element, AccountNum, querystr(CustQry));
}
/***************************************************************/
//in the button clicked() in FormA.
void clicked()
{
// Args class is usually used in Axapta for passing parameters between forms
Args args;
FormRun formRun;
container contain;
str containstr;
;
args = new args();
// Our values which we want to pass to FormB
// If we want pass just simple string we can use ‘parm’ method of ‘Args’ class
contain = [AccountNum
.valueStr()];
.valueStr()];
containstr = con2Str(contain);
args.parm(containstr);
// Run FormB
args.name(formstr(CustomerDetails));
formRun = classFactory.formRunClass(Args);
formRun.init();
formrun.run();
formrun.wait();
super();
}
/*******************************************************************/
2.Create FormB as like this
On clicking of the above FormA “Clickhere” that concern AccountNum details will be depicted in grid
//in the FormB Class declaration
public classFormRun extends ObjectRun
{
container contain;
str CompanyId;
}
/*************************************************************************/
/ in the init() of that fornB
public voidinit()
{
str tmp;
;
super();
// Check for passed arguments
if( element.args() )
{
contain = str2con(element.args().parm());
//Now receive the container multiple value with separater as “;” to replace with “,”
AccountNumb.text(strReplace(strFmt(“%1”,conPeek(contain,1)),‘;’,‘,’));
}
}
/**********************************************************/
In the Data source of the FormB drop the CustTable and in the executeQuerry() of that datasource
//This makes the grid to reflect with reference to the StringEdit that we added as the range to the grid.
public voidexecuteQuery()
{
this.query().dataSourceNo(1).addRange(fieldNum(CustTable,AccountNum)).value(AccountNumb
.valueStr());
.valueStr());
super();
}
/***********************************************************/
3.Onclicking of “Cust report Generator” that concern report will be generated like this.
//here you find the change In the image that is because of the company image.