ComOrdExportCtrl.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using System.Collections;
  11. using Core.Mes.Client.Comm.Control;
  12. using Core.StlMes.Client.PlnSaleOrd.BLL;
  13. using System.Diagnostics;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Core.Mes.Client.Comm.Server;
  16. namespace Core.StlMes.Client.PlnSaleOrd.Control
  17. {
  18. public partial class ComOrdExportCtrl : UserControl
  19. {
  20. ComOrdExportBLL comBll = null;
  21. public ComOrdExportCtrl()
  22. {
  23. InitializeComponent();
  24. }
  25. public void ComBLL(OpeBase _ob)
  26. {
  27. comBll = new ComOrdExportBLL(_ob);
  28. }
  29. private void ComOrdExportCtrl_Load(object sender, EventArgs e)
  30. {
  31. PlanComm.setGridSummarySet(this.ultraGridExport, 3,
  32. "ORDERWEIGHT", "PLAN_WT_D", "PAYDOWNWEIGHT");
  33. PlanComm.setGridSummarySet(this.ultraGridExport, 0, "PAYDOWN_NUM");
  34. ultraComboFinishEditor.SelectedIndex = 0;
  35. ultraComboEditAcpStatus.SelectedIndex = 1;
  36. ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent = ultraFileLook;
  37. ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle
  38. = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
  39. }
  40. /// <summary>
  41. /// 导出查询
  42. /// </summary>
  43. public void DoQueryExp()
  44. {
  45. ArrayList param = new ArrayList();
  46. bool notCraft = false;
  47. bool isImportOrd = false;
  48. string status = "";
  49. string strAcceptNo = "";//接收批次号
  50. string strOrderNo = ""; //合同号
  51. string strRollMonth = "";//轧制月份
  52. //string strDateForm = "1000/01/01"; //交货结束日期从,默认最小日期
  53. //string strDateTo = "9999/12/31"; //交货结束日期到,默认最大日期
  54. string strFinish = "";
  55. if (this.checkBoxAcceptNoexport.Checked)
  56. {
  57. //接收批次号
  58. strAcceptNo = this.ultraTextAcceptNo.Text.Trim();
  59. }
  60. if (this.checkBoxORDER_NOexpor.Checked)
  61. {
  62. //合同号
  63. strOrderNo = this.ultraTextORDER_NO.Text.Trim();
  64. }
  65. //if (this.checkBoxDELVRY_EDATEexport.Checked)
  66. //{
  67. // //接收日期
  68. // strDateForm = this.ultraDateTimeDELVRY_EDATEFrom.DateTime.ToString("yyyy/MM/dd");
  69. // strDateTo = this.ultraDateTimeDELVRY_EDATETo.DateTime.ToString("yyyy/MM/dd");
  70. //}
  71. if (checkBoxAcpStatus.Checked)
  72. {
  73. //合同状态
  74. status = ultraComboEditAcpStatus.Value.ToString();
  75. }
  76. if (checkBoxImport.Checked)
  77. {
  78. isImportOrd = true;
  79. }
  80. if (checkBoxNotCraft.Checked)
  81. {
  82. notCraft = true;
  83. }
  84. if (checkBoxFinish.Checked)
  85. {
  86. strFinish = ultraComboFinishEditor.Value.ToString();
  87. }
  88. if (checkBoxRollMonth.Checked)
  89. {
  90. strRollMonth = ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
  91. }
  92. param.Add(strAcceptNo);
  93. param.Add(strOrderNo);
  94. param.Add(strRollMonth);
  95. param.Add(status);
  96. DataTable dt = comBll.Query(param, strFinish, notCraft, isImportOrd);
  97. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  98. ///设置grid不可编辑
  99. PlanComm.setGridActivation(ultraGridExport.DisplayLayout.Bands[0]);
  100. PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 3,
  101. "ORDER_QTY", "ORDERWEIGHT", "CONFIRM_WT_SUM", "Z_ORDERWEIGHT");
  102. PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 2,
  103. "TOTLENGTH", "HEIGHT_YLG", "DIMATER_YLG");
  104. PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 0,
  105. "Z_ORDERNUM");
  106. }
  107. /// <summary>
  108. /// 导出excl
  109. /// </summary>
  110. public void DoExport()
  111. {
  112. try
  113. {
  114. int rowCount = this.ultraGridExport.Rows.Count;
  115. int colCount = this.ultraGridExport.DisplayLayout.Bands[0].Columns.Count - 11;
  116. object[,] arr = new object[rowCount, colCount];
  117. for (int j = 0; j < rowCount; j++)
  118. {
  119. for (int i = 0; i < colCount; i++)
  120. {
  121. string output = ultraGridExport.Rows[j].Cells[i].Value.ToString();
  122. if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("GROUP_ROLL"))
  123. {
  124. //产线
  125. int plineCode = 0;
  126. output = output.Replace("机组", "");
  127. if (int.TryParse(output, out plineCode))
  128. {
  129. output = "'" + plineCode.ToString();
  130. }
  131. }
  132. if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("STEELNAME"))
  133. {
  134. //钢级
  135. double grade = 0;
  136. if (double.TryParse(output, out grade))
  137. {
  138. output = "'" + output;
  139. }
  140. }
  141. if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("ROLL_MONTH"))
  142. {
  143. //轧制月份
  144. DateTime dt = new DateTime();
  145. if (DateTime.TryParse(output, out dt))
  146. {
  147. output = "'" + dt.ToString("yyyyMM");
  148. }
  149. }
  150. if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("MONITORDEMAND"))
  151. {
  152. //监制
  153. if (!ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString().Equals(""))
  154. {
  155. output = output + "(" + ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString() + ")";
  156. }
  157. }
  158. arr[j, i] = output;
  159. }
  160. }
  161. string path = System.Windows.Forms.Application.StartupPath + "\\model";
  162. string tempExcel = path + "\\FrmSaleOrdmodel.xls";
  163. string outPutExcl = "销售合同" + DateTime.Now.ToString("yyyyMMdd");
  164. if (!System.IO.File.Exists(tempExcel))//检察模板是否存在
  165. {
  166. MessageBox.Show(this, "未找到报表模板!");
  167. return;
  168. }
  169. if (ultraGridExport.Rows.Count == 0) return;
  170. if (outPutExcl.Length == 0) outPutExcl = "未命名";
  171. SaveFileDialog dlg = new SaveFileDialog();
  172. dlg.Title = "保存";
  173. dlg.OverwritePrompt = true;
  174. dlg.Filter = "Excel文件(*.xls)|*.xls";
  175. dlg.AddExtension = true;
  176. dlg.FileName = outPutExcl;
  177. if (dlg.ShowDialog() == DialogResult.OK)
  178. {
  179. outPutExcl = dlg.FileName;
  180. PlanComm.WaitFromOpen(this.Cursor);
  181. ExcelHelper excelport = new ExcelHelper(tempExcel, outPutExcl);
  182. if (excelport.ArrayToExcel(arr, 2, 1, "Sheet"))
  183. {
  184. PlanComm.WaitFromColse(this.Cursor);
  185. if (MessageBox.Show("数据导出成功!\n需要打开所导出文件吗?", "提示",
  186. MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  187. {
  188. ProcessStartInfo p = new ProcessStartInfo(outPutExcl);
  189. p.WorkingDirectory = System.IO.Path.GetDirectoryName(outPutExcl);
  190. Process.Start(p);
  191. }
  192. }
  193. else
  194. {
  195. PlanComm.WaitFromColse(this.Cursor);
  196. MessageBox.Show("数据导出失败!");
  197. return;
  198. }
  199. }
  200. }
  201. catch (Exception ex)
  202. {
  203. PlanComm.WaitFromColse(this.Cursor);
  204. MessageBox.Show(ex.Message);
  205. }
  206. }
  207. /// <summary>
  208. /// 按Grid格式导出
  209. /// </summary>
  210. public void DoGridExport()
  211. {
  212. PlanComm.Export(ref ultraGridExport, "排产" +
  213. DateTime.Now.ToString("yyyyMMdd"), ultraGridExcelExporter1);
  214. }
  215. /// <summary>
  216. /// 查看上传工艺文件
  217. /// </summary>
  218. public void DoLookCraftFile(OpeBase _ob)
  219. {
  220. UltraGridRow ugr = this.ultraGridExport.ActiveRow;
  221. if (ugr == null)
  222. {
  223. return;
  224. }
  225. string plnDivideId = "01";
  226. string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  227. if (ordLnDlyPk.Contains('-'))
  228. {
  229. plnDivideId = ordLnDlyPk.Substring(ordLnDlyPk.LastIndexOf('-') + 1,
  230. ordLnDlyPk.Length - ordLnDlyPk.LastIndexOf('-') - 1);
  231. ordLnDlyPk = ordLnDlyPk.Substring(0, ordLnDlyPk.LastIndexOf('-'));
  232. }
  233. DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath",
  234. new object[] { ordLnDlyPk, plnDivideId }, _ob);
  235. if (dtPath != null && dtPath.Rows.Count > 0)
  236. {
  237. ArrayList listPIC = new ArrayList();
  238. foreach (DataRow dr in dtPath.Rows)
  239. {
  240. listPIC.Add(dr["CRAFT_PATH"].ToString());
  241. }
  242. dlgOrderAskLook orderAsk = new dlgOrderAskLook(_ob, listPIC);
  243. orderAsk.Text = "查看上传工艺文件";
  244. orderAsk.Show();
  245. }
  246. }
  247. /// <summary>
  248. /// 合同行工艺文件
  249. /// </summary>
  250. public void TechOrderLine()
  251. {
  252. UltraGridRow ugr = ultraGridExport.ActiveRow;
  253. if (ugr == null)
  254. {
  255. return;
  256. }
  257. string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  258. if (!ordLnDlyPkId.Equals("")
  259. && ordLnDlyPkId.Length >= 41)
  260. {
  261. string ordLnPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 6);
  262. string designKey = ugr.Cells["DESGIN_KEY"].Value.ToString();
  263. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true"
  264. + "&desgin_key=" + designKey + "&lnpk=" + ordLnPk;
  265. FrmOutExcel outPut = new FrmOutExcel(url);
  266. outPut.Show();
  267. }
  268. }
  269. #region 查询区事件
  270. private void checkBoxDELVRY_EDATEexport_CheckedChanged(object sender, EventArgs e)
  271. {
  272. if (checkBoxDELVRY_EDATEexport.Checked)
  273. {
  274. ultraDateTimeDELVRY_EDATEFrom.Enabled = true;
  275. ultraDateTimeDELVRY_EDATETo.Enabled = true;
  276. }
  277. else
  278. {
  279. ultraDateTimeDELVRY_EDATEFrom.Enabled = false;
  280. ultraDateTimeDELVRY_EDATETo.Enabled = false;
  281. }
  282. }
  283. private void checkBoxORDER_NOexpor_CheckedChanged(object sender, EventArgs e)
  284. {
  285. if (checkBoxORDER_NOexpor.Checked)
  286. {
  287. ultraTextORDER_NO.Enabled = true;
  288. }
  289. else
  290. {
  291. ultraTextORDER_NO.Enabled = false;
  292. }
  293. }
  294. private void checkBoxAcpStatus_CheckedChanged(object sender, EventArgs e)
  295. {
  296. if (checkBoxAcpStatus.Checked)
  297. {
  298. this.ultraComboEditAcpStatus.Enabled = true;
  299. }
  300. else
  301. {
  302. this.ultraComboEditAcpStatus.Enabled = false;
  303. }
  304. }
  305. private void checkBoxAcceptNoexport_CheckedChanged(object sender, EventArgs e)
  306. {
  307. if (checkBoxAcceptNoexport.Checked)
  308. {
  309. ultraTextAcceptNo.Enabled = true;
  310. }
  311. else
  312. {
  313. ultraTextAcceptNo.Enabled = false;
  314. }
  315. }
  316. private void ultraDateTimeDELVRY_EDATEFrom_ValueChanged(object sender, EventArgs e)
  317. {
  318. ultraDateTimeDELVRY_EDATETo.MinDate = ultraDateTimeDELVRY_EDATEFrom.DateTime.Date;
  319. }
  320. private void ultraDateTimeDELVRY_EDATETo_ValueChanged(object sender, EventArgs e)
  321. {
  322. ultraDateTimeDELVRY_EDATEFrom.MaxDate = ultraDateTimeDELVRY_EDATETo.DateTime.AddDays(1).Date.AddSeconds(-1);
  323. }
  324. #endregion
  325. #region
  326. public System.Windows.Forms.CheckBox CheckBoxDELVRY_EDATEexport
  327. {
  328. get { return checkBoxDELVRY_EDATEexport; }
  329. set { checkBoxDELVRY_EDATEexport = value; }
  330. }
  331. public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATEFrom
  332. {
  333. get { return ultraDateTimeDELVRY_EDATEFrom; }
  334. set { ultraDateTimeDELVRY_EDATEFrom = value; }
  335. }
  336. public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATETo
  337. {
  338. get { return ultraDateTimeDELVRY_EDATETo; }
  339. set { ultraDateTimeDELVRY_EDATETo = value; }
  340. }
  341. public System.Windows.Forms.CheckBox CheckBoxORDER_NOexpor
  342. {
  343. get { return checkBoxORDER_NOexpor; }
  344. set { checkBoxORDER_NOexpor = value; }
  345. }
  346. public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextORDER_NO
  347. {
  348. get { return ultraTextORDER_NO; }
  349. set { ultraTextORDER_NO = value; }
  350. }
  351. public System.Windows.Forms.CheckBox CheckBoxAcpStatus
  352. {
  353. get { return checkBoxAcpStatus; }
  354. set { checkBoxAcpStatus = value; }
  355. }
  356. public Infragistics.Win.UltraWinEditors.UltraComboEditor UltraComboEditAcpStatus
  357. {
  358. get { return ultraComboEditAcpStatus; }
  359. set { ultraComboEditAcpStatus = value; }
  360. }
  361. public System.Windows.Forms.CheckBox CheckBoxAcceptNoexport
  362. {
  363. get { return checkBoxAcceptNoexport; }
  364. set { checkBoxAcceptNoexport = value; }
  365. }
  366. public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextAcceptNo
  367. {
  368. get { return ultraTextAcceptNo; }
  369. set { ultraTextAcceptNo = value; }
  370. }
  371. public System.Windows.Forms.CheckBox CheckBoxNotCraft
  372. {
  373. get { return checkBoxNotCraft; }
  374. set { checkBoxNotCraft = value; }
  375. }
  376. public System.Windows.Forms.CheckBox CheckBoxImport
  377. {
  378. get { return checkBoxImport; }
  379. set { checkBoxImport = value; }
  380. }
  381. public Infragistics.Win.UltraWinGrid.UltraGrid UltraGridExport
  382. {
  383. get { return ultraGridExport; }
  384. set { ultraGridExport = value; }
  385. }
  386. private void checkBoxFinish_CheckedChanged(object sender, EventArgs e)
  387. {
  388. if (checkBoxFinish.Checked)
  389. {
  390. ultraComboFinishEditor.Enabled = true;
  391. }
  392. else
  393. {
  394. ultraComboFinishEditor.Enabled = false;
  395. }
  396. }
  397. private void checkBoxRollMonth_CheckedChanged(object sender, EventArgs e)
  398. {
  399. if (checkBoxRollMonth.Checked)
  400. {
  401. ultraDateTimeRollMonth.Enabled = true;
  402. }
  403. else
  404. {
  405. ultraDateTimeRollMonth.Enabled = false;
  406. }
  407. }
  408. #endregion
  409. /// <summary>
  410. /// 查看监制文件
  411. /// </summary>
  412. /// <param name="sender"></param>
  413. /// <param name="e"></param>
  414. private void ultraFileLook_EditorButtonClick(object sender,
  415. Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  416. {
  417. UltraGridRow ugr = ultraGridExport.ActiveRow;
  418. if (ugr == null)
  419. {
  420. return;
  421. }
  422. //ArrayList listPIC = new ArrayList();
  423. //listPIC.Add(ugr.Cells["PRDCR_PATH"].Value.ToString());
  424. //comBll.DoLookMon(listPIC);
  425. string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
  426. if (!ordLnDlyPkId.Equals("")
  427. && ordLnDlyPkId.Length >= 41)
  428. {
  429. string ordLnDlyPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 3);
  430. string plnDivideId = ordLnDlyPkId.Replace(ordLnDlyPk + "-", "");
  431. FrmOrdLinePrdcrLst prdcr = new FrmOrdLinePrdcrLst(ordLnDlyPk,
  432. plnDivideId, comBll._ob);
  433. prdcr.Show();
  434. }
  435. }
  436. private void ultraGridExcelExporter1_CellExported(object sender, Infragistics.Win.UltraWinGrid.ExcelExport.CellExportedEventArgs e)
  437. {
  438. // Apply a formula to the "Total" cells. This only applies to the Formulas grid, since
  439. // the images grid has no "Total" column.
  440. if (e.GridColumn.Key == "RANGE_MIN"
  441. || e.GridColumn.Key == "RANGE_MAX")
  442. {
  443. // This cell should be the product of the previous 2 cells in the same row.
  444. // Using R1C1 notation is easier, because we can use relative row and column indices
  445. //string formulaString = "=R[0]C[-2] * R[0]C[-1]";
  446. // Get the cell to which the formula will be applied.
  447. Infragistics.Excel.WorksheetCell worksheetCell = e.CurrentWorksheet.Rows[
  448. e.CurrentRowIndex].Cells[e.CurrentColumnIndex];
  449. // Apply the formula.
  450. //worksheetCell.ApplyFormula(formulaString);
  451. // Format the cell as currency.
  452. worksheetCell.CellFormat.FormatString = "##0.00%";
  453. double value = 0;
  454. if (e.Value != null)
  455. {
  456. double.TryParse(e.Value.ToString(), out value);
  457. value = value / 100;
  458. }
  459. worksheetCell.Value = value;
  460. }
  461. }
  462. }
  463. }