Wednesday, 19 October 2016

import-customer-mastervendor-master-and-their-primary-addresses on Ax 2009

https://shekhardiptiman.wordpress.com/2010/01/14/dynamics-ax-2009-%E2%80%93-import-customer-mastervendor-master-and-their-primary-addresses/

Friday, 30 September 2016

passing parameters between forms in AX

https://calebmsdax.wordpress.com/2013/02/22/passing-parameters-between-forms-in-ax/

Tuesday, 27 September 2016

Copy user groups from one user to another X++ in ax



//Copy user groups from one user to another X++
static void KR_AXEcopyUserGroup(Args _args)
{
    usergrouplist usergrouplist,ins;
    userid src,dest;
    dialogfield srcdf,destdf;
    dialog dialog;
    ;
    dialog = new dialog("copying user's user groups");
    srcdf = dialog.addField(typeid(userid),"Source");
    destdf = dialog.addField(typeid(userid),"Destination");



    if(dialog.run())
    {
        src = srcdf.value();
        dest = destdf.value();
        if(src!="" && dest !="")
        {
            ttsbegin;
            while select * from usergrouplist
            where usergrouplist.userId == dest
            {
                info(strfmt("Before update: '%1'-'%2'",usergrouplist.userid,usergrouplist.groupId));
            }

            info("Deleting user groups from destination user");
            delete_from usergrouplist
                where  usergrouplist.userId == dest;


            info("Copying user groups to destination user");
            while select * from usergrouplist
            where usergrouplist.userId == src
            {
                info(strfmt("source user: '%1'-'%2'",usergrouplist.userid,usergrouplist.groupId));
                ins.clear();
                ins.data(usergrouplist);
                ins.UserId = dest;
                ins.insert();
            }
            ttscommit;
            info("User groups has been copied!");
        }
    }
    else
    {
        info("Canceled by user");
    }


}

Sunday, 11 September 2016

Thursday, 18 August 2016

Import Excel Data into Dynamics AX 2009

https://vasanthax.wordpress.com/2010/08/19/import-excel-data-into-dynamics-ax-2009/

Success One:: Class:
Class Declaraion:
public class KR_CustPaymentImport extends objectRun

{
}
//////////////////////////////////////////////////////////////////////////
2: Run: 
void run()
{
     LedgerJournalTable ledgerJournaltable;
    LedgerjournalTrans ledgerjournalTrans;
    LedgerJournalName   ledgerJournalName;
   NumberSeq           numberSeq;
    COMVariantType     type,typeLoc;
    LedgerJournalACType ledgerJournalACType;
    Dialog  dialog;
    DialogField             dialogField;
    Filename                filename;
   // NumberSeq               numSeq;
    str                     jourName;

     int                 lineNum;
    COMVariant  COMVariant1;
    SysExcelApplication app;
    SysExcelWorkbooks   Workbooks;
    SysExcelWorkbook    Workbook;
    SysExcelWorksheets  Worksheets;
    SysExcelWorksheet   Worksheet;
    SysExcelCells       Cells;
    SysExcelCell        RCell;
    int                 row;
    int temp;
     #Excel

    str COMVariant2Str(COMVariant _cv,
                       int _decimals = 0,
                       int _characters = 0,
                       int _separator1 = 0,
                       int _separator2 = 0)
    {
        switch(_cv.variantType())
        {
            case (COMVariantType::VT_BSTR):
                return _cv.bStr();

            case (COMVariantType::VT_R4):
                return num2str(_cv.float(),
                                _characters,
                                _decimals,
                                _separator1,
                                _separator2);

            case (COMVariantType::VT_R8):
                return num2str(_cv.double(),
                                _characters,
                                _decimals,
                                _separator1,
                                _separator2);

            case (COMVariantType::VT_DECIMAL):
                return num2str(_cv.decimal(),
                                _characters,
                                _decimals,
                                _separator1,
                                _separator2);

            case (COMVariantType::VT_DATE):
                return date2str(_cv.date(),
                                123,
                                2,
                                1,
                                2,
                                1,
                                4);

            case (COMVariantType::VT_EMPTY):
                return "";

            default:
                throw error(strfmt("@SYS26908",
                                    _cv.variantType()));

        }
        return "";
    }
    ;
    dialog = new Dialog("Import Customer Payment Journal.");
    dialogfield = dialog.addField(typeid(Filenameopen), "Select File");
    dialog.run();
    if (dialog.run())
        {
            filename = (dialogfield.value());
        }
    app = SysExcelApplication::construct();
    app.visible(false);
    Workbooks = app.Workbooks();
    Workbooks.open(filename,0);
    Workbook = Workbooks.item(1);
    Worksheets = Workbook.worksheets();
    Worksheet = Worksheets.itemFromNum(1);
    Cells = Worksheet.Cells();
    row = 2;
    RCell = Cells.Item(row, 1);
 select firstonly ledgerjournalName where ledgerJournalName.JournalName == 'ARPay';
    ledgerJournalTable.JournalName = LedgerJournalName.JournalName;
    ledgerJournalTable.initFromLedgerJournalName();
    ledgerJournalTable.insert();
    numberSeq = NumberSeq::newGetVoucherFromCode(ledgerJournalName.VoucherSeries);
    // numberSeq = NumberSeq::newGetVoucherFromCode(ledgerJournalName.VoucherSeries);
     ttsbegin;
   // while(RCell.Value().double() > 0)
     do
    {

        ledgerJournalTrans.clear();
        ledgerJournalTrans.voucher = numberSeq.voucher();
        ledgerJournalTrans.LineNum = lineNum;
        ledgerJournalTrans.AccountType = LedgerJournalACType::Cust;
        //ledgerjournalTable.JournalNum =(Cells.Item(row, 1).value().bStr());
        ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum;
        ledgerJournalTrans.initValue();
        ledgerjournalTrans.Company= curext();
        ledgerjournalTrans.TransDate =(Cells.Item(row, 1).value().date()); //any2date(Cells.Item(row, 1).value());//
        ledgerJournalTrans.AccountNum =COMVariant2Str(Cells.Item(row, 2).value());
        ledgerjournalTrans.MarkedInvoice = Cells.Item(row, 3).value().bStr();
        ledgerjournalTrans.Txt =Cells.Item(row, 4).value().bStr();
        ledgerjournalTrans.AmountCurDebit = (Cells.Item(row, 5).value().double());
        ledgerjournalTrans.AmountCurCredit =(Cells.Item(row, 6).value().double());
        ledgerJournalTrans.OffsetAccountType = str2enum(LedgerJournalACType,cells.item(row, 7).value().bStr());//cells.item(row, 7).value().variantType(); //LedgerJournalACType::Bank;//  LedgerJournalACType::Bank;
        ledgerJournalTrans.OffsetAccount =Cells.Item(row, 8).value().bStr();//'PNCUS'; //ledgerJournalTrans.findOffsetAccount();
        ledgerJournalTrans.PaymMode =Cells.Item(row, 9).value().bStr();
        ledgerjournalTrans.CurrencyCode =Cells.Item(row, 10).value().bStr();
        ledgerjournalTrans.PaymReference=Cells.Item(row, 11).value().bStr();
        ledgerjournalTrans.krDeductionType=Cells.Item(row, 12).value().bStr();
        ledgerjournalTrans.Dimension[4]=Cells.Item(row, 2).value().bStr();
        ledgerjournalTrans.insert();
       // RCell = Cells.Item(row, 1);
        type = cells.item(row+1, 1).value().variantType();
         row++;

    }
    while (type != COMVariantType::VT_EMPTY);

    ttscommit;
    info("Customer payment lines imported Successfuly");
    info(strfmt("journal Number %1" , ledgerJournalTable.JournalNum));
    app.quit();

}

///

Static LedgerJournalTable createLedgerJournalTable(LedgerJournalNameID _ledgerJournalNameID)
{
     LedgerJournalName   ledgerJournalName;
      LedgerJournalTable ledgerJournaltable;
      NumberSeq           numberSeqLoc;
     ;
/*elect firstonly ledgerjournalName where ledgerJournalName.JournalName == 'ARPay';
    ledgerJournalTable.JournalName = LedgerJournalName.JournalName;
    ledgerJournalTable.initFromLedgerJournalName();
    ledgerJournalTable.insert();*/
   // numberSeqLoc = NumberSeq::newGetVoucherFromCode(ledgerJournalName.VoucherSeries);
return ledgerJournaltable;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void Main(Args _args)
{
KR_CustPaymentImport krCustPaymentImport;
krCustPaymentImport = new KR_CustPaymentImport();
krCustPaymentImport.run();
}

Tuesday, 26 July 2016

Form Data displaying Asending Or Descending through code

// Changed on 26 Jul 2016 at 05:09:16 by jredd
public void init()
{
    super();
         this.query().dataSourceNo(1).addSortField(fieldnum(Kr_eDoc_CheckRegister,kr_ChequeNumber),SortOrder::Descending);

// this.query().dataSourceNo(1).addSortField(fieldnum(TableName, Fieldname),SortOrder::Descending);
}