UIM010140.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using CoreFS.CA06;
  11. namespace Core.LZMes.Client.UIM
  12. {
  13. public partial class UIM010140 : FrmBase
  14. {
  15. int queryType = 0;
  16. string queryDate = "";
  17. string line = "P";
  18. public UIM010140()
  19. {
  20. InitializeComponent();
  21. }
  22. private void UIM010140_Load(object sender, EventArgs e)
  23. {
  24. //默认查询入库记录
  25. this.ultraComboEditor1.Value = 0;
  26. this.ultraComboEditor7.Value = "P";
  27. this.QueryCustomers();//查询并显示收货单位
  28. }
  29. public override void ToolBar_Click(object sender, string ToolbarKey)
  30. {
  31. switch (ToolbarKey)
  32. {
  33. case "Query":
  34. this.DoQuery();
  35. break;
  36. case "Export":
  37. this.DoExport();
  38. break;
  39. case "Exit":
  40. this.Close();
  41. break;
  42. }
  43. }
  44. /// <summary>
  45. /// 查询原料库钢卷出入库记录
  46. /// </summary>
  47. private void DoQuery()
  48. {
  49. try
  50. {
  51. this.dataSet1.Tables[0].Clear();
  52. string startTime = this.ultraDateTimeEditor1.DateTime.ToString("yyyyMMdd");//开始时间
  53. string endTime = this.ultraDateTimeEditor2.DateTime.ToString("yyyyMMdd");//结束时间
  54. queryType = int.Parse(this.ultraComboEditor1.Value.ToString());//查询类型 0 入库记录 1 出库记录
  55. line = this.ultraComboEditor7.Value.ToString();//产线区分 P酸轧 S酸洗
  56. string specStlGrd = this.textBox3.Text.Trim();//牌号
  57. string coilWthMin = this.textBox4.Text.Trim();//宽度最小值
  58. string coilWthMax = this.textBox5.Text.Trim();//宽度最大值
  59. string coilThkMin = this.textBox6.Text.Trim();//厚度最小值
  60. string coilThkMax = this.textBox7.Text.Trim();//厚度最大值
  61. string curLoadLoc = this.textBox8.Text.Trim();//垛位
  62. string coilNo = this.textBox9.Text.Trim();//板坯号
  63. string coilNo1 = this.textBox13.Text.Trim();//板坯号1
  64. string coilNo2 = this.textBox14.Text.Trim();//钢卷号
  65. string shift = -1 == this.ultraComboEditor2.SelectedIndex ? "" : this.ultraComboEditor2.Value.ToString();//班次
  66. string group = -1 == this.ultraComboEditor3.SelectedIndex ? "" : this.ultraComboEditor3.Value.ToString();//班组
  67. string regId = this.textBox10.Text.Trim();//作业人
  68. string custCd = -1 == this.ultraComboEditor4.SelectedIndex ? "" : this.ultraComboEditor4.Value.ToString();//客户编号
  69. string ordNo = this.textBox11.Text.Trim();//订单号
  70. string ordSeq = this.textBox12.Text.Trim();//合同号
  71. string ordFl = -1 == this.ultraComboEditor5.SelectedIndex ? "" : this.ultraComboEditor5.Value.ToString();//订单区分
  72. string prodnmCd = -1 == this.ultraComboEditor6.SelectedIndex ? "" : this.ultraComboEditor6.Value.ToString();//产品类型
  73. string deldatefr = this.ultraDateTimeEditor4.Value != null ? ultraDateTimeEditor4.DateTime.ToString("yyyyMMdd") : "";//入库开始时间
  74. string deldateto = this.ultraDateTimeEditor3.Value != null ? ultraDateTimeEditor3.DateTime.ToString("yyyyMMdd") : "";//入库结束时间
  75. queryDate = this.ultraDateTimeEditor1.DateTime.ToString("yyyy/MM/dd");
  76. //queryType = int.Parse(this.ultraComboEditor1.Value.ToString());//查询类型 0 入库记录 1 出库记录
  77. string[] queryParams = new string[] { startTime, endTime, specStlGrd, coilWthMin, coilWthMax,
  78. coilThkMin, coilThkMax, curLoadLoc, coilNo,coilNo1,shift, group, regId, custCd, ordNo, ordSeq,
  79. ordFl, prodnmCd,coilNo2,deldatefr,deldateto,line};
  80. List<string[]> list = new List<String[]>();
  81. list.Add(queryParams);
  82. CoreClientParam ccp = new CoreClientParam();
  83. ccp.ServerName = "UIM.UIM010140";
  84. ccp.MethodName = "queryYardList";
  85. ccp.ServerParams = new object[] { queryType, list };
  86. ccp.SourceDataTable = this.dataSet1.Tables[0];
  87. this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
  88. DataRowCollection drs = this.dataSet1.Tables[0].Rows;
  89. int coilCount = 0;
  90. double wgtCount = 0;
  91. int drsSize = drs.Count;
  92. coilCount = drsSize;
  93. for (int i = 0; i < drsSize; i++)
  94. {
  95. double actWgt = 0;
  96. try
  97. {
  98. actWgt = double.Parse(drs[i]["ACT_WGT"].ToString());
  99. }
  100. catch (Exception e)
  101. {
  102. }
  103. wgtCount += actWgt;
  104. }
  105. this.textBox1.Text = coilCount.ToString();
  106. this.textBox2.Text = (wgtCount / 1000).ToString();
  107. }
  108. catch (Exception EX)
  109. {
  110. MessageBox.Show(EX.ToString());
  111. }
  112. }
  113. /// <summary>
  114. /// 查询并显示收货单位
  115. /// </summary>
  116. private void QueryCustomers()
  117. {
  118. CoreClientParam ccp = new CoreClientParam();
  119. ccp.ServerName = "UIM.UIM010060";
  120. ccp.MethodName = "queryCustomers";
  121. ccp = this.ExecuteQuery(ccp, CoreInvokeType.Internal);
  122. ArrayList custList = (ArrayList)ccp.ReturnObject;
  123. int listSize = custList.Count;
  124. Infragistics.Win.ValueListItem[] valueListItems = new Infragistics.Win.ValueListItem[listSize];
  125. for (int i = 0; i < listSize; i++)
  126. {
  127. Infragistics.Win.ValueListItem item = new Infragistics.Win.ValueListItem();
  128. Hashtable ht = (Hashtable)custList[i];
  129. item.DataValue = ht["VALUE"].ToString();
  130. object obj = ht["LABEL"];
  131. if (obj != null)
  132. {
  133. item.DisplayText = ht["LABEL"].ToString();
  134. }
  135. else
  136. {
  137. item.DisplayText = "";
  138. }
  139. valueListItems[i] = item;
  140. }
  141. this.ultraComboEditor4.Items.AddRange(valueListItems);
  142. }
  143. /// <summary>
  144. /// 导出出入库记录
  145. /// </summary>
  146. private void DoExport()
  147. {
  148. try
  149. {
  150. if (this.saveFileDialog1.ShowDialog(this) == DialogResult.OK)
  151. {
  152. string fileName = this.saveFileDialog1.FileName;
  153. //改字体
  154. this.ultraGrid1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
  155. // 重量改为t
  156. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid1.Rows)
  157. {
  158. double tempWGT;
  159. double.TryParse(row.Cells["ACT_WGT"].Value.ToString(), out tempWGT);
  160. tempWGT = tempWGT * 0.001;
  161. row.Cells["ACT_WGT"].Value = tempWGT.ToString();
  162. }
  163. ultraGrid1.UpdateData();
  164. string exportName = "中间库";
  165. string operation = queryDate;
  166. operation += " ";
  167. operation += tools.UserInfoExt.Get_UserOrder(UserInfo) + "/" + tools.UserInfoExt.Get_UserGroup(UserInfo);
  168. operation += " 制表人:";
  169. operation += UserInfo.GetUserName();
  170. if (queryType == 0)
  171. {
  172. exportName += "入库单";
  173. }
  174. else
  175. {
  176. exportName += "出库单";
  177. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CUR_LOAD_LOC"].Hidden = true;//垛位
  178. }
  179. this.ultraGrid1.DisplayLayout.Bands[0].Columns["YARD_ENTRY_DTIME"].Hidden = true;//入库时间
  180. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODNM_CD"].Hidden = true;//订单类型
  181. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CZSJ"].Hidden = true;//操作时间
  182. this.ultraGrid1.DisplayLayout.Bands[0].Columns["SHIFT"].Hidden = true;//班次
  183. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WKGROUP"].Hidden = true;//班组
  184. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CZR"].Hidden = true;//操作人
  185. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ZPH"].Hidden = true;//轧批号
  186. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TOT_DEC_GRD"].Hidden = true;//综合判定等级
  187. this.ultraGrid1.DisplayLayout.Bands[0].Columns["INGR_DEC_GRD"].Hidden = true;//成份判定等级
  188. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MATLQLTY_DEC_GRD"].Hidden = true;//材质判定
  189. this.ultraGrid1.DisplayLayout.Bands[0].Columns["SIZE_DEC_RST"].Hidden = true;//尺寸判定
  190. this.ultraGrid1.DisplayLayout.Bands[0].Columns["EXTSHAPE_DEC_GRD"].Hidden = true;//外观判定
  191. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WGT_DEC_RST"].Hidden = true;//重量判定
  192. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_NO"].Hidden = true;//订单号
  193. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_SEQ"].Hidden = true;//合同号
  194. this.ultraGrid1.DisplayLayout.Bands[0].Columns["DLIV_TP"].Hidden = true;//运输方式
  195. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORDCUST_CD"].Hidden = true;//收货单位
  196. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CHARGE_NO"].Hidden = true;//炉号
  197. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TRNF_DTIME"].Hidden = true;//出库时间
  198. this.ultraGrid1.DisplayLayout.Bands[0].Columns["XSQY"].Hidden = true;//销售区域
  199. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PACK_QLTY"].Hidden = true;//包装质量
  200. this.ultraGrid1.DisplayLayout.Bands[0].Columns["DLIV_DIRNO"].Hidden = true;//发运指示号
  201. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TRANS_CAR_NO"].Hidden = true;//车辆号
  202. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_FL"].Hidden = true;//余材区分
  203. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_DEVLMT_DATE"].Hidden = true;//余材区分
  204. this.ultraGrid1.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.None;
  205. ultraGridExcelExporter1.Export(ultraGrid1, fileName);
  206. if (isExcelInstalled())
  207. {
  208. Microsoft.Office.Interop.Excel.Application excel;
  209. Microsoft.Office.Interop.Excel._Workbook objBook;
  210. Microsoft.Office.Interop.Excel.Workbooks objBooks;//接口 workbooks
  211. Microsoft.Office.Interop.Excel.Sheets objSheets;// 接口 sheets
  212. Microsoft.Office.Interop.Excel.Worksheet objSheet;//接口 worksheet
  213. Microsoft.Office.Interop.Excel.Range range = null;
  214. try
  215. {
  216. excel = new Microsoft.Office.Interop.Excel.Application();
  217. objBooks = excel.Workbooks;
  218. //Object miss = System.Reflection.Missing.Value;
  219. objBook = objBooks.Add(fileName);
  220. objSheets = objBook.Sheets;
  221. objSheet = (Microsoft.Office.Interop.Excel.Worksheet)objSheets[1];
  222. excel.Visible = false; //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
  223. Microsoft.Office.Interop.Excel.Range tmpRange = (Microsoft.Office.Interop.Excel.Range)objSheet.Rows[1, System.Reflection.Missing.Value];
  224. tmpRange.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  225. tmpRange.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  226. objSheet.get_Range("A1", queryType == 0 ? "J1" : "I1").Merge(objSheet.get_Range("A1", queryType == 0 ? "J1" : "I1").MergeCells);
  227. objSheet.get_Range("A2", queryType == 0 ? "J2" : "I2").Merge(objSheet.get_Range("A2", queryType == 0 ? "J2" : "I2").MergeCells);
  228. objSheet.get_Range("A1", queryType == 0 ? "J1" : "I1").VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
  229. objSheet.get_Range("A2", queryType == 0 ? "J2" : "I2").VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
  230. objSheet.get_Range("A1", queryType == 0 ? "J1" : "I1").HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
  231. objSheet.get_Range("A2", queryType == 0 ? "J2" : "I2").HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
  232. ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[1, 1]).Font.Size = 24;
  233. ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[1, 1]).RowHeight = 45;
  234. ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[1, 1]).Font.Bold = true;
  235. ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[1, 1]).Interior.Color = ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[4, 1]).Interior.Color;
  236. ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[2, 1]).Interior.Color = ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[4, 1]).Interior.Color;
  237. excel.Cells[1, 1] = exportName;
  238. excel.Cells[2, 1] = operation;
  239. int iRowCnt = objSheet.UsedRange.Cells.Rows.Count;
  240. int iBgnRow = (objSheet.UsedRange.Cells.Row > 3 ? objSheet.UsedRange.Cells.Row : objSheet.UsedRange.Cells.Row + 1) + 1;
  241. int insertIdx = iRowCnt - 1, insertIdx1 = iRowCnt - 1;
  242. string befStlStr = ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[insertIdx - 1, 4]).Text.ToString();
  243. string befThkStr = GetThickBySize(((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[insertIdx - 1, 5]).Text.ToString());
  244. string curStlStr = string.Empty, curThkStr = string.Empty;
  245. int coilCount = 0, coilCount1 = 0;
  246. double weightSum = 0, weightSum1 = 0;
  247. for (int i = iRowCnt - 2; i >= iBgnRow; i--)
  248. {
  249. curStlStr = ((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[i, 4]).Text.ToString();
  250. curThkStr = GetThickBySize(((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[i, 5]).Text.ToString());
  251. if (!befStlStr.Equals(curStlStr) || !befThkStr.Equals(curThkStr))
  252. {
  253. if (!befStlStr.Equals(curStlStr))
  254. {
  255. tmpRange = (Microsoft.Office.Interop.Excel.Range)objSheet.Rows[insertIdx1, System.Reflection.Missing.Value];
  256. tmpRange.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  257. excel.Cells[insertIdx1, 3] = coilCount1.ToString();
  258. excel.Cells[insertIdx1, 7] = weightSum1.ToString();
  259. coilCount1 = 0;
  260. weightSum1 = 0;
  261. insertIdx1 = i;
  262. }
  263. tmpRange = (Microsoft.Office.Interop.Excel.Range)objSheet.Rows[insertIdx, System.Reflection.Missing.Value];
  264. tmpRange.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  265. excel.Cells[insertIdx, 3] = coilCount.ToString();
  266. excel.Cells[insertIdx, 7] = weightSum.ToString();
  267. coilCount = 0;
  268. weightSum = 0;
  269. insertIdx = i + 1;
  270. insertIdx1++;
  271. }
  272. if (i > iBgnRow)
  273. {
  274. coilCount++;
  275. weightSum += Convert.ToDouble(((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[i, 7]).Text);
  276. coilCount1++;
  277. weightSum1 += Convert.ToDouble(((Microsoft.Office.Interop.Excel.Range)objSheet.UsedRange.Cells[i, 7]).Text);
  278. }
  279. befStlStr = curStlStr;
  280. befThkStr = curThkStr;
  281. }
  282. objBook.SaveCopyAs(fileName);
  283. //设置禁止弹出保存和覆盖的询问提示框
  284. excel.DisplayAlerts = false;
  285. excel.AlertBeforeOverwriting = false;
  286. //确保Excel进程关闭
  287. objBooks.Close();
  288. excel.Workbooks.Close();
  289. excel.Quit();
  290. System.Runtime.InteropServices.Marshal.ReleaseComObject(objBook);
  291. System.Runtime.InteropServices.Marshal.ReleaseComObject(objBooks);
  292. System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
  293. GC.Collect();
  294. System.GC.WaitForPendingFinalizers();
  295. //MessageBox.Show("数据导出完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  296. if (System.IO.File.Exists(fileName))
  297. System.Diagnostics.Process.Start(fileName); //保存成功后打开此文件
  298. }
  299. catch (Exception ex)
  300. {
  301. MessageBox.Show(ex.Message, "错误提示");
  302. }
  303. }
  304. else
  305. {
  306. ET.Application excel;
  307. ET._Workbook objBook;
  308. ET.Workbooks objBooks;//接口 workbooks
  309. ET.Sheets objSheets;// 接口 sheets
  310. ET.Worksheet objSheet;//接口 worksheet
  311. ET.Range range = null;
  312. try
  313. {
  314. excel = new ET.Application();
  315. objBooks = excel.Workbooks;
  316. //Object miss = System.Reflection.Missing.Value;
  317. objBook = objBooks.Add(fileName);
  318. objSheets = objBook.Sheets;
  319. objSheet = (ET.Worksheet)objSheets[1];
  320. excel.Visible = false; //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
  321. ET.Range tmpRange = (ET.Range)objSheet.Rows[1, System.Reflection.Missing.Value];
  322. tmpRange.Insert(ET.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  323. tmpRange.Insert(ET.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  324. objSheet.get_Range("A1", "J1").Merge(true);
  325. objSheet.get_Range("A2", "J2").Merge(true);
  326. objSheet.get_Range("A1", "J1").VerticalAlignment = ET.ETVAlign.etVAlignCenter;
  327. objSheet.get_Range("A2", "J2").VerticalAlignment = ET.ETVAlign.etVAlignCenter;
  328. objSheet.get_Range("A1", "J1").HorizontalAlignment = ET.ETHAlign.etHAlignCenter;
  329. objSheet.get_Range("A2", "J2").HorizontalAlignment = ET.ETHAlign.etHAlignLeft;
  330. ((ET.Range)objSheet.UsedRange.Cells[1, 1]).Font.Size = 24;
  331. ((ET.Range)objSheet.UsedRange.Cells[1, 1]).RowHeight = 45;
  332. ((ET.Range)objSheet.UsedRange.Cells[1, 1]).Font.Bold = true;
  333. ((ET.Range)objSheet.UsedRange.Cells[1, 1]).Interior.Color = ((ET.Range)objSheet.UsedRange.Cells[4, 1]).Interior.Color;
  334. ((ET.Range)objSheet.UsedRange.Cells[2, 1]).Interior.Color = ((ET.Range)objSheet.UsedRange.Cells[4, 1]).Interior.Color;
  335. excel.Cells[1, 1] = exportName;
  336. excel.Cells[2, 1] = operation;
  337. int iRowCnt = objSheet.UsedRange.Cells.Rows.Count;
  338. int iBgnRow = (objSheet.UsedRange.Cells.Row > 3 ? objSheet.UsedRange.Cells.Row : objSheet.UsedRange.Cells.Row + 1) + 1;
  339. int insertIdx = iRowCnt - 1;
  340. string befStlStr = ((ET.Range)objSheet.UsedRange.Cells[insertIdx - 1, 4]).Text.ToString();
  341. string befThkStr = GetThickBySize(((ET.Range)objSheet.UsedRange.Cells[insertIdx - 1, 5]).Text.ToString());
  342. string curStlStr = string.Empty, curThkStr = string.Empty;
  343. int coilCount = 0;
  344. double weightSum = 0;
  345. for (int i = iRowCnt - 2; i >= iBgnRow; i--)
  346. {
  347. curStlStr = ((ET.Range)objSheet.UsedRange.Cells[i, 4]).Text.ToString();
  348. curThkStr = GetThickBySize(((ET.Range)objSheet.UsedRange.Cells[i, 5]).Text.ToString());
  349. if (befStlStr.Equals(curStlStr) && befThkStr.Equals(curThkStr))
  350. {
  351. //coilCount++;
  352. //weightSum += Convert.ToDouble(((ET.Range)objSheet.UsedRange.Cells[i, 7]).Text);
  353. }
  354. else
  355. {
  356. tmpRange = (ET.Range)objSheet.Rows[insertIdx, System.Reflection.Missing.Value];
  357. tmpRange.Insert(ET.XlInsertShiftDirection.xlShiftDown, System.Reflection.Missing.Value);
  358. excel.Cells[insertIdx, 3] = coilCount.ToString();
  359. excel.Cells[insertIdx, 7] = weightSum.ToString();
  360. coilCount = 0;
  361. weightSum = 0;
  362. insertIdx = i + 1;
  363. }
  364. if (i > iBgnRow)
  365. {
  366. coilCount++;
  367. weightSum += Convert.ToDouble(((ET.Range)objSheet.UsedRange.Cells[i, 7]).Text);
  368. }
  369. befStlStr = curStlStr;
  370. befThkStr = curThkStr;
  371. }
  372. System.Reflection.Missing miss = System.Reflection.Missing.Value;
  373. objBook.SaveAs(fileName, miss, miss, miss, miss, miss, ET.ETSaveAsAccessMode.etNoChange, miss, miss, miss, miss);
  374. //objBook.SaveCopyAs(fileName);
  375. //设置禁止弹出保存和覆盖的询问提示框
  376. excel.DisplayAlerts = false;
  377. //excel.AlertBeforeOverwriting = false;
  378. //确保Excel进程关闭
  379. objBooks.Close(false);
  380. excel.Workbooks.Close(false);
  381. excel.Quit();
  382. System.Runtime.InteropServices.Marshal.ReleaseComObject(objBook);
  383. System.Runtime.InteropServices.Marshal.ReleaseComObject(objBooks);
  384. System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
  385. GC.Collect();
  386. System.GC.WaitForPendingFinalizers();
  387. //MessageBox.Show("数据导出完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  388. if (System.IO.File.Exists(fileName))
  389. System.Diagnostics.Process.Start(fileName); //保存成功后打开此文件
  390. }
  391. catch (Exception ex)
  392. {
  393. MessageBox.Show(ex.Message, "错误提示");
  394. }
  395. }
  396. this.ultraGrid1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
  397. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid1.Rows)
  398. {
  399. double tempWGT;
  400. double.TryParse(row.Cells["ACT_WGT"].Value.ToString(), out tempWGT);
  401. tempWGT = tempWGT * 1000;
  402. row.Cells["ACT_WGT"].Value = tempWGT.ToString();
  403. }
  404. ultraGrid1.UpdateData();
  405. //this.ShowColumns();
  406. }
  407. }
  408. catch (Exception ex)
  409. {
  410. MessageBox.Show(ex.ToString());
  411. }
  412. }
  413. private void ultraGridExcelExporter1_EndExport(object sender, Infragistics.Win.UltraWinGrid.ExcelExport.EndExportEventArgs e)
  414. {
  415. this.ultraGrid1.BeginUpdate();
  416. this.ultraGrid1.DisplayLayout.Bands[0].Columns["YARD_ENTRY_DTIME"].Hidden = false;//入库时间
  417. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODNM_CD"].Hidden = false;//订单类型
  418. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CZSJ"].Hidden = false;//操作时间
  419. this.ultraGrid1.DisplayLayout.Bands[0].Columns["SHIFT"].Hidden = false;//班次
  420. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WKGROUP"].Hidden = false;//班组
  421. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CZR"].Hidden = false;//操作人
  422. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ZPH"].Hidden = false;//轧批号
  423. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TOT_DEC_GRD"].Hidden = false;//综合判定等级
  424. this.ultraGrid1.DisplayLayout.Bands[0].Columns["INGR_DEC_GRD"].Hidden = false;//成份判定等级
  425. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MATLQLTY_DEC_GRD"].Hidden = false;//材质判定
  426. this.ultraGrid1.DisplayLayout.Bands[0].Columns["SIZE_DEC_RST"].Hidden = false;//尺寸判定
  427. this.ultraGrid1.DisplayLayout.Bands[0].Columns["EXTSHAPE_DEC_GRD"].Hidden = false;//外观判定
  428. this.ultraGrid1.DisplayLayout.Bands[0].Columns["WGT_DEC_RST"].Hidden = false;//重量判定
  429. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_NO"].Hidden = false;//订单号
  430. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_SEQ"].Hidden = false;//合同号
  431. this.ultraGrid1.DisplayLayout.Bands[0].Columns["DLIV_TP"].Hidden = false;//运输方式
  432. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORDCUST_CD"].Hidden = false;//收货单位
  433. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CHARGE_NO"].Hidden = false;//炉号
  434. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TRNF_DTIME"].Hidden = false;//出库时间
  435. this.ultraGrid1.DisplayLayout.Bands[0].Columns["XSQY"].Hidden = false;//销售区域
  436. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PACK_QLTY"].Hidden = false;//包装质量
  437. this.ultraGrid1.DisplayLayout.Bands[0].Columns["DLIV_DIRNO"].Hidden = false;//发运指示号
  438. this.ultraGrid1.DisplayLayout.Bands[0].Columns["TRANS_CAR_NO"].Hidden = false;//车辆号
  439. this.ultraGrid1.DisplayLayout.Bands[0].Columns["CUR_LOAD_LOC"].Hidden = false;//垛位
  440. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_FL"].Hidden = false;//余材区分 ORD_DEVLMT_DATE
  441. this.ultraGrid1.DisplayLayout.Bands[0].Columns["ORD_DEVLMT_DATE"].Hidden = false;//余材区分 ORD_DEVLMT_DATE
  442. this.ultraGrid1.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.ExtendLastColumn;
  443. this.ultraGrid1.EndUpdate();
  444. }
  445. private bool isExcelInstalled()
  446. {
  447. Type type = Type.GetTypeFromProgID("Excel.Application");
  448. return type != null;
  449. }
  450. private string GetThickBySize(string coilSize)
  451. {
  452. string thick = string.Empty;
  453. if (!string.IsNullOrEmpty(coilSize) && coilSize.Contains("*"))
  454. {
  455. thick = coilSize.Substring(0, coilSize.IndexOf("*"));
  456. }
  457. return thick;
  458. }
  459. private void button1_Click(object sender, EventArgs e)
  460. {
  461. try
  462. {
  463. if (this.saveFileDialog1.ShowDialog(this) == DialogResult.OK)
  464. {
  465. string fileName = this.saveFileDialog1.FileName;
  466. this.ultraGridExcelExporter1.Export(ultraGrid1, fileName);
  467. System.Diagnostics.Process.Start(fileName);
  468. }
  469. }
  470. catch (Exception ex)
  471. {
  472. MessageBox.Show(ex.ToString());
  473. }
  474. }
  475. }
  476. }