Thursday 31 August 2017

Reverse string in Dynamics AX.

Hi guys,
Reverse string in Dynamics AX.

static void reverseString(Args _args)
{
    int     i;
    str     temp;
    str     retVar = 'DynamicsAX';
    int     length;
    str     getvalue,RV;
    ;
    length = strLen(retVar);
    for(i=length; i>=1; i--)
    {
        temp =SubStr(retVar,i,1);
        getvalue +=temp;

        // other way with strReverse function
        RV = strReverse(retVar);
    }
    info(RV);
}

Add filter on display method on form control in AX 2012 R3

Hi guys,

Here I have added display method ("displayInternalPackingSlipId" set auto declaration as yes on form control) to display GSN number on the “VendPackingSlipJour” form. In this form main data source is “VendPackingSlipJour”.
Override context method as bellow on display method control  and modified logic as per need.

public void context()
{
    int             selectedMenu;
    formrun         fr;
    Args            ag;
    Name            strtext;
    querybuilddataSource qb1;
    queryrun    qr;
    query       q;
    PopupMenu menu = new PopupMenu(element.hWnd());
    int a = menu.insertItem('Filter By Field');
    int b = menu.insertItem('Filter By Selection');
    int c = menu.insertItem('Remove Filter');
    ;

    selectedMenu = menu.draw();
    switch (selectedMenu)
    {
    case -1: //Filter by field
            break;
    case a:
            ag = new args('SysformSearch');
            fr = new formrun(ag);
            fr.run();
            fr.wait();
    //Reading User entered value for filter process
            strtext = fr.design().controlName('FindEdit').valueStr();
            if(strtext)
            {
    //Creating a query for filter
                q   = vendPackingSlipJour_ds.query();
                qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
                qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
                qb1.addLink(FieldNum(VendPackingSlipJour,Recid),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
                qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(strtext);
                vendPackingSlipJour_ds.query(Q);
                vendPackingSlipJour_ds.executeQuery();
            }
            break;

    case b:   // Filter By Selection
            q   = vendPackingSlipJour_ds.query();
            qb1 = q.dataSourceTable(tablenum(VendPackingSlipJour));
            qb1 = qb1.addDataSource(TableNum(VendPackingSlipVersion));
            qb1.addLink(FieldNum(VendPackingSlipJour,RecId),FieldNum(VendPackingSlipVersion,VendPackingSlipJour));
            qb1.addRange(FieldNum(VendPackingSlipVersion,InternalPackingSlipId)).value(displayInternalPackingSlipId.valueStr());
            vendPackingSlipJour_ds.query(Q);
            vendPackingSlipJour_ds.executeQuery();
            break;
    case c :   // Remove Filter
            q   = new Query();
            qb1 = q.addDataSource(tablenum(VendPackingSlipJour));
            qb1.clearLinks();
            qb1.clearRanges();
            vendPackingSlipJour_ds.query(Q);
            vendPackingSlipJour_ds.removeFilter();
            break;

    Default:
            break;
    }

}

Happy DAXing. 


Thursday 10 August 2017

Get customer email in ax 2012

Get customer email in ax 2012

static void Custermail(Args _args)
{
    LogisticsElectronicAddress          led;
    LogisticsLocation                   ll;
    CustTable                           ct;

    DirPartyLocation     dpl;
    str phone,fax,email,url;
    RecId  RecId;
    ;
    select  ct where ct .AccountNum =='ABC'
    join dpl where ct.Party == dpl.Party
    join led where led.Location == dpl.Location
    && led.IsPrimary == NoYes::Yes
    && led.Type == LogisticsElectronicAddressMethodType::Email;
    {
        email =  led.Locator;
        info(email);
    }
}

Import General journal from excel in D365 F&O

 Hi Guys, Import General journal from excel in D365 F&O Code:  using System.IO; using OfficeOpenXml; using OfficeOpenXml.ExcelPackage; u...