Bojensen Blogs

Creating a report in X++ code and running – David Ferguson – Site Home – MSDN Blogs

Here is a small job that demonstrates the main parts of build a report dynamically in X++ and launching it.

static void MakeReportJob(Args _args)
 {
     #AOT
     str reportName = 'aaMakeReport';
     tableid custTableId = tablenum(CustTable);
    TreeNode reportNode = TreeNode::findNode(#ReportsPath);
     Report areport;
     ReportDesign design;
     ReportAutoDesignSpecs specs;
     ReportSection section;
     ReportRun run;
     ;
     // Delete the report if it already exists
     areport = reportNode.AOTfindChild(reportName);
     if (areport)
         areport.AOTdelete();

     // Build the report
     areport = reportNode.AOTadd(reportName);
     areport.query().addDataSource(custTableId);
     design = areport.addDesign('Design');
     specs = design.autoDesignSpecs();
     section = specs.addSection(ReportBlockType::Body, custTableId);
     section.addControl(custTableId, fieldnum(CustTable, AccountNum));
     section.addControl(custTableId, fieldnum(CustTable, Name));
     // Now the report will not prompt for user input
     areport.interactive(false);
     areport.query().interactive(false);
     areport.AOTcompile();
    run = ClassFactory.reportRunClass(new Args(reportName));
    run.init();
    run.run();
}

Creating a report in X++ code and running – David Ferguson – Site Home – MSDN Blogs

Comments are closed.