zoukankan      html  css  js  c++  java
  • D365: CSV导入

    class KKC_ImportTestData extends RunBase
    {
        str                 gMessage;
        str                 fileUrl;
        FileName            gFileName;
        Dialog              dialog;
        DialogField         gDialogFile;
    
        public Object dialog()
        {
            FormBuildButtonControl buttonControl;
            DialogGroup            dlgGroup;
            FormBuildGroupControl  buttonGroup;
            ;
    
            dialog = super();
    
            dlgGroup       = dialog.addGroup('');
            buttonGroup    = dialog.formBuildDesign().control(dlgGroup.formBuildGroup().id());
            buttonControl  = buttonGroup.addControl(FormControlType::Button, 'Upload');
            buttonControl.text("@KKC00160");
            buttonControl.registerOverrideMethod(methodStr(FormButtonControl, clicked),
                                                 methodStr(KKC_ImportTestData, uploadClickedEvent),
                                                 this);
            return dialog;
        }
    
        private void uploadClickedEvent(FormButtonControl _formButtonControl)
        {
            FileUploadTemporaryStorageResult result = File::GetFileFromUser() as FileUploadTemporaryStorageResult;
            if (result && result.getUploadStatus())
            {
                result.getFileContentType();
    
                fileUrl = result.getDownloadUrl();
            }
        }
    
        public static KKC_ImportTestData construct()
        {
            return new KKC_ImportTestData();
        }
    
        public static void main(Args _args)
        {
            KKC_ImportTestData testData = KKC_ImportTestData::construct();
    
            if (testData.prompt())
            {
                testData.run();
            }
        }
    
        public void run()
        {
            KKC_IFPostDataTable postDataTable;
            KKC_PostingStatus   postingStatus;
            KKC_TransType       transType;
            KKC_Partner         partner;
            container           conFields;
            CommaTextStreamIo   localStream;
            int                 i, first;
            #File
            ;
    
            localStream = CommaTextStreamIo::constructForRead(File::UseFileFromURL(fileUrl));
            if (localStream.status() == IO_Status::Ok)
            {
                localStream.inFieldDelimiter("\,");
                localStream.inRecordDelimiter(#delimiterCRLF);
        
                conFields = localStream.read();
                if (first == 0)
                {
                    conFields = localStream.read();
                    first++;
                }
                if (conFields != conNull())
                {
                    while(conFields)
                    {
                        postDataTable.clear();
                        postDataTable.PurchId            = conPeek(conFields, 1);
                        postDataTable.TransType          = str2Enum(transType, conPeek(conFields, 2));
                        postDataTable.Partner            = conPeek(conFields, 3);
                        postDataTable.Quantity           = str2Num(conPeek(conFields, 4));
                        postDataTable.InventBatchExpDate = str2Date(conPeek(conFields, 5), DateSeparator::Slash);
                        postDataTable.insert();
    
                        conFields = localStream.read();
    
                    }
                }
            }
        }
    
        public static Container textIO2Con(FilePath _filePath,
                                           boolean  _includeTitle = false,
                                           str      _fieldDelimiter = '	',
                                           str      _recordDelimiter = '
    ')
        {
            TextIo                  textIO;
            container               conFile, conLine;
            int                     i, j;
            #File
            ;
    
            textIO = new textIO(_filePath, "r");
            textIO.inFieldDelimiter(_fieldDelimiter);//#delimiterTab);
            textIO.inRecordDelimiter(_recordDelimiter);//#delimiterCRLF);
            conFile = conNull();
    
            while (textIO.status() == IO_Status::Ok)
            {
                i++;
                conLine = textIO.read();
                if (!_includeTitle && i == 1)
                {
                    continue;
                }
                if (conLine != conNull())
                {
                    j++;
                    conFile = conIns(conFile, j, conLine);
                }
            }
    
            return conFile;
        }
    
    }
  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/dingkui/p/12937525.html
Copyright © 2011-2022 走看看