AX / D365FO – Get datasource from a Form extension class

At Form Level

[ExtensionOf(formStr(SalesTable))]
final class KSSalesTableFrm_Extension
{
    public int active()
    {
	FormRun              formRun                  = this as  FormRun;

        //get any datasource from the base form
	FormDataSource salesLine_ds            = formRun.datasource(FormDatasourceStr(SalesTable,SalesLine));  
	SalesLine              salesLine                  = salesLine_ds.Cursor();
	
	//get any formcontrol from the base form
	FormControl      itemName= formRun.design().ControlName(FormControlStr(SalesTable, itemName));
	
	//business Logic

	 return next active();
      }
}

At FormDataSource level

[ExtensionOf(formDatasourceStr(SalesTable, SalesLine))]
final class KSSalesTableFrm_SalesLineDS_Extension
{
    public void executeQuery()
    {
         next executeQuery();

        FormDataSource                  formDS                    = this;
        FormComboBoxControl      comboBoxControl;   

        //get form datasource       
        SalesLine             salesLineLocal  = this.cursor();               

	//get any other datasource from the base form
        FormDataSource inventDim_ds  = formDS.formRun().dataSource(formDataSourceStr(SalesTable, InventDim));
        InventDim            inventDim      = inventDim_ds.cursor();
	
	//get any formcontrol from the base form
        comboBoxControl     = formDS.formRun().design().controlName(formControlStr(SalesTable, SalesTable_SalesTypeGrid));

        //business logic
    }	
}

At Form Datafield level

[ExtensionOf(formDataFieldStr(SalesTable, SalesLine, BarCode))]
final class KSSalesTableFrm_SalesLineDS_BarCodeDF_Extension
{
    public void modified()
    {
         next modified();

         FormDataObject                    barCode_do = any2Object(this) as FormDataObject;
         FormComboBoxControl       comboBoxControl;        

         //get form datasource
        FormDataSource                 salesLine_ds   = barCode_do.datasource();
        SalesLine                              salesLine         = salesLine_ds.cursor();

	//get any other datasource from the base form
        InventDim    inventDim     = salesLine_ds.formRun().dataSource(formDataSourceStr(SalesTable, InventDim)).cursor();

	//get any formcontrol from the base form
	 comboBoxControl   = salesLine_ds.formRun().design().controlName(formControlStr(SalesTable, SalesTable_SalesTypeGrid));

        //business logic
	
      }
}

At Form DataControl level

[ExtensionOf(formControlStr(SalesTable, PrintMgmt))]
final class KSSalesTableFrm_PrintMgmtCtl_Extension
{
    public void clicked()
    {

        FormControl                       buttonControl         = any2Object(this) as FormControl;
        FormRun                             formRun                 = buttonControl.formRun();
       
        InventDim                           inventDim
        FormComboBoxControl   formComboBoxControl;

	//get any datasource from the base form
        inventDim     = formRun.dataSource(formDataSourceStr(SalesTable, InventDim)).cursor();

	//get any formcontrol from the base form
	 formComboBoxControl   = formRun.design().controlName(formControlStr(SalesTable, SalesTable_SalesTypeGrid));

        next clicked();
        //business logic
	
      }
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s