Tuesday, July 23, 2019

Update Item Family

static void GOD_UpdateItemFamily(Args _args)
    {
        #AviFiles
        FilenameOpen            filename;
        dialogField             dialogFilename;
        Dialog                  dialog= new Dialog("Excel Upoad");
        Container               excelCont[];
        str                     valuestr;
        int                     rowIdx;
        Counter                 linesImported;
        int                     lastRow,dimcount;
        boolean                 ok = true;
        NoYes                   noYes;
        str           50          c1,c2,c12;
        real                    c3,c4,c5;
        str                     input;
        container               accEntryPattern;
        InventItemBarcode       inventItemBarcodeCreate;
        NumberSeq               numberSeq;
        SysExcelApplication     application;
        SysExcelWorkBooks       workBooks;
        SysExcelWorkSheets      workSheets;
        SysExcelWorkSheet       workSheet;
        SysExcelCells           cells;
        SysOperationProgress    progress;
        InventTable             _InventTable,_InventTableupdate;
        //GOD_ItemFamilyMaster    _GOD_ItemFamilyMaster;
        struct                  struct= new Struct();

        DocuRef                             docuRef;
        DocuValue                           docuValue;



    System.String[]                     fileNames;
    int                                 fileCount, i;
    str                                 ImagefileName, trimmedFileName, fileNameWithExt;
    BinData                             binData = new BinData();
    str                                 extention, path, nameOfFile;
   container                            imageContainer;
   str                                  imageFilePathName,FileImageName;







        #define.CurrentVersion(1)
        #localmacro.CurrentList
        filename
        #endmacro

        #Excel
        #define.Star('*')
        #define.Space(' ')


        // convert into str from excel cell value
        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_R4      :
                //case COMVariantType::VT_R8      :
    //
                //if(_cv.double())
                //{
                    //valueStr = strFmt("@SYS311964",
                                        //num2Str0(_cv.double(), 0),
                                        //num2str(_cv.double(),
                                        //0,
                                        //numOfDec(_cv.double()),
                                        //1,
                                        //0));
                //}
                //return valuestr;
                //break;

                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 "";
        }

        // Find last row from excel

        int findLastRow(SysExcelWorkSheet _workSheet)
        {
            SysExcelRange range;
            ;

            range = _workSheet.cells().range(#ExcelTotalRange);

            try
            {
                // Finds the row where the first contents is found.
                range = range.find(#Star, null, #xlFormulas, #xlWhole, #xlByRows, #xlPrevious);
            }
            catch (Exception::Error)
            {
                error("@SYS59926");
                return 0;
            }

            if (range)
            {
                return range.row();
            }
            else
            {
                return 0;
            }
        }


        ;


        dialogFilename = dialog.addField(extendedtypestr(FilenameOpen));
        dialog.filenameLookupFilter(["@SYS28576", #XLSX, "@SYS28576", #XLS]);
        dialog.filenameLookupTitle("Upload from Excel");
        dialogFilename.value(filename);

        if(!dialog.run())
        return;

        filename = dialogFilename.value();

        //ttsbegin;

        application = SysExcelApplication::construct();
        workBooks = application.workbooks();
        workBooks.open(filename,0,true);

        workSheets = workBooks.item(1).worksheets();

        input = "Sheet1";
        workSheet = workSheets.itemFromNum(1);
        cells = workSheet.cells();
        lastRow = findLastRow(workSheet);
        rowIdx = 2;

        progress = new SysOperationProgress();
        progress.setCaption("Excel Importing");
        progress.setTotal(lastRow);
        progress.setAnimation(#AviTransfer);
        setprefix("Excel Import");
        try
        {
            while (rowIdx <= lastRow)
            {

                setPrefix(strfmt("Excel Row: %1", rowIdx));

                c1 = COMVariant2Str(cells.item(rowIdx,1).value());
                c2 = COMVariant2Str(cells.item(rowIdx,2).value());
                c3 = cells.item(rowIdx,3).value().double();
                c4 = cells.item(rowIdx,4).value().double();
                c5 = cells.item(rowIdx,5).value().double();
                linesImported++;

                progress.setText("Importing " + c12);
                progress.setCount(linesImported);
                rowIdx++;

                dimcount =0;


              select firstOnly _InventTable where _InventTable.ItemId == c1;
              if (_InventTable)
              {
                  ttsBegin;
                  select forUpdate _InventTableupdate
                      where _InventTableupdate.ItemId       == _InventTable.ItemId;
                  //if (c2)
                    //  select firstonly _GOD_ItemFamilyMaster where _GOD_ItemFamilyMaster.Code == c2;
                      //if(_GOD_ItemFamilyMaster)
                     //_InventTableupdate.GOD_FamilyCode = c2;
                  if (c3)
                      _InventTableupdate.grossDepth =c3;
                  if(c4)
                      _InventTableupdate.grossWidth = c4;
                  if(c5)
                      _InventTableupdate.grossHeight = c5;
                _InventTableupdate.update();
                ttsCommit;
               }

         }
        }
        catch
        {
            info(strFmt("Error at line %1",rowIdx-1));
        }
        application.quit();
        application = null;

        //ttscommit;




        info(strFmt("done %1",rowIdx-2));


    }

No comments:

Post a Comment