Add date range value from dialog to report through code in Axapta

This is a sample code to Add date range value from dialog to report through code in Axapta. This code is to use in report of Ax.

Getfromdialog and dialog is overridden method in Ax report.
 public boolean getFromDialog()  
 {  
 ;  
 cmbOfficeCode = dialogOffice.value();  
 // cmbProjId = dialogProjId.value();  
 DateType = dialogDateType.value();  
 fromdate = dialogfromdate.value();  
 todate = dialogtodate.value();  
 return true;  
 }  
 public Object dialog(Object _dialog)  
 {  
 DialogRunbase dialog = _dialog;  
 ;  
 cmbOfficeCode = InventId;  
 cmbProjId = ProjId1;  
 dialogOffice = dialog.addFieldValue(typeid(InventLocationId), cmbOfficeCode);  
 //dialogProjId = dialog.addFieldValue(typeid(ProjId), cmbProjId);  
 dialogDateType = dialog.addFieldValue(typeid(Irrigation_Date),"Select Date", "Select Date");  
 dialogFromDate = dialog.addFieldValue(typeid(FromDate), fromDate);  
 dialogToDate = dialog.addFieldValue(typeid(ToDate), toDate);  
 return dialog;  
 }  
 public boolean fetch()  
 {  
 QueryBuildDataSource qbds;  
 Query q=new Query();  
 queryRun queryRunCopy;  
 ;  
 q= this.query();  
 qbds = q.dataSourceTable(tablenum(Main));  
 OfficeCode = cmbOfficeCode;  
 if (OfficeCode != '')  
 {  
 select * from _OrganizationChart2_1 where _OrganizationChart2_1.WareHouseCode == OfficeCode;  
 OfficeType = enum2str(_OrganizationChart2_1.Office_type);  
 qbds.addRange(fieldnum(Main, DivisionCode)).value(OfficeCode);  
 }  
 // .value(strFmt('((Date >= %1) && (Date <= %2))',  
 date2StrXpp(startDate), //date2StrXpp(endDate)));  
  if (enum2str(DateType) != '' && fromdate != any2date(0) && todate != any2date(0)) { qbds.addRange(fieldnum(Main, OrderDate)).value(strFmt('((OrderDate >= %1) && (OrderDate <= %2))', date2StrXpp(fromdate), date2StrXpp(todate))); }  
  queryRunCopy = new QueryRun(q);  
  while (queryRunCopy.next())  
 { Main = queryRunCopy.get(tablenum(Main)); this.send(Main); }  
  return true; }