Skip to main content

How to design and call a form through X++ code

http://msdn.microsoft.com/en-us/library/formrun.control.aspx

static void createForm(Args _args) 
{ 
    Args args; 
    Form form; 
    FormRun formRun; 
    FormBuildDesign formBuildDesign; 
    FormBuildDataSource formBuildDataSource; 
    FormBuildGridControl formBuildGridControl; 
    FormGridControl formGridControl; 
    DictTable dictTable; 
    int idx; 
    int height;  
 
    // Create the form header. 
    form = new Form(); 
 
    form.name("myForm"); 
    // Add data sources to the form. 
    dictTable = new DictTable(tableNum(custTable)); 
    formBuildDataSource = form.addDataSource(dictTable.name()); 
    formBuildDataSource.table(dictTable.id()); 
 
    // Create the form design. 
    formBuildDesign = form.addDesign('Design'); 
 
    // Add a grid control. 
    formBuildGridControl = 
 formBuildDesign.addControl(FormControlType::Grid,'Grid'); 
    idx = formBuildGridControl.id(); 
 
    formBuildGridControl.addDataField(formBuildDataSource.id(), 
dictTable.fieldName2Id("AccountNum")); 
    formBuildGridControl.addDataField(formBuildDataSource.id(), 
dictTable.fieldName2Id("Phone")); 
 
    args = new Args(); 
    args.object(form); 
 
    // Create the run-time form. 
    formRun = classfactory.formRunClass(args); 
     
    formRun.run(); 
    formRun.detach(); 
 
    formGridControl = formRun.control(idx); 
    formGridControl.heightMode(-1); // Fixed. 
    height = formGridControl.heightValue(120); 
}

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...

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(a...