After you created your report in AX you can call report from  AX form by follow the below steps:
1- Create menu item with type output by drag and drop report to MenuItems nodes under AOT.
2- Open the form that you need to call report from.
                  Note: the form should be have dataSource with the table in report
3-  Drag and Drop menu Item created in step 1 in the form under any button group.
4- Add the following method to Report
void initFromCaller(Args _args)
{
str QrderId; // field used as Rang and used to filter data
QueryBuildDataSource qbds; // should be represent report datasource and selected record in the form
{
str QrderId; // field used as Rang and used to filter data
QueryBuildDataSource qbds; // should be represent report datasource and selected record in the form
    ;
    if (! _args ||
! _args.caller() ||
_args.dataset() != tablenum(TableName) )
return;
! _args.caller() ||
_args.dataset() != tablenum(TableName) )
return;
    QrderId = _args.record().(fieldnum(TableName,FieldName));
    qbds    =  element.query().dataSourceTable(tablenum(TableName));
    if(!qbds.findRange(fieldnum(TableName,FieldName)))
{
qbds.addRange(fieldnum(TableName,FieldName)) ;
}
qbds.findRange(fieldnum(TableName,FieldName)).value(queryvalue(QrderId));
{
qbds.addRange(fieldnum(TableName,FieldName)) ;
}
qbds.findRange(fieldnum(TableName,FieldName)).value(queryvalue(QrderId));
}
