Saturday, 30 June 2012

Microsoft Dynamics Ax 2009 web project template is missing in visual studio 2008



If you cant see the Dynamics AX Web Project template in Visual Studio, please go through the following list:


If a user can see Microsoft Dynamics Ax Web Project template it’s because in his/her profile on system the template is available. In general the template is located on a windows 2003 server at C:\Documents and Settings\[user id ]\My Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual Web Developer\CSharp\ AxWebProject.zip


To make Microsoft Dynamics Ax Web Project template available for other users copy the Templates folder from the user who can see template and paste it to other users’ profile It assumed that your templates are available in the default located as mentioned in above path

1.    Go to C:\Documents and Settings\[user id ]\My Documents\Visual Studio 2008\

2.    Copy Templates folder

3.    Open the other users’ profile and go to C:\Documents and Settings\[user id ]\My Documents\Visual Studio 2008\

4.    Paste the Templates folder. If system says to overwrite it click on yes option.

5.    You may need to refresh Visual Studios cache of templates after copying them:

6.    Open the Visual Studio command prompt (Start \ Programs \ Microsoft Visual Studio 2008 \ Visual Studio Tools \ Visual Studio 2008 Command Prompt) and type devenv /installvstemplates.

7.    If you still don't see the template, remember that you need to select C# as your project programming language before it shows up.
If you can see the template but can't connect to the AX AOS from Visual Studio check the following:

1.    Check that .NET Business Connector has been correctly installed and that the configuration points to the correct AOS instance.


2.    Check that the user you run Visual Studio with, has login and proper development permissions in AX.
 

3.    Check that the "Dynamics AX Enterprise Portal Tools" Add-in is correctly installed in Visual Studio. Open Visual Studio / Tools / Add-in Manager to verify that Add-in is correctly installed and configured. If you can't see it, you must reinstall the EP Development Tools.


Monday, 25 June 2012

Sequence of Form's Methods in Dynamics AX

This gives the information of method calls in the form level while
1. Opening the Form.
2. Creating/Updating/Deleting the record in the Form.
3. Closing the Form.
Sequence of Methods calls while opening the Form
Form — init ()
Form — Datasource — init ()
Form — run ()
Form — Datasource — execute Query ()
Form — Datasource — active ()
Sequence of Methods calls while closing the Form
Form — canClose ()
Form — close ()
Sequence of Methods calls while creating the record in the Form
Form — Datasource — create ()
Form — Datasource — initValue ()
Table — initValue ()
Form — Datasource — active ()
Sequence of Method calls while saving the record in the Form
Form — Datasource — ValidateWrite ()
Table — ValidateWrite ()
Form — Datasource — write ()
Table — insert ()
Sequence of Method calls while deleting the record in the Form
Form — Datasource — validatedelete ()
Table — validatedelete ()
Table — delete ()
Form — Datasource — active ()
Sequence of Methods calls while modifying the fields in the Form
Table — validateField ()
Table — modifiedField ()

Tuesday, 8 November 2011

Highlight the Selected Record Row in Axapta Report

Hi,
To highlight the  row in axapta report based on specific value just add the following code in the execution section  of section group.

public void executeSection()
{
    int usecolor
    ;
    usecolor=WinApi::RGB2int(255,0,0);
    if(inventTable.itemprice>5)
    {

        this.foregroundColor(usecolor);
    }
    else
    {
        this.foregroundColor(white);
    }
    super();

}

this will highlight all the record where item greater then 5.
I hope it works .
Regards,

Friday, 28 October 2011

How to pass parameters from Form to form

Hi,
Sometimes we want to open a form from another form with the selected record . For this we need to pass the parameters from form A to form B . This could be achieved by using args class by overriding the click method of button on form A.
In this example we will use two forms form A is salesLine form and form B is inventenquiry form. when the user will click on the button on form A it will open form B filtering the record according the form A value.lets start

  1. Put a button on form A and override its click method
  2. write the following code

void clicked()
{
    //super();
    Args args=new Args();
    Itemid itemid;
    FormRun formRun;
    ;
    args.name(formstr(InventEnquiry)); // invent enquiry is the form B
    args.parm(salesLine.ItemId);// passing the item id from Form A
 
    formRun = classFactory.formRunClass(args); /// passing the args class
    formRun.init();
    formRun.run();
    formRun.wait();
 
}
3.Now override the init method of the form B data source inventTable

public void init()
{
     super();
     if(element.args().parm())
    {

       this.query().dataSourceName('InventTable').addRange(fieldnum(InventTable,ItemId)).value(element.args().parm());
       this.query().userUpdate(false);
            this.query().interactive(false);

    }

}

Hope it helps
cheers,

Friday, 14 October 2011

How to save the report in PDF format on selected location

Hi, 
To run and save the axapta report in PDF format on your hard drive just override the init() method of your report with the following code.


public void init()
{
super();
element.printJobSettings.setTarget(PrintMedium::File); // print format is on file
element.printJobSettings.preferredTarget(PrintMedium::File);
element.printJobSettings.format(PrintFormat::PDF);
element.printJobSettings.preferredFileFormat(PrintFormat::PDF);  //file extension is pdf
element.printJobSettings.fileName("c:\\temp\\test-invoice.pdf"); // file location and name
element.printJobSettings().warnIfFileExists(false);  // dont show the option to overwrite report file
element.printJobSettings().allPages(false); // dont print all pages of report
element.printJobSettings().from(2); // print from page 2
element.printJobSettings().to(5); //print to page 5
element.query().interactive(false); // disable all dialogue 
element.report().interactive(false);
}


Regards,

Wednesday, 12 October 2011

How to pass parameters from Form to Class

Hi, 
To pass the parameters from form to class is straightforward.
1.Create a class yourClass
class yourClass { }
2. override the new method

void new(PurchID purchid)
{
;
info(Itemid);
}
---------- Class Completed
Go to form purchTable
1. Add a button
2. override the click method of the button with following code
void clicked() 
{  
PurchID purchId;
Args args=new Args();
YourClass yourClass;  
;
purchId=args.parm(purchTable.purchid);  
yourClass=new YourClass(purchid); 
}
Save and Compile
now when u will hit the button on purchTable form it will return the current purchid of the data source . I hope it will help
Cheers,



Monday, 12 September 2011

How to insert a Page footer on the last page in Axapta report

Hi, 
Normally developers need the term and condition or other stuff to be displayed only on the last page .To insert the footer only on the last page of Axapta report do the following stes.
1. Declare a boolean variable (pageFooter) in report class declaration method .

             public class ReportRun extends ObjectRun
            {
                 boolean pageFooter;
            }
2. Override the report fetch method with query 
          public boolean fetch()
          {
               boolean ret;
               ret = super();
               printPageFooter=false;
                while(queryrun.next())
                {


                }
               printPageFooter=true;
               return true;
          }


3. Override the executeSection method of footer 
      
          public void executeSection()
          {
                if(printPageFooter==true)


                super();
           }


and your done now when ever your will run a report only the last page will display the page footer. 
Regards,