Import data from excel with autogenerated number sequence by using x++ AX2012

 Import data from excel


public void ExcelImportwithAllDataTypes()

{


    SysExcelApplication                    application;

    SysExcelWorkbooks                    workbooks;

    SysExcelWorkbook                      workbook;

    SysExcelWorksheets                    worksheets;

    SysExcelWorksheet                      worksheet;

    SysExcelCells                                cells;

    COMVariantType                          type;

    Name                                            name;

    FileName                                     filename;

    int                                                 row =2;

    int                                                 i =0 ;

    Wre_CreditsDebitsTable              creditsdebitsTable;

    Wre_Gender                                 gender;

    Wre_PersonGender                       person;

    Wre_Clearance                             invoice;

    Dialog                                          dialog;

    DialogField                                 dialogField;

    NumberSeq                                 numberSeq;

    ;

    application                 =           SysExcelApplication::construct();

    workbooks                 =           application.workbooks();

    dialog                         =           new Dialog("FileOpen");

    dialogfield                  =           dialog.addField(extendedTypeStr(Filenameopen), "File Name");

    dialog.run();



    if (dialog.run())

    {

        filename = (dialogfield.value());

    }


    try

    {

        workbooks.open(filename);

    }


    catch (Exception::Error)

    {

        throw error("File cannot be opened.");

    }


    workbook            =           workbooks.item(1);

    worksheets          =           workbook.worksheets();

    worksheet           =           worksheets.itemFromNum(1);

    cells               =           worksheet.cells();


    numberSeq           =           NumberSeq::newGetNum(NumberSeqReference::findReference(extendedTypeNum(Wre_SrNumber)),true);

    numberSeq.used();

   do

    {

        ttsBegin;

        row++;

        creditsdebitsTable.clear();

        creditsdebitsTable.Wre_SrNumber     =       numberSeq.num();

        creditsdebitsTable.Wre_Name         =       cells.item(row,2).value().bStr();

        creditsdebitsTable.Wre_Gender       =       str2enum(gender,cells.item(row,3).value().bStr());

        creditsdebitsTable.Wre_DOB          =       cells.item(row,4).value().date();

        creditsdebitsTable.Wre_Person       =       cells.item(row,5).value().bStr();

        creditsdebitsTable.Wre_PersonGender =       str2enum(person,cells.item(row,6).value().bStr());

        creditsdebitsTable.Wre_Contact      =       any2int64(cells.item(row,7).value().double());

        creditsdebitsTable.Wre_Amount       =       cells.item(row,8).value().double();

        creditsdebitsTable.Wre_LoanDate     =       cells.item(row,9).value().date();

        creditsdebitsTable.Wre_Reason       =       cells.item(row,10).value().bStr();

        creditsdebitsTable.Wre_Clearance    =       str2enum(invoice,cells.item(row,11).value().bStr());

        creditsdebitsTable.insert();

        type = cells.item(row+1, 1).value().variantType();


        ttsCommit;

    }


   while (type != COMVariantType::VT_EMPTY);



    application.quit();


    info("Done");


    info(strFmt("%1", i));


}

Comments