Search This Blog

Thursday 17 October 2013

X++ Code to fetch the Ranges / Criteria in the run-time Query Dialog

Hi Guys,

The following code helps you to fetch the ranges/criteria in the run-time query dialog .
Paste this code in the Reports->Design->AutoDesign->methods->execute section. 



    QueryBuildRange         range;   
     int                     cnt, i;  
    ;  
    cnt = queryRun.query().dataSourceTable(tablenum(CustTable)).rangeCount();

    for (i=1 ; i<=cnt; i++)
    {
        range = queryRun.query().dataSourceTable(tablenum(CustTable)).range(i);
        info(strfmt("Range Field %1, Value %2",range.AOTname(),range.value()));
    }

Friday 11 October 2013

Generating Multiple Number Sequence in AX 2009



Step1:

Create a table NumSeq table , add two fields NumSeqcode and Description . Enter two or more records in that table


Step 2:

Add one new field called VendNumSeq in VendParameters Table .
Add VendNumSeq in VendParameters Form.  write lookup method for VendNumSeq field to display the NumSeqcode and Description from NumSeq Table  or give Edt level relationship .

public void lookup()

{
    Query                 query = new Query();
    QueryBuildDataSource  qbds;
    QueryBuildRange       queryBuildRange;
    SysTableLookup        sysTableLookup;

    ;
    sysTableLookup  =   SysTableLookup::newParameters(tablenum(NumSeq),this);
    sysTableLookup.addLookupfield(fieldnum(NumSeq,NumSeqcode));
 sysTableLookup.addLookupfield(fieldnum(NumSeq,Description));
    sysTableLookup.performFormLookup();


}


Step 3:

In VendNumSeq field override modified method


public boolean modified()
{
    boolean ret;
    str st;
    VendParameters  vendParametersLoc;
    NumberSequenceReference  numberSequenceLocal;
;
    ret = super();

    vendParametersLoc = VendParameters::find();
    NumberSequenceLocal = NumberSequenceReference::find1();
    st = NumberSequenceReference.referenceLabel();

    ttsbegin;
    select firstonly forupdate NumberSequence from numberSequenceLocal;

    {

        st = "Vend account";
        NumberSequenceReference.NumberSequence=this.valueStr();
        NumberSequenceReference.update();

    }
    ttscommit;

    return ret;
}

Step 4 :

Generate NumberSequence for the records present in NumSeq Table

Basics-> Setups->Number Sequence -> Number Sequence


Create new record for INDV,UKV,etc (according to your requirements)

Step 5:

 Check whether updates are made in Vendor Account field in NumberSequenceTab in VendParameters Form


Step 6:

Accounts Payable -> Common Forms-> Vendor Details
Press ctrl +N , Number sequence will be generated according to the input given in VendSeqNum field present in VendParameters  Form (Accounts Payable->Set ups-> Parameters-> General ->VendSeqNum )







Thursday 10 October 2013

Lookup method in Form level 




public void lookup()

{
    Query                 query = new Query();
    QueryBuildDataSource  qbds;
    QueryBuildRange       queryBuildRange;
    SysTableLookup        sysTableLookup;

    ;
    sysTableLookup  =   SysTableLookup::newParameters(tablenum(CustTable),this);
    sysTableLookup.addLookupfield(fieldnum(CustTable,Name));
    sysTableLookup.performFormLookup();


}

Tuesday 8 October 2013

Create a YesNo Box


DialogButton dialogButton;
dialogButton = Box::yesNoCancel("Do you want to continue?",
DialogButton::Yes, "Question", "Bottom help text");

How to create a dialog Box in Dynamic Ax 2012



create a job named as Simple_Dialog:

static void Simple_Dialog(Args _args)
{
dialog dialog;
dialogGroup dialogGroup;
dialogField dialogField;
dialog = new Dialog("Simple Dialog");
dialogGroup = dialog.addGroup("Customer");
dialogField = dialog.addField(extendedTypeStr(custAccount));
if (dialog.run())
{
print dialogField.value();
pause;
}
}