Passing parameters from Managed code to axapta X++ in dataset

This is code hint for Passing parameters from Managed code to axapta X++ in dataset of Enterprise portal

 protected void Page_Init(object sender, EventArgs e)  
 {  
 this.AxDataSource1.CreatingDataSetRun += new EventHandler(AxDataSource1_CreatingDataSetRun);  
 }   
 Set the param value to the event arugments void AxDataSource1_CreatingDataSetRun(object sender, CreatingDataSetRunEventArgs e)  
  {  
 e.DataSetRunArgs.parm = "4000";  
 }   
 In AOT override or add method in the data set and use element.args().parm() to received the paramter public void executeQuery()  
 {  
 QueryBuildRange custRange;   
  custRange = SysQuery::findOrCreateRange(this.query().dataSourceNo(1), fieldnum(CustTable, AccountNum));   
 custRange.value(element.args().parm());  
  super();  
  }   
 You can also pass an Enum. For example void AxDataSource1_CreatingDataSetRun(object sender, CreatingDataSetRunEventArgs e)  
 {  
 e.DataSetRunArgs.parmEnumType = EnumMetadata.EnumNum(this.AxSession, "EPFormAction");  
 e.DataSetRunArgs.parmEnum(2);  
 }  
  public void init()  
 {  
 super();  
  if (element.args().parmEnumType() == enumnum(EPFormAction) && element.args().parmEnum() == EPFormAction::CreateMode)  
 {  
 //do somethign here  
 }  
  }