| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- 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.Server;
- using Core.Mes.Client.Comm;
- using Core.Mes.Client.Comm.Tool;
- using System.Reflection;
- using Microsoft.Office.Interop.Excel;
- using com.steering.pss.plnsaleord.order.model;
- namespace Core.StlMes.Client.PlnSaleOrd
- {
- public partial class FrmOrderCraftImport : FrmBase
- {
- /// <summary>
- /// 模板路径
- /// </summary>
- string modelPatch = "";
- public string ModelPatch
- {
- get { return modelPatch; }
- set { modelPatch = value; }
- }
- public FrmOrderCraftImport()
- {
- InitializeComponent();
- }
- private void FrmOrderCraftImport_Load(object sender, EventArgs e)
- {
- Init();
- }
- /// <summary>
- /// 构造
- /// </summary>
- /// <param name="ob"></param>
- public FrmOrderCraftImport(OpeBase ob)
- {
- this.ob = ob;
- InitializeComponent();
- }
- /// <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>
- /// 打开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 doSave()
- {
- try
- {
- 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 colOrderNo = -1;
- int colCraftFileNo = -1;
- int colstdLgNo = -1;
- int colstdZgNo = -1;
- int colstdGjgNo = -1;
- int colcraftFileMan = -1;
- int colversionChange = -1;
- int colversionDesc = -1;
- int colheightNkMin = -1;
- int colheightNkMax = -1;
- int coliussedId = -1;
- if (!((IList)colhead).Contains("合同号"))
- {
- MessageUtil.ShowWarning("列“合同号”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("工艺号"))
- {
- MessageUtil.ShowWarning("列“工艺号”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("炼钢标准"))
- {
- MessageUtil.ShowWarning("列“炼钢标准”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("轧管标准"))
- {
- MessageUtil.ShowWarning("列“轧管标准”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("加工标准"))
- {
- MessageUtil.ShowWarning("列“加工标准”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("工艺文件责任人"))
- {
- MessageUtil.ShowWarning("列“工艺文件责任人”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("壁厚下限"))
- {
- MessageUtil.ShowWarning("列“壁厚下限”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("壁厚上限"))
- {
- MessageUtil.ShowWarning("列“壁厚上限”不存在!");
- return;
- }
- if (!((IList)colhead).Contains("下发版次"))
- {
- MessageUtil.ShowWarning("列“下发版次”不存在!");
- return;
- }
- 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("合同号"))
- {
- colOrderNo = i;
- }
- if (head[0, i].Trim().Equals("工艺号"))
- {
- colCraftFileNo = i;
- }
- if (head[0, i].Trim().Equals("炼钢标准"))
- {
- colstdLgNo = i;
- }
- if (head[0, i].Trim().Equals("轧管标准"))
- {
- colstdZgNo = i;
- }
- if (head[0, i].Trim().Equals("加工标准"))
- {
- colstdGjgNo = i;
- }
- if (head[0, i].Trim().Equals("工艺文件责任人"))
- {
- colcraftFileMan = i;
- }
- if (head[0, i].Trim().Equals("工艺变动"))
- {
- colversionChange = i;
- }
- if (head[0, i].Trim().Equals("工艺版本描述"))
- {
- colversionDesc = i;
- }
- if (head[0, i].Trim().Equals("壁厚下限"))
- {
- colheightNkMin = i;
- }
- if (head[0, i].Trim().Equals("壁厚上限"))
- {
- colheightNkMax = i;
- }
- if (head[0, i].Trim().Equals("下发版次"))
- {
- coliussedId = i;
- }
- }
- #endregion
- string[,] arr = ObjectToString(uC_EmbedExcelIntoWinFormNoDLL1.GetRangeArray_Value(
- "A" + startRow, ExcelHelper.SeqToXlsCol[colNum + 1] + endRow));
- if (arr == null)
- {
- return;
- }
- for (int i = 0; i <= endRow -startRow; i++)
- {
- if (arr[i,colOrderNo].Equals(""))
- {
- MessageUtil.ShowTips("第" + (i + startRow).ToString() + "行,合同号为空!");
- return;
- }
- }
- ArrayList ListCraftFile = new ArrayList();
- ArrayList listOrderNo = new ArrayList();
- WaitFromOpen();
- for (int i = 0; i < arr.GetLength(0); i++)
- {
- if (!arr[i, colCraftFileNo].Equals("") && !arr[i, coliussedId].Equals("")
- && !listOrderNo.Contains(arr[i, colOrderNo].ToString()))
- {
- PlnOrdCraftFileEntity craftFile = new PlnOrdCraftFileEntity();
- string orderNoseq = arr[i, colOrderNo].ToString();
- if (!orderNoseq.Contains('/'))
- {
- WaitFromColse();
- MessageUtil.ShowTips("第" + (i + startRow).ToString() + "行,合同行号为空!");
- return;
- }
- string orderNo = orderNoseq.Substring(0, orderNoseq.LastIndexOf('/'));
- string orderSeq = orderNoseq.Substring(orderNoseq.LastIndexOf('/') + 1);
- double heightnkmin = 0;
- double heightnkmax = 0;
- listOrderNo.Add(orderNoseq);
- #region 取系统数据
- System.Data.DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderCraftInfo.getSaleOrderStatus",
- new object[] { orderNo, orderSeq }, this.ob);
- if (dt != null && dt.Rows.Count > 0)
- {
- ArrayList param = new ArrayList();
- double outdiameter = 0;
- double wallthick = 0;
- param.Add(dt.Rows[0]["ORD_LN_PK"].ToString());
- param.Add(dt.Rows[0]["ORD_LN_PK"].ToString());
- param.Add(dt.Rows[0]["INDEX_SEQ"].ToString());
- System.Data.DataTable dtPro = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderCraftInfo.getOrderCraftpath",
- new object[] { param }, this.ob);
- if (dtPro != null && dtPro.Rows.Count > 0)
- {
- System.Data.DataTable dtPath = null;
- dtPro.DefaultView.RowFilter = "PROCESS_CODE= 'D'";
- dtPath = dtPro.DefaultView.ToTable();
- if (dtPath != null && dtPath.Rows.Count > 0)
- {
- craftFile.CraftPath = dtPath.Rows[0]["PROCESS_DESC_C"].ToString();
- }
- dtPro.DefaultView.RowFilter = "PROCESS_CODE= 'F'";
- dtPath = dtPro.DefaultView.ToTable();
- if (dtPath != null && dtPath.Rows.Count > 0)
- {
- craftFile.RclInfo = dtPath.Rows[0]["PROCESS_DESC_C"].ToString();
- }
- }
- double.TryParse(dt.Rows[0]["WALLTHICK"].ToString(), out wallthick);
- double.TryParse(dt.Rows[0]["OUTDIAMETER"].ToString(), out outdiameter);
- craftFile.ProducJx = dt.Rows[0]["PRODUCNAME"].ToString();
- craftFile.Steelname = dt.Rows[0]["STEELNAME"].ToString();
- craftFile.Steelcode = dt.Rows[0]["STEELCODE"].ToString();
- craftFile.Outdiameter = outdiameter.ToString();
- craftFile.Wallthick = wallthick.ToString();
- craftFile.ModelCode = dt.Rows[0]["MODEL_CODE"].ToString();
- craftFile.ModelDesc = dt.Rows[0]["MODEL_DESC"].ToString();
- craftFile.LengthExtent = dt.Rows[0]["LENGTHDISC"].ToString();
- craftFile.Gradecode = dt.Rows[0]["GRADECODE_ALL"].ToString();
- craftFile.BjType = dt.Rows[0]["BJ_TYPE"].ToString();
- craftFile.PaydownDpt = dt.Rows[0]["ENDGXNAME"].ToString();
- craftFile.MonitorInfo = dt.Rows[0]["MONITORDEMAND"].ToString();
- craftFile.SDivD = wallthick / outdiameter;
- }
- #endregion
- craftFile.OrderNo = orderNo;
- craftFile.OrderSeq = orderSeq;
- craftFile.CraftFileNo = arr[i, colCraftFileNo].ToString();
- craftFile.StdLgNo = arr[i, colstdLgNo].ToString();
- craftFile.StdZgNo = arr[i, colstdZgNo].ToString();
- craftFile.StdGjgNo = arr[i, colstdGjgNo].ToString();
- craftFile.CraftFileMan = arr[i, colcraftFileMan].ToString();
- double.TryParse(arr[i, colheightNkMin].ToString(), out heightnkmin);
- craftFile.HeightNkMin = heightnkmin.ToString();
- double.TryParse(arr[i, colheightNkMax].ToString(), out heightnkmax);
- craftFile.HeightNkMax = heightnkmax.ToString();
- if (colversionChange != -1)
- {
- if (!arr[i, colversionChange].ToString().Equals(""))
- {
- craftFile.VersionNo = "True";
- }
- }
- if (colversionDesc != -1)
- {
- craftFile.VersionDesc = arr[i, colversionDesc].ToString();
- }
- craftFile.CreateName = UserInfo.GetUserName();
- ListCraftFile.Add(craftFile);
- }
- }
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreOrderCraftInfo";
- ccp.MethodName = "saveCraftInfo";
- ccp.ServerParams = new object[] { ListCraftFile, startRow };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- WaitFromColse();
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips(ccp.ReturnInfo);
- }
- else
- {
- MessageUtil.ShowError("导入失败!" + ccp.ReturnInfo);
- }
- }
- catch (Exception ex)
- {
- WaitFromColse();
- MessageBox.Show(ex.Message);
- }
- }
- /// <summary>
- /// 关闭
- /// </summary>
- private void doClose()
- {
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Exit();
- }
- private void FrmOrderCraftImport_FormClosed(object sender, FormClosedEventArgs e)
- {
- uC_EmbedExcelIntoWinFormNoDLL1.AppExcel_Exit();
- }
- private void ultraNumRowStart_ValueChanged(object sender, EventArgs e)
- {
- ultraNumRowEnd.MinValue = ultraNumRowStart.Value;
- }
- private void ultraNumRowEnd_ValueChanged(object sender, EventArgs e)
- {
- ultraNumRowStart.MaxValue = ultraNumRowEnd.Value;
- }
- /// <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;
- }
- }
- }
|