Beispiel #1
0
        private void DownloadTemplates()
        {
            string strError            = string.Empty;
            List <WarehouseInfo> lstWH = new List <WarehouseInfo>();

            if (!Basic_Func.GetWarehouseList(ref lstWH, new WarehouseInfo(), ref strError))
            {
                MessageBox.Show(strError);
                return;
            }
            if (lstWH == null || lstWH.Count <= 0)
            {
                MessageBox.Show("未获取到任何仓库");
                return;
            }

            DataSet dsWH = ConvertList2DataSet(lstWH);

            string path = "货位导入格式";

            if (!Common_Func.ShowSaveDialog(ref path, "xlsx"))
            {
                return;
            }

            byte[] bArea;
            bool   isXSSF = Path.GetExtension(path).ToLower() == (".xlsx");

            bArea = isXSSF ? Properties.Resources.AreaTemplateXLSX : Properties.Resources.AreaTemplateXLS;
            if (Common_Func.SaveBytesToFile(path, bArea))
            {
                ExcelLibrary_Func.AddDataSetToExcelByNPOI(path, dsWH);

                if (MessageBox.Show(string.Format("文件已成功保存到【{0}】!{1}是否直接打开?", path, Environment.NewLine), "保存成功", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == DialogResult.Yes)
                {
                    System.Diagnostics.Process.Start(path);
                }
            }
        }
Beispiel #2
0
        private void ImportArea()
        {
            //if (ExcelLibrary.ExcelLibrary_Func.ReadExcelToListByNPOI(ref lstMain))
            //    dgvList.DataSource = lstMain;

            try
            {
                //int iSize = 5000;
                string tableName = "T_P_IMPORTAREA";
                Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                //lblMassage.Text = "文件读取中...";
                //lblMassage.Refresh();

                Dictionary <string, string> dicDefault = new Dictionary <string, string>();
                dicDefault.Add("WAREHOUSESTATUS", "1");
                dicDefault.Add("HOUSESTATUS", "1");
                dicDefault.Add("AREASTATUS", "1");
                dicDefault.Add("IMPORTSTATUS", "0");
                dicDefault.Add("IMPORTDATE", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                dicDefault.Add("IMPORTUSER", Common_Var.CurrentUser.UserNo);
                dicDefault.Add("AREATYPENAME", "正式货位");
                Dictionary <string, string> dicFields = new Dictionary <string, string>();
                dicFields.Add("仓库编号", "WAREHOUSENO");
                dicFields.Add("仓库名称", "WAREHOUSENAME");
                dicFields.Add("库区编号", "HOUSENO");
                dicFields.Add("库区名称", "HOUSENAME");
                dicFields.Add("货位编号", "AREANO");
                dicFields.Add("货位名称", "AREANAME");
                dicFields.Add("货位类型", "AREATYPENAME");
                string strError = string.Empty;
                //List<T_SupplierStockInfo> lstImport = new List<T_SupplierStockInfo>();
                //lblMassage.Text = "数据载入中...";
                //lblMassage.Refresh();

                List <string> lstSql = new List <string>();
                if (ExcelLibrary_Func.ReadExcelToSqlListByNPOI(ref lstSql, tableName, dicFields, dicDefault))
                {
                    this.Refresh();
                    Application.DoEvents();

                    if (lstSql == null || lstSql.Count <= 0)
                    {
                        MessageBox.Show("导入出错,读取的文件内容为空!", "错误");
                        return;
                    }

                    string strFields = lstSql[0].Substring(0, lstSql[0].IndexOf(')') + 1);
                    if (Common_Func.IsIncludeChinese(strFields))
                    {
                        MessageBox.Show("导入出错,读取的文件格式不匹配,找不到对应的列!", "错误");
                        return;
                    }
                    string sql = lstSql.Find(delegate(string temp) { return(temp.IndexOf(",,") >= 0); });
                    if (!string.IsNullOrEmpty(sql))
                    {
                        MessageBox.Show("导入出错,读取的文件格式不匹配,不允许导入空值!", "错误");
                        return;
                    }

                    //lblMassage.Text = "数据上传中...";
                    //lblMassage.Refresh();
                    this.Refresh();
                    Application.DoEvents();
                    if (!Common_Func.CheckImportTable(ImportType.Area, ref strError))
                    {
                        MessageBox.Show("导入出错," + strError, "错误");
                        return;
                    }
                    lstSql.Insert(0, string.Format("DELETE {0} \n", tableName));

                    if (lstSql.Count / Common_Var.OnceImportSize >= 2)
                    {
                        MessageBox.Show("导入数据过于庞大,请拆分后导入", "提示");

                        //ExcelLibrary_Func.WriteSqlListToText(lstSql);
                        return;
                    }

                    if (!Common_Func.UpLoadSql(lstSql, ref strError))
                    {
                        MessageBox.Show("导入出错," + strError, "错误");
                        return;
                    }

                    //lblMassage.Text = "数据处理中...";
                    //lblMassage.Refresh();
                    this.Refresh();
                    Application.DoEvents();
                    bool bResult = false;
                    //bResult = Common_Func.DealImport(ImportType.Area, ref strError);
                    //lblMassage.Text = "导入完成";
                    //lblMassage.Refresh();

                    if (!bResult)
                    {
                        MessageBox.Show("导入出错," + strError, "提示");
                        return;
                    }
                    else
                    {
                        MessageBox.Show("导入成功", "提示");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("导入失败," + ex.Message, "提示");
            }
            finally
            {
                Cursor = Cursors.Default;
                //lblMassage.Text = "";
                //lblMassage.Refresh();
            }
        }