| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Collections;
- using CoreFS.CA06;
- using Core.Mes.Client.Comm.Tool;
- using Core.Mes.Client.Comm.Server;
- using com.steering.pss.plnsaleord.order.model;
- using System.Globalization;
- using Core.Mes.Client.Comm;
- namespace Core.StlMes.Client.PlnSaleOrd.PopupWindow
- {
- public partial class FrmImportSetMatJg : FrmBase
- {
- /// <summary>
- /// 模板路径
- /// </summary>
- string modelPatch = "";
- /// <summary>
- /// 模板路径
- /// </summary>
- public string ModelPatch
- {
- get { return modelPatch; }
- set { modelPatch = value; }
- }
- public FrmImportSetMatJg()
- {
- InitializeComponent();
- }
- public FrmImportSetMatJg(OpeBase openbase)
- {
- this.ob = openbase;
- InitializeComponent();
- }
- private void FrmImportSetOrder_Load(object sender, EventArgs e)
- {
- Init();
- }
- /// <summary>
- /// 初始化
- /// </summary>
- private void Init()
- {
- ultraNumRowStart.Value = 2;
- ultraNumRowEnd.Value = 2;
- if (!System.IO.File.Exists(ModelPatch))//检察文件是否存在
- {
- return;
- }
- try
- {
- System.IO.File.Move(ModelPatch, ModelPatch);
- }
- catch
- {
- MessageUtil.ShowTips("文件已经被打开,请先关闭!");
- return;
- }
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Open(ModelPatch, true);
- this.ultraNumRowEnd.Value = getExcelRowsCount();
- }
- /// <summary>
- /// 获取excl的行数
- /// </summary>
- private int getExcelRowsCount()
- {
- //获取行数(上限5000)
- int colOrderNo = 0;
- int j = 4999;
- string[,] arr = null;
- string[,] head = ObjectToString(uC_EmbedExcelIntoWinFormNoDLL1.GetRangeArray_Value("A" + 1, "BZ" + 1));
- if (head == null)
- {
- return 1;
- }
- for (int i = 0; i < head.GetLength(1); i++)
- {
- if (head[0, i].Trim().Equals("合同号"))
- {
- colOrderNo = i;
- break;
- }
- }
- arr = ObjectToString(uC_EmbedExcelIntoWinFormNoDLL1.GetRangeArray_Value(
- ExcelHelper.SeqToXlsCol[colOrderNo + 1] + 2,
- ExcelHelper.SeqToXlsCol[colOrderNo + 1] + 5001));
- if (arr == null)
- {
- return 1;
- }
- for (j = 4999; j >= 0; j--)
- {
- if (!arr[j, 0].Equals(""))
- {
- break;
- }
- }
- return j + 2;
- }
- private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
- {
- switch (e.Tool.Key)
- {
- case "Save":
- doSave();
- break;
- case "Open":
- doOpen();
- break;
- case "Close":
- doClose();
- break;
- }
- }
- /// <summary>
- /// 保存
- /// </summary>
- private void doSave()
- {
- try
- {
- ArrayList messageErr = new ArrayList();
- int startRow = (int)ultraNumRowStart.Value;
- int endRow = (int)ultraNumRowEnd.Value;
- if (endRow - startRow < 0)
- {
- MessageUtil.ShowTips("没有任何行数据!");
- return;
- }
- string[,] head = ObjectToString(uC_EmbedExcelIntoWinFormNoDLL1.GetRangeArray_Value("A" + 1, "BZ" + 1));
- if (head == null)
- {
- return;
- }
- string[] colhead = new string[head.GetLength(1)];
- for (int i = 0; i < colhead.Length; i++)
- {
- colhead[i] = head[0, i];
- }
- #region 获取合同号等所在列
- int colNum = 0;
- int colf_in_time = -1;
- int colspec_jg_desc = -1;
- int colmodel_desc = -1;
- int colsteelname = -1;
- int colcoat_type = -1;
- int coljg_orderno = -1;
- int colfinal_user_desc = -1;
- int coljudge_stove_no = -1;
- int colbatch_no = -1;
- int colpro_num = -1;
- int colsingleweight = -1;
- int colpro_wt = -1;
- int colgradename = -1;
- int colmin_d = -1;
- int colmin_h = -1;
- int colsoure_name = -1;
- int colmemo = -1;
- int coloutdiameter = -1;
- int colwallthick = -1;
- int coljskbz = -1;
- int coljgfl = -1;
- int coljsbz = -1;
- for (int i = head.GetLength(1) - 1; i >= 0; i--)
- {
- if (!head[0, i].Equals("") && colNum == 0)
- {
- colNum = i;
- }
- if (head[0, i].Trim().Equals("技术科备注"))
- {
- coljskbz = i;
- }
- if (head[0, i].Trim().Equals("入库日期"))
- {
- colf_in_time = i;
- }
- if (head[0, i].Trim().Equals("对应规格"))
- {
- colspec_jg_desc = i;
- }
- if (head[0, i].Trim().Equals("扣型"))
- {
- colmodel_desc = i;
- }
- if (head[0, i].Trim().Equals("钢级"))
- {
- colsteelname = i;
- }
- if (head[0, i].Trim().Equals("接箍分类"))
- {
- coljgfl = i;
- }
- if (head[0, i].Trim().Equals("涂层"))
- {
- colcoat_type = i;
- }
- if (head[0, i].Trim().Equals("合同号"))
- {
- coljg_orderno = i;
- }
- if (head[0, i].Trim().Equals("合同用户"))
- {
- colfinal_user_desc = i;
- }
- if (head[0, i].Trim().Equals("炉号"))
- {
- coljudge_stove_no = i;
- }
- if (head[0, i].Trim().Equals("批号"))
- {
- colbatch_no = i;
- }
- if (head[0, i].Trim().Equals("库存个数"))
- {
- colpro_num = i;
- }
- if (head[0, i].Trim().Equals("单重(KG)"))
- {
- colsingleweight = i;
- }
- if (head[0, i].Trim().Equals("库存重量"))
- {
- colpro_wt = i;
- }
- if (head[0, i].Trim().Equals("钢种"))
- {
- colgradename = i;
- }
- if (head[0, i].Trim().Equals("原料外径"))
- {
- colmin_d = i;
- }
- if (head[0, i].Trim().Equals("原料壁厚"))
- {
- colmin_h = i;
- }
- if (head[0, i].Trim().Equals("标准"))
- {
- coljsbz = i;
- }
- if (head[0, i].Trim().Equals("来源"))
- {
- colsoure_name = i;
- }
- if (head[0, i].Trim().Equals("备注"))
- {
- colmemo = i;
- }
- if (head[0, i].Trim().Equals("成品外径"))
- {
- coloutdiameter = i;
- }
- if (head[0, i].Trim().Equals("成品长度"))
- {
- colwallthick = i;
- }
- }
- //if (colOrderPk == -1)
- //{
- // MessageUtil.ShowError("未找到交货编码PK的列");
- // return;
- //}
- #endregion
- ArrayList list = new ArrayList();
- string[,] arr = ObjectToString(uC_EmbedExcelIntoWinFormNoDLL1.GetRangeArray_Value(
- "A" + startRow, ExcelHelper.SeqToXlsCol[colNum + 1] + endRow));
- if (arr == null)
- {
- return;
- }
- WaitFromOpen();
- for (int i = 0; i < arr.GetLength(0); i++)
- {
- ArrayList param = new ArrayList();
- CouplingMatMEntity entity = new CouplingMatMEntity();
- //string orderPk = arr[i, colOrderPk].Trim();
- //string ordLnDlyPk = "";
- //string plnDivideId = "";
- //if (orderPk.Equals(""))
- //{
- // messageErr.Add("第" + (i + startRow).ToString() + "条数据PK码为空");
- // continue;
- //}
- //if (orderPk.Contains('-'))
- //{
- // int lenPk = orderPk.LastIndexOf('-');
- // ordLnDlyPk = orderPk.Substring(0, lenPk);
- // plnDivideId = orderPk.Substring(lenPk + 1, orderPk.Length - lenPk - 1);
- //}
- //else
- //{
- // ordLnDlyPk = orderPk;
- //}
- //if (ordLnDlyPk.Equals(""))
- //{
- // messageErr.Add("第" + (i + startRow).ToString() + "条数据PK码有误。");
- // continue;
- //}
- //if (colRollMonth != -1)
- //{
- // DateTime date = new DateTime();
- // string rollMonth = arr[i, colRollMonth].ToString();
- // if (DateTime.TryParseExact(rollMonth, "yyyyMM", null, DateTimeStyles.None, out date))
- // {
- // entity.RollMonth = date.ToString("yyyy-MM");
- // }
- //}
- entity.JudgeStoveNo = arr[i, coljudge_stove_no].ToString().Trim();
- //entity.JgOrderno = arr[i, coljg_orderno].ToString().Trim();
- //string rollMonth = arr[i, colf_in_time].ToString().Trim();
- //DateTime date = new DateTime();
- //if (DateTime.TryParseExact(rollMonth, "yyyyMM", null, DateTimeStyles.None, out date))
- //{
- // entity.FInTime = date.ToString("yyyy-MM");
- //}
- entity.FinTime = DateTime.Parse(arr[i, colf_in_time].ToString().Trim()).ToString("yyyy-MM-dd");
- entity.SpecJgDesc = arr[i, colspec_jg_desc].ToString().Trim();
- entity.ModelDesc = arr[i, colmodel_desc].ToString().Trim();
- entity.Steelname = arr[i, colsteelname].ToString().Trim();
- entity.CoatType = arr[i, colcoat_type].ToString().Trim();
- entity.BatchNo = arr[i, colbatch_no].ToString().Trim();
- entity.FinalUserDesc= arr[i, colfinal_user_desc].ToString().Trim();
- entity.ProNum = Convert.ToDecimal(arr[i, colpro_num].ToString().Trim());
- entity.Singleweight = Convert.ToDecimal(arr[i, colsingleweight].ToString().Trim());
- entity.ProWt = Convert.ToDecimal(arr[i, colpro_wt].ToString().Trim());
- entity.Gradename = arr[i, colgradename].ToString().Trim();
- entity.MinD = Convert.ToDecimal(arr[i, colmin_d].ToString().Trim());
- entity.MinH = Convert.ToDecimal(arr[i, colmin_h].ToString().Trim());
- entity.SoureName = arr[i, colsoure_name].ToString().Trim();
- entity.JudgeStdName=arr[i, coljsbz].ToString().Trim();
- entity.Memo = "技术科备注:" + arr[i, coljskbz].ToString().Trim() + ",接箍分类:" + arr[i, coljgfl].ToString().Trim() + ",合同号:" + arr[i, coljg_orderno].ToString().Trim() + ",合同用户:" + arr[i, colfinal_user_desc].ToString().Trim() + ",备注:" + arr[i, colmemo].ToString().Trim();
- entity.Outdiameter = Convert.ToDecimal(arr[i, coloutdiameter].ToString().Trim());
- //entity.Wallthick = Convert.ToDecimal(arr[i, colwallthick].ToString().Trim());
- entity.Aimlength = Convert.ToDecimal(arr[i, colwallthick].ToString().Trim());
- list.Add(Core.Mes.Client.Comm.Format.JSONFormat.Format(entity));
- }
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmImportSetMatJg";
- ccp.MethodName = "saveOrderSetlog";
- ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName() };
- ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- WaitFromColse();
- if (ccp.ReturnCode == -1) return;
- //MessageUtil.ShowTips(ccp.ReturnInfo);
- if (ccp.ReturnInfo.Equals("成功!"))
- {
- if (messageErr.Count == 0)
- {
- MessageUtil.ShowTips("导入成功,共" + list.Count + "条。");
- }
- else
- {
- MessageUtil.ShowTips(list.Count + "条导入成功," + messageErr.Count + "条导入失败。\n" + messageErr[0]);
- }
- }
- else
- {
- MessageUtil.ShowTips("导入失败,共" + list.Count + "条。");
- }
- }
- catch (Exception ex)
- {
- WaitFromColse();
- if (!(ex is MESException))
- {
- MessageUtil.ShowError(ex.Message);
- }
- }
- }
- /// <summary>
- /// 打开excel文件
- /// </summary>
- private void doOpen()
- {
- try
- {
- OpenFileDialog dialog = new OpenFileDialog();
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Exit();
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- ModelPatch = dialog.FileName;
- if (!System.IO.File.Exists(ModelPatch))//检察文件是否存在
- {
- return;
- }
- try
- {
- System.IO.File.Move(ModelPatch, ModelPatch);
- }
- catch
- {
- MessageUtil.ShowTips("文件已经被打开,请先关闭!");
- return;
- }
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Open(ModelPatch, true);
- this.ultraNumRowEnd.Value = getExcelRowsCount();
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- /// <summary>
- /// 关闭
- /// </summary>
- private void doClose()
- {
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Exit();
- }
- /// <summary>
- /// object二维数组转string二维数组
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- private string[,] ObjectToString(object[,] obj)
- {
- int rows = obj.GetLength(0); //获取m_objRangeArrayValue的行数
- int columns = obj.GetLength(1); //获取m_objRangeArrayValue的列数
- object[,] param = new object[rows, columns]; //转化为起始为0的数组
- Array.Copy(obj, param, rows * columns); //临时结果,学习用
- string[,] str = new string[param.GetLength(0), param.GetLength(1)];
- for (int i = 0; i < str.GetLength(0); i++)
- {
- for (int j = 0; j < str.GetLength(1); j++)
- {
- if (param[i, j] == null)
- {
- str[i, j] = "";
- }
- else
- {
- str[i, j] = param[i, j].ToString();
- }
- }
- }
- return str;
- }
- /// <summary>
- /// 等待窗口
- /// </summary>
- private void WaitFromOpen()
- {
- this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
- if (Constant.WaitingForm == null)
- {
- Constant.WaitingForm = new WaitingForm();
- }
- Constant.WaitingForm.ShowToUser = true;
- Constant.WaitingForm.Show();
- Constant.WaitingForm.Update();
- }
- /// <summary>
- /// 关闭等待
- /// </summary>
- private void WaitFromColse()
- {
- this.Cursor = Cursors.Default;
- Constant.WaitingForm.ShowToUser = false;
- Constant.WaitingForm.Close();
- Constant.WaitingForm = null;
- }
- private void FrmImportSetOrder_FormClosed(object sender, FormClosedEventArgs e)
- {
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Exit();
- }
- }
- }
|