| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476 |
- 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 CoreFS.CA06;
- using System.Collections;
- using System.Reflection;
- using Excel1 = Microsoft.Office.Interop.Excel;
- using Infragistics.Win.UltraWinGrid;
- using System.Runtime.InteropServices;
- namespace Core.LZMes.Client.UIK
- {
- public partial class StorageStandbyWGJ : FrmBase
- {
- //记录前一次入库垛位
- internal string before_yard = "1-01A-01";
- public StorageStandbyWGJ()
- {
- InitializeComponent();
- }
- public override void ToolBar_Click(object sender, string ToolbarKey)
- {
- switch (ToolbarKey)
- {
- case "Query":
- this.DoQuery();
- break;
- case "Export":
- this.DoExport();
- break;
- }
- }
- private void DoQuery()
- {
- try
- {
-
- string starttiem = this.ultraDateTimeEditor5.Value != null ? this.ultraDateTimeEditor5.DateTime.ToString("yyyyMMdd") : "";//出库时间
- string endtime = this.ultraDateTimeEditor4.Value != null ? this.ultraDateTimeEditor4.DateTime.ToString("yyyyMMdd") : "";//出库时间
- bool flag = false;
- this.dataSet1.Tables[0].Clear();
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIB.COM.ComDBQuery";
- ccp.MethodName = "doSimpleQuery";
- ArrayList paramArray = new ArrayList();
- paramArray.Add("UIK050010_06.SELECT");
- paramArray.Add(starttiem);
- paramArray.Add(endtime);
- ccp.ServerParams = new object[] { paramArray };
- ccp.SourceDataTable = this.dataSet1.Tables[0];
- this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
- System.Diagnostics.Debug.WriteLine(this.dataSet1.Tables[0].ToString());
- DataRowCollection drs1 = dataSet1.Tables[0].Rows;
- if (drs1.Count <= 0)
- {
- MessageBox.Show("该时间内没有入库待机钢卷");
- }
-
- }
- catch (Exception EX)
- {
- MessageBox.Show(EX.ToString());
- }
- }
-
- /// <summary>
- /// 导出
- /// </summary>
-
- private void DoExport()
- {
- try
- {
- //if (this.saveFileDialog1.ShowDialog(this) == DialogResult.OK)
- //{
- // string fileName = this.saveFileDialog1.FileName;
- // ultraGridExcelExporter1.Export(ultraGrid1, fileName);
- // System.Diagnostics.Process.Start(fileName);
- //}
- this.DataTabletoExcelULTRA(ultraGrid1);
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.ToString());
- }
- }
- private void StorageStandbyWGJ_Load(object sender, EventArgs e)
- {
- this.ultraCheckEditor1.Checked = true;
- this.ultraCheckEditor1.Checked = false ;
- }
- private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e)
- {
- /*if (this.ultraCheckEditor1.Checked == true)
- {
- this.ultraCalendarSTRATTIME.Enabled = false;
- this.ultraCalendarENDTIME.Enabled = false;
- }*/
- /*if (this.ultraCheckEditor1.Checked == false)
- {
- this.ultraCalendarENDTIME.Enabled = true;
- this.ultraCalendarSTRATTIME.Enabled = true;
- }*/
- }
- private void ultraGrid1_DoubleClickRow(object sender, Infragistics.Win.UltraWinGrid.DoubleClickRowEventArgs e)
- {
- Infragistics.Win.UltraWinGrid.UltraGridRow uRow = ultraGrid1.ActiveRow;
- String coilNo = uRow.Cells["OLD_SAMPL_NO"].Value.ToString();
- String curProgCd = "PRC";
- this.textBox1.Text = coilNo;
- string entryShift = this.UserInfo.GetUserOrder();//入库班次
- string entryGroup = this.UserInfo.GetUserGroup();//入库班组
- string entryDtime = this.ultraDateTimeEditor1.DateTime.ToString("yyyyMMddHHmmss");//入库时间
- string reg_id = this.UserInfo.GetUserID();//操作人
- StorageStandby_Sub dlg = new StorageStandby_Sub(this, 1);
- if (DialogResult.OK == dlg.ShowDialog(this))
- {
- //string yardAddr = this.textBox3.Text.ToString().Trim();//垛位
- //if (yardAddr == "" && yardAddr.Length != 13)
- //{
- // MessageBox.Show("垛位输入有误!");
- // return;
- //}
- //string[] tmpArray = yardAddr.Split('-');
- string yardAddr = dlg.YARD_ADDR.ToUpper();//垛位
- string[] tmpArray = yardAddr.Split('-');
- try
- {
- if (tmpArray[1].Length < 3)
- {
- tmpArray[1] = "0" + tmpArray[1];
- }
- if (tmpArray[2].Length < 2)
- {
- tmpArray[2] = "0" + tmpArray[2];
- }
- if (Convert.ToInt32(tmpArray[0]) != 1)
- {
- MessageBox.Show("垛位输入有误,请重新输入!");
- return;
- }
- //if (tmpArray[1] > "17A")
- //{
- // MessageBox.Show("垛位输入有误,请重新输入!");
- // return;
- //}
- if (Convert.ToInt32(tmpArray[2]) > 69)
- {
- MessageBox.Show("垛位行数不能超过69,请重新输入!");
- return;
- }
- if (Convert.ToInt32(tmpArray[1].Substring(0, 2)) > 17)
- {
- MessageBox.Show("垛位列数不能超过17,请重新输入!");
- return;
- }
- if ((tmpArray[1].Substring(2, 1)) != "A")
- {
- MessageBox.Show("垛位格式不对,请重新输入!");
- return;
- }
- yardAddr = tmpArray[0] + "-" + tmpArray[1] + "-" + tmpArray[2];
- }
- catch (Exception ex)
- {
- MessageBox.Show("垛位信息错误!");
- return;
- }
-
- DataTable dt = new DataTable();
- CoreClientParam ccpx = new CoreClientParam();
- ccpx.ServerName = "UIM.UIM010040";
- ccpx.MethodName = "SelectCoilYard";
- ccpx.ServerParams = new object[] { yardAddr };
- ccpx.SourceDataTable = dt;
- this.ExecuteQueryToDataTable(ccpx, CoreInvokeType.Internal);
- if (dt.Rows.Count <= 0)
- {
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010040";
- ccp.MethodName = "saveCoilYard";
- ccp.ServerParams = new object[] { coilNo, yardAddr, entryShift, entryGroup, entryDtime, reg_id, curProgCd };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != 0)
- {
- return;
- }
- else
- {
- MessageBox.Show("入库成功!");
- }
-
- this.DoQuery();
- }
- else
- {
- MessageBox.Show("该位置上已经有了钢卷,请重新输入!");
- return;
- }
-
- }
- else
- {
- return;
- }
- }
- /// <summary>
- /// 查询区域中一行的垛位信息
- /// </summary>
- /// <param name="areayType"></param>
- /// <param name="areayNo"></param>
- /// <param name="yardCol"></param>
- internal void queryYardRows(int areaType, int areaNo, string yardCol)
- {
- this.dataSet3.Tables[0].Clear();
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010070";
- ccp.MethodName = "queryYardRows";
- ccp.ServerParams = new object[] { areaType, areaNo, yardCol };
- ccp.SourceDataTable = this.dataSet3.Tables[0];
- this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
- }
- /// <summary>
- /// 查询区域中一行的垛位中钢卷信息
- /// </summary>
- /// <param name="areayType"></param>
- /// <param name="areayNo"></param>
- /// <param name="yardCol"></param>
- internal void queryYardRowCoils(int areaType, int areaNo, string yardCol)
- {
- this.dataSet2.Tables[0].Clear();
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010070";
- ccp.MethodName = "queryYardRowCoils";
- ccp.ServerParams = new object[] { areaType, areaNo, yardCol };
- ccp.SourceDataTable = this.dataSet2.Tables[0];
- this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
- }
- internal int queryMinYardRow(int areaType, int areaNo, string yardCol)
- {
- int minRow = 1;
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010070";
- ccp.MethodName = "queryMinYardRow";
- ccp.ServerParams = new object[] { areaType, areaNo, yardCol };
- ccp = this.ExecuteQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnObject != null)
- {
- minRow = int.Parse(ccp.ReturnObject.ToString());
- }
- return minRow;
- }
- /// <summary>
- /// 查询库存区域
- /// </summary>
- /// <param name="areaType"></param>
- /// <returns></returns>
- internal ArrayList queryYardAreas(int areaType)
- {
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010040";
- ccp.MethodName = "queryYardAreas";
- ccp.ServerParams = new object[] { areaType };
- ccp = this.ExecuteQuery(ccp, CoreInvokeType.Internal);
- ArrayList retList = (ArrayList)ccp.ReturnObject;
- return retList;
- }
- /// <summary>
- /// 查询库存区分
- /// </summary>
- /// <param name="areaNo"></param>
- /// <returns></returns>
- internal ArrayList queryYardColsByArea(int areaNo)
- {
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "UIM.UIM010040";
- ccp.MethodName = "queryYardColsByArea";
- ccp.ServerParams = new object[] { areaNo };
- ccp = this.ExecuteQuery(ccp, CoreInvokeType.Internal);
- ArrayList retList = (ArrayList)ccp.ReturnObject;
- return retList;
- }
-
- public void DataTabletoExcelULTRA(UltraGrid tmpDataTable)
- {
- string fileName = saveFileDialog1.FileName;
- string FileName;
- saveFileDialog1.FileName = "入库待机钢卷";
- saveFileDialog1.DefaultExt = ".xls";
- saveFileDialog1.Filter = "excel文件(*.xls)|*.xls|所有文件(*.*)|*.*";
- if (this.saveFileDialog1.ShowDialog(this) == DialogResult.OK)
- {
- fileName = saveFileDialog1.FileName;
- FileName = fileName;
- }
- else
- {
- return;
- }
- string FilePath = saveFileDialog1.FileName;
- int rowNum = tmpDataTable.Rows.Count;
- //页面显示的列数
- int columnNum = tmpDataTable.DisplayLayout.Bands[0].Columns.BoundColumnsCount;
- int rowIndex = 1;
- int columnIndex = 0;
- Excel1.Application xlApp = new Excel1.ApplicationClass();
- //Microsoft.Office.Interop.Excel.Application xlApp;
- //xlApp = new Microsoft.Office.Interop.Excel.Application();
- xlApp.DefaultFilePath = "";
- xlApp.DisplayAlerts = false;
- xlApp.SheetsInNewWorkbook = 1;
- Excel1._Workbook xlBook = (Excel1._Workbook)(xlApp.Workbooks.Add(Missing.Value));//添加新工作簿
- Excel1.Worksheet ws = (Excel1.Worksheet)xlBook.Worksheets[1];
- //int colnum = tmpDataTable.DisplayLayout.Bands[0].Columns.Count;
- Excel1.Range r = ws.get_Range("A1", NumToExeclRowStr(columnNum) + "1");
- // Excel1.Range r = ws.get_Range("A1", "AA1");
- object[] objHeader = new object[columnNum];
- //将DataTable的列名导入Excel表第一行
- foreach (UltraGridColumn dc in tmpDataTable.DisplayLayout.Bands[0].Columns)
- {
- objHeader[columnIndex] = dc.Header.Caption;
- columnIndex++;
- if (columnIndex == columnNum) break;
- }
- r.Value2 = objHeader;
- //设置第一行表头格式
- //r = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, columnNum]);
- //设置 域 Range 的颜色
- r.Interior.ColorIndex = 17;
- r.Font.Size = 9;
- // r.get_Characters(0, s1.Length).Font.Size = 20;
- r.RowHeight = 30;
- r.HorizontalAlignment = Excel1.XlHAlign.xlHAlignCenter;
- //r.Font.Name = "隶书";
- //r.Font.Color = clBlue;
- //r.Font.Bold = true;
- r.Borders.LineStyle = Excel1.XlLineStyle.xlContinuous;
- //r.Font.UnderLine = True;
- //将DataTable中的数据导入Excel中
- for (int i = 0; i < rowNum; i++)
- {
- rowIndex++;
- columnIndex = 0;
- for (int j = 0; j < columnNum; j++)
- {
- //若为订单号 加个单引号转换数据为文本格式
- if (columnIndex == 3 || columnIndex == 4)
- {
- objHeader[columnIndex] = "'" + tmpDataTable.Rows[i].Cells[j].Text.ToString();
- }
- else
- {
- objHeader[columnIndex] = tmpDataTable.Rows[i].Cells[j].Text.ToString();
- }
- columnIndex++;
- }
- r = ws.get_Range("A" + (i + 2), NumToExeclRowStr(columnNum) + (i + 2));
- r.Value2 = objHeader;
- r.Borders.LineStyle = Excel1.XlLineStyle.xlContinuous;
- r.Font.Size = 9;
- }
-
- //将合同号的数据转换为excel中的数字格式,否则为科学计数法格式
- //Excel1.Range RMXNEW;
- //string Inf0 = "";
- //Inf0 = "Z1:" + "Z2";
- //RMXNEW = ws.get_Range(Inf0, Type.Missing);
- //RMXNEW.EntireColumn.HorizontalAlignment = Excel1.XlHAlign.xlHAlignCenter;
- ////格式化表格数据0为纯数字,@为文本 "yyyy-mm-dd" General
- //RMXNEW.EntireColumn.NumberFormat = "@";
- //Excel1.Range RMXNEW1;
- //string Inf1 = "";
- //Inf1 = "Y1:" + "Y2";
- //RMXNEW1 = ws.get_Range(Inf1, Type.Missing);
- //RMXNEW1.EntireColumn.HorizontalAlignment = Excel1.XlHAlign.xlHAlignCenter;
- //RMXNEW1.EntireColumn.NumberFormat = "yyyy-mm-dd";
- ////导出到EXCEL中 只需要某些列,下面删除多余的列(已经在datatable中按字段排好序)
- //Excel1.Range RMX1;
- //string Inf1 = "";
- //Inf1 = "A1:" + "W1";
- //RMX1 = ws.get_Range(Inf1, Type.Missing);
- //RMX1.EntireColumn.Delete(0);
- r.EntireColumn.AutoFit(); //自适应宽度
- //Excel1.Borders pborders = r.Borders;
- //设置边框
- //r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlMedium, XlColorIndex.xlColorIndexAutomatic, System.Drawing.Color.Black.ToArgb());
- //r.Borders.get_Item(XlBordersIndex.xlEdgeBottom).Weight = XlBorderWeight.xlMedium;
- //r.WrapText = true;
- xlBook.SaveCopyAs(FilePath);
- this.KillSpecialExcel(xlApp);
- MessageBox.Show("数据已经成功导出到:" + saveFileDialog1.FileName.ToString(),
- "导出完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
- System.Diagnostics.Process.Start(fileName);
- }
- private string NumTochr(int Num)
- {
- int n = 64 + Num;
- return "" + (Char)n;
- }
- private string NumToExeclRowStr(int Num)
- {
- int X, Y;
- if (Num < 27)
- {
- return NumTochr(Num);
- }
- X = Num / 26;
- Y = Num - X * 26;
- return NumTochr(X) + NumTochr(Y);
- }
- #region 结束EXCEL.EXE进程的方法
- /// <summary>
- /// 结束EXCEL.EXE进程的方法
- /// </summary>
- /// <param name="m_objExcel">EXCEL对象</param>
- [DllImport("user32.dll", SetLastError = true)]
- static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
- public void KillSpecialExcel(Microsoft.Office.Interop.Excel.Application m_objExcel)
- {
- try
- {
- if (m_objExcel != null)
- {
- int lpdwProcessId;
- GetWindowThreadProcessId(new IntPtr(m_objExcel.Hwnd), out lpdwProcessId);
- System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- #endregion
- }
- }
|