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;
        }
    
    }
  • 相关阅读:
    速查快递
    浅谈C#中常见的委托<Func,Action,Predicate>(转)
    C#用扩展方法进行自动生成添加删除对象转换的功能
    sql字符串分组
    PowerDesigner连接SQL Server
    老程序员的下场(转)
    界面设计:一个像素之差产生的距离(转)
    程序员如何活得明白(转)
    真实死锁案例记录
    分享java常用技术教程:dubbo、zookeeper、ActiveMq、多线程、Redis、PowerDesigner等
  • 原文地址:https://www.cnblogs.com/dingkui/p/12937525.html
Copyright © 2011-2022 走看看