X++ Code to import data from excel and getting path of uploaded file by clicking a button

 Create button and over ride clicked method :-

Using System.IO;


Using OfficeOpenXml;


Using OfficeOpenXml.ExcelPackage;


Using OfficeOpenXml.ExcelRange;



class BASUploadButton 

{

    

   


    /// <summary>

    /// Runs the class with the specified arguments.

    /// </summary>main(Args _args)

    /// <param name = "_args">The specified arguments.</param>

    /// 

    

  


    public static void main(Args _args)

    {

        System.IO.Stream            stream;

        ExcelSpreadsheetName        sheet;

        FileUploadBuild             fileUpload,fileUploadBuild;

        DialogGroup                 dialogUploadGroup;

        FormBuildControl            formBuildControl;

        BAS_ImportPurchaseOrder     selectedRecord = _args.record();

        BAS_ImportPurchaseOrder     importPurchaseOrder;

        BASPurchaseOrderEntity      purch;


        Dialog   dialog=new Dialog("Excel Import File");

        dialogUploadGroup = dialog.addGroup("@SYS54759");

        formBuildControl  = dialog.formBuildDesign().control(dialogUploadGroup.name());

        fileUploadBuild   = formBuildControl.addControlEx(classStr(fileUpload),"UploadExcel");

        fileUploadBuild.style(FileUploadStyle::MinimalWithFilename);

        fileUploadBuild.fileTypesAccepted(".xlsx");

        //if(dialog.run() && dialog.closedOk())

        //{

            //FileUpload fileUploadControl=dialog.formRun().control(dialog.formRun().controlId("Upload"));

            FileUploadTemporaryStorageResult    fileUploadResult=file::GetFileFromUser(classStr(FileUploadTemporaryStorageStrategy));

               

            // Updating URL

            select * from importPurchaseOrder

                where importPurchaseOrder.BAS_SINo == selectedRecord.BAS_SINo;

            if(importPurchaseOrder)

            ttsbegin;

            importPurchaseOrder.selectForUpdate(true);

            //Getting URL/path of code       

            importPurchaseOrder.BASUploadFileLocation = fileUploadResult.getDownloadUrl();

            importPurchaseOrder.update();

            ttscommit;

                

              

            //fileUploadResult=fileUploadControl.getFileUploadResult();

            /*------------------part 1 end---------------------*/

            /*------------------part 2---------------------*/

            if(fileUploadResult!= null && fileUploadResult.getUploadStatus())

            {

                stream=fileUploadResult.openResult();

                using(ExcelPackage  package= new ExcelPackage(stream))

                {

                    int rowCount, iterator;

                    package.Load(stream);

                    ExcelWorksheet worksheet= package.get_workbook().get_worksheets().get_Item(1);

                    OfficeOpenXml.ExcelRange range=worksheet.Cells;

                    rowCount = worksheet.Dimension.End.Row - worksheet.Dimension.Start.Row + 1;

                    for(iterator=2;iterator<=rowCount;iterator++)

                    {

                        //purch.ve(range.get_Item(iterator,1).Value);

                        purch.VendorAccount          =           any2Str(range.get_Item(iterator,2).Value);

                        purch.ItemNumber             =           any2Str(range.get_Item(iterator,3).Value);

                        purch.Qty                    =           any2Real(range.get_Item(iterator,4).Value);

                        purch.Site                   =           any2str(range.get_Item(iterator,5).Value);

                        purch.Warehouse              =           any2str(range.get_Item(iterator,6).Value);

                        purch.UnitPrice              =           any2Real(range.get_Item(iterator,7).Value);

                        purch.ProductReceiptNumber   =           any2Str(range.get_Item(iterator,8).Value);

                        purch.InvoiceNumber          =           any2Str(range.get_Item(iterator,9).Value);

                        purch.InvoiceDate            =           any2Date(range.get_Item(iterator,10).Value);

                        purch.BASFileName            =           any2Str(range.get_Item(iterator,11).Value);

                        purch.insert();

                    }

                }

            }

            /*------------------part 2 end---------------------*/

        //}

        else

        {

            Error("error occured.");

        }

    }


}

Comments

Popular posts from this blog

How to Create a wizard in x++ d365

how to post trade agreement journals automatically using x++ code

X++ code to CREATE AND POST A TRADE AGREEMENT IN MICROSOFT DYNAMICS 365 in D365 F & O