Pass Selected Record To New Form Dynamic AX - Song Nghia - Technical Consultant

Dynamic 365 FO Dynamic 365 Retail

Thứ Ba, 12 tháng 12, 2017

Pass Selected Record To New Form Dynamic AX

Pass Selected Record To New Form Dynamic AX

Trainee: Song Thanh Nghia
Step1. Create a form with datasource as CustTable and design a form, then we have a grid with the same datasource. And add button to override click and function in this to pass argrument.

Step2. Code in Override click

void Clicked()
Args    _args;
FormRun _formRun;
AccountNum      _accountNum;
_accountNum = CustTable.AccountNum;  // Selected data to pass in args
_args = new Args(); // creating a object for args class;  // Name of display form
_args.caller(this);  //Caller form
_args.parm(_accountNum); // Parm record to new form 
_args.record(CustTable); // Table name is passed
_formRun = ClassFactory.formRunClass(_args); //new FormRun(_args);   // Creating object for FormRun
_formRun.init();   // Form Initialization for Load;  // Form Run for process
_formRun.wait(); // Form Wait for Display

Step3. Create another form same old form

Step4. In new form overide init form 

public void init()
parmid      _parmId;
CustTable   _CustTable;
_parmId =  element.args().parm();
        info('DataSet Not Received'); 

Step5. Overide Init datasource

public void init()
    Query               query;
    QueryBuildRange     queryBuildRangeProj;
switch(element.args().dataset())// get the table id sent by caller
case tablenum(CustTable):  // check the table if matches with this tableid
_AccountNum  =   element.args().parm();  // get the argument value
query  = new Query();
queryBuildRangeProj = query.addDataSource(tablenum(CustTable)).addRange(fieldnum(CustTable,AccountNum));          // query build for the form to display
queryBuildRangeProj.value(_accountNum); // Criteria for the form
CustTable_ds.query(query); // execution of the query
super(); //datasource  initialization on the form based on the criteria

Step6. In the class declaration of the form

public class FormRun extends ObjectRun
          SysLookupMultiSelectCtrl msCtrl;
          AccountNum   _accountNum   ;

And then is result

Learn online