Skip to main content

How to pass value from form to class, AX 2012

Courtesy : DUG

Dynamics User Group



It's very simple to pass value from a form to a class by defining a method on form and using args.caller() in the class.

1. Take a String control in the form design like  string Customer Name.
2. Go to String control properties and set "Auto declaration" property to "Yes".
3. Go to form methods -> new method -> write return type method like;
    
     public str customerName()
     {
           return CustomerName.Text();
     }

4. Go to main() method of the class and type following:

    public static void main(Args args)
    {
           str custName;
           ;
   
           if(formHasMethod(args.caller(), identifierStr(customerName)))
           {
                custName =  args.caller().customerName();
           }
   
           info(strFmt("%1", custName));
    }

5. Open form enter some text into text box and call this class through menuItem button. It will display the entered text in the info log.

6. Likewise, write code for each and every control.

Comments

Popular posts from this blog

Get Position and Department of an employee | AX 2012

A simple job to get position/designation and department of an employee using employee id: static void WorkerPositionDepartment(Args _args) {     HcmWorker                       hcmWorker;     HcmPositionWorkerAssignment     hcmPositionWorkerAssignment;     OMOperatingUnit                 oMOperatingUnit;     HcmPositionDetail               hcmPositionDetail;     HcmJob                          hcmJob;     HcmPosition             ...

Run SSRS report using x++ code | AX 2012

This post describes how to run an SSRS report through x++ code and passing report parameters as well. Its a simple code and comments are added for further ease in code understanding! public static void runSSRSReport() {     SrsReportRunController controller;             controller = new SrsReportRunController();     controller.parmLoadFromSysLastValue(false);      // write report name and its design in quotes that you want to run     controller.parmReportName("ReportName.DesignName");      // set additional, optional properties like setting landscape to true     controller.parmReportContract().parmPrintSettings().landscape(true);          // set print destination screen/printer/file etc.     controller.parmReportContract().parmPrintSettings().printMediumType (SRSPrintMediumType::S...