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 Core.Mes.Client.Comm.Control; using Core.StlMes.Client.PlnSaleOrd.BLL; using System.Diagnostics; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; namespace Core.StlMes.Client.PlnSaleOrd.Control { public partial class ComOrdExportCtrl : UserControl { ComOrdExportBLL comBll = null; public ComOrdExportCtrl() { InitializeComponent(); } public void ComBLL(OpeBase _ob) { comBll = new ComOrdExportBLL(_ob); } private void ComOrdExportCtrl_Load(object sender, EventArgs e) { PlanComm.setGridSummarySet(this.ultraGridExport, 3, "ORDERWEIGHT", "PLAN_WT_D", "PAYDOWNWEIGHT"); PlanComm.setGridSummarySet(this.ultraGridExport, 0, "PAYDOWN_NUM"); ultraComboFinishEditor.SelectedIndex = 0; ultraComboEditAcpStatus.SelectedIndex = 1; ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent = ultraFileLook; ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; } /// /// 导出查询 /// public void DoQueryExp() { ArrayList param = new ArrayList(); bool notCraft = false; bool isImportOrd = false; string status = ""; string strAcceptNo = "";//接收批次号 string strOrderNo = ""; //合同号 string strRollMonth = "";//轧制月份 //string strDateForm = "1000/01/01"; //交货结束日期从,默认最小日期 //string strDateTo = "9999/12/31"; //交货结束日期到,默认最大日期 string strFinish = ""; if (this.checkBoxAcceptNoexport.Checked) { //接收批次号 strAcceptNo = this.ultraTextAcceptNo.Text.Trim(); } if (this.checkBoxORDER_NOexpor.Checked) { //合同号 strOrderNo = this.ultraTextORDER_NO.Text.Trim(); } //if (this.checkBoxDELVRY_EDATEexport.Checked) //{ // //接收日期 // strDateForm = this.ultraDateTimeDELVRY_EDATEFrom.DateTime.ToString("yyyy/MM/dd"); // strDateTo = this.ultraDateTimeDELVRY_EDATETo.DateTime.ToString("yyyy/MM/dd"); //} if (checkBoxAcpStatus.Checked) { //合同状态 status = ultraComboEditAcpStatus.Value.ToString(); } if (checkBoxImport.Checked) { isImportOrd = true; } if (checkBoxNotCraft.Checked) { notCraft = true; } if (checkBoxFinish.Checked) { strFinish = ultraComboFinishEditor.Value.ToString(); } if (checkBoxRollMonth.Checked) { strRollMonth = ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM"); } param.Add(strAcceptNo); param.Add(strOrderNo); param.Add(strRollMonth); param.Add(status); DataTable dt = comBll.Query(param, strFinish, notCraft, isImportOrd); GridHelper.CopyDataToDatatable(dt, dataTable1, true); ///设置grid不可编辑 PlanComm.setGridActivation(ultraGridExport.DisplayLayout.Bands[0]); PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 3, "ORDER_QTY", "ORDERWEIGHT", "CONFIRM_WT_SUM", "Z_ORDERWEIGHT"); PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 2, "TOTLENGTH", "HEIGHT_YLG", "DIMATER_YLG"); PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 0, "Z_ORDERNUM"); } /// /// 导出excl /// public void DoExport() { try { int rowCount = this.ultraGridExport.Rows.Count; int colCount = this.ultraGridExport.DisplayLayout.Bands[0].Columns.Count - 11; object[,] arr = new object[rowCount, colCount]; for (int j = 0; j < rowCount; j++) { for (int i = 0; i < colCount; i++) { string output = ultraGridExport.Rows[j].Cells[i].Value.ToString(); if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("GROUP_ROLL")) { //产线 int plineCode = 0; output = output.Replace("机组", ""); if (int.TryParse(output, out plineCode)) { output = "'" + plineCode.ToString(); } } if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("STEELNAME")) { //钢级 double grade = 0; if (double.TryParse(output, out grade)) { output = "'" + output; } } if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("ROLL_MONTH")) { //轧制月份 DateTime dt = new DateTime(); if (DateTime.TryParse(output, out dt)) { output = "'" + dt.ToString("yyyyMM"); } } if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("MONITORDEMAND")) { //监制 if (!ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString().Equals("")) { output = output + "(" + ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString() + ")"; } } arr[j, i] = output; } } string path = System.Windows.Forms.Application.StartupPath + "\\model"; string tempExcel = path + "\\FrmSaleOrdmodel.xls"; string outPutExcl = "销售合同" + DateTime.Now.ToString("yyyyMMdd"); if (!System.IO.File.Exists(tempExcel))//检察模板是否存在 { MessageBox.Show(this, "未找到报表模板!"); return; } if (ultraGridExport.Rows.Count == 0) return; if (outPutExcl.Length == 0) outPutExcl = "未命名"; SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "保存"; dlg.OverwritePrompt = true; dlg.Filter = "Excel文件(*.xls)|*.xls"; dlg.AddExtension = true; dlg.FileName = outPutExcl; if (dlg.ShowDialog() == DialogResult.OK) { outPutExcl = dlg.FileName; PlanComm.WaitFromOpen(this.Cursor); ExcelHelper excelport = new ExcelHelper(tempExcel, outPutExcl); if (excelport.ArrayToExcel(arr, 2, 1, "Sheet")) { PlanComm.WaitFromColse(this.Cursor); if (MessageBox.Show("数据导出成功!\n需要打开所导出文件吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ProcessStartInfo p = new ProcessStartInfo(outPutExcl); p.WorkingDirectory = System.IO.Path.GetDirectoryName(outPutExcl); Process.Start(p); } } else { PlanComm.WaitFromColse(this.Cursor); MessageBox.Show("数据导出失败!"); return; } } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); MessageBox.Show(ex.Message); } } /// /// 按Grid格式导出 /// public void DoGridExport() { PlanComm.Export(ref ultraGridExport, "排产" + DateTime.Now.ToString("yyyyMMdd"), ultraGridExcelExporter1); } /// /// 查看上传工艺文件 /// public void DoLookCraftFile(OpeBase _ob) { UltraGridRow ugr = this.ultraGridExport.ActiveRow; if (ugr == null) { return; } string plnDivideId = "01"; string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString(); if (ordLnDlyPk.Contains('-')) { plnDivideId = ordLnDlyPk.Substring(ordLnDlyPk.LastIndexOf('-') + 1, ordLnDlyPk.Length - ordLnDlyPk.LastIndexOf('-') - 1); ordLnDlyPk = ordLnDlyPk.Substring(0, ordLnDlyPk.LastIndexOf('-')); } DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath", new object[] { ordLnDlyPk, plnDivideId }, _ob); if (dtPath != null && dtPath.Rows.Count > 0) { ArrayList listPIC = new ArrayList(); foreach (DataRow dr in dtPath.Rows) { listPIC.Add(dr["CRAFT_PATH"].ToString()); } dlgOrderAskLook orderAsk = new dlgOrderAskLook(_ob, listPIC); orderAsk.Text = "查看上传工艺文件"; orderAsk.Show(); } } /// /// 合同行工艺文件 /// public void TechOrderLine() { UltraGridRow ugr = ultraGridExport.ActiveRow; if (ugr == null) { return; } string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString(); if (!ordLnDlyPkId.Equals("") && ordLnDlyPkId.Length >= 41) { string ordLnPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 6); string designKey = ugr.Cells["DESGIN_KEY"].Value.ToString(); string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true" + "&desgin_key=" + designKey + "&lnpk=" + ordLnPk; FrmOutExcel outPut = new FrmOutExcel(url); outPut.Show(); } } #region 查询区事件 private void checkBoxDELVRY_EDATEexport_CheckedChanged(object sender, EventArgs e) { if (checkBoxDELVRY_EDATEexport.Checked) { ultraDateTimeDELVRY_EDATEFrom.Enabled = true; ultraDateTimeDELVRY_EDATETo.Enabled = true; } else { ultraDateTimeDELVRY_EDATEFrom.Enabled = false; ultraDateTimeDELVRY_EDATETo.Enabled = false; } } private void checkBoxORDER_NOexpor_CheckedChanged(object sender, EventArgs e) { if (checkBoxORDER_NOexpor.Checked) { ultraTextORDER_NO.Enabled = true; } else { ultraTextORDER_NO.Enabled = false; } } private void checkBoxAcpStatus_CheckedChanged(object sender, EventArgs e) { if (checkBoxAcpStatus.Checked) { this.ultraComboEditAcpStatus.Enabled = true; } else { this.ultraComboEditAcpStatus.Enabled = false; } } private void checkBoxAcceptNoexport_CheckedChanged(object sender, EventArgs e) { if (checkBoxAcceptNoexport.Checked) { ultraTextAcceptNo.Enabled = true; } else { ultraTextAcceptNo.Enabled = false; } } private void ultraDateTimeDELVRY_EDATEFrom_ValueChanged(object sender, EventArgs e) { ultraDateTimeDELVRY_EDATETo.MinDate = ultraDateTimeDELVRY_EDATEFrom.DateTime.Date; } private void ultraDateTimeDELVRY_EDATETo_ValueChanged(object sender, EventArgs e) { ultraDateTimeDELVRY_EDATEFrom.MaxDate = ultraDateTimeDELVRY_EDATETo.DateTime.AddDays(1).Date.AddSeconds(-1); } #endregion #region public System.Windows.Forms.CheckBox CheckBoxDELVRY_EDATEexport { get { return checkBoxDELVRY_EDATEexport; } set { checkBoxDELVRY_EDATEexport = value; } } public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATEFrom { get { return ultraDateTimeDELVRY_EDATEFrom; } set { ultraDateTimeDELVRY_EDATEFrom = value; } } public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATETo { get { return ultraDateTimeDELVRY_EDATETo; } set { ultraDateTimeDELVRY_EDATETo = value; } } public System.Windows.Forms.CheckBox CheckBoxORDER_NOexpor { get { return checkBoxORDER_NOexpor; } set { checkBoxORDER_NOexpor = value; } } public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextORDER_NO { get { return ultraTextORDER_NO; } set { ultraTextORDER_NO = value; } } public System.Windows.Forms.CheckBox CheckBoxAcpStatus { get { return checkBoxAcpStatus; } set { checkBoxAcpStatus = value; } } public Infragistics.Win.UltraWinEditors.UltraComboEditor UltraComboEditAcpStatus { get { return ultraComboEditAcpStatus; } set { ultraComboEditAcpStatus = value; } } public System.Windows.Forms.CheckBox CheckBoxAcceptNoexport { get { return checkBoxAcceptNoexport; } set { checkBoxAcceptNoexport = value; } } public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextAcceptNo { get { return ultraTextAcceptNo; } set { ultraTextAcceptNo = value; } } public System.Windows.Forms.CheckBox CheckBoxNotCraft { get { return checkBoxNotCraft; } set { checkBoxNotCraft = value; } } public System.Windows.Forms.CheckBox CheckBoxImport { get { return checkBoxImport; } set { checkBoxImport = value; } } public Infragistics.Win.UltraWinGrid.UltraGrid UltraGridExport { get { return ultraGridExport; } set { ultraGridExport = value; } } private void checkBoxFinish_CheckedChanged(object sender, EventArgs e) { if (checkBoxFinish.Checked) { ultraComboFinishEditor.Enabled = true; } else { ultraComboFinishEditor.Enabled = false; } } private void checkBoxRollMonth_CheckedChanged(object sender, EventArgs e) { if (checkBoxRollMonth.Checked) { ultraDateTimeRollMonth.Enabled = true; } else { ultraDateTimeRollMonth.Enabled = false; } } #endregion /// /// 查看监制文件 /// /// /// private void ultraFileLook_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { UltraGridRow ugr = ultraGridExport.ActiveRow; if (ugr == null) { return; } //ArrayList listPIC = new ArrayList(); //listPIC.Add(ugr.Cells["PRDCR_PATH"].Value.ToString()); //comBll.DoLookMon(listPIC); string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString(); if (!ordLnDlyPkId.Equals("") && ordLnDlyPkId.Length >= 41) { string ordLnDlyPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 3); string plnDivideId = ordLnDlyPkId.Replace(ordLnDlyPk + "-", ""); FrmOrdLinePrdcrLst prdcr = new FrmOrdLinePrdcrLst(ordLnDlyPk, plnDivideId, comBll._ob); prdcr.Show(); } } private void ultraGridExcelExporter1_CellExported(object sender, Infragistics.Win.UltraWinGrid.ExcelExport.CellExportedEventArgs e) { // Apply a formula to the "Total" cells. This only applies to the Formulas grid, since // the images grid has no "Total" column. if (e.GridColumn.Key == "RANGE_MIN" || e.GridColumn.Key == "RANGE_MAX") { // This cell should be the product of the previous 2 cells in the same row. // Using R1C1 notation is easier, because we can use relative row and column indices //string formulaString = "=R[0]C[-2] * R[0]C[-1]"; // Get the cell to which the formula will be applied. Infragistics.Excel.WorksheetCell worksheetCell = e.CurrentWorksheet.Rows[ e.CurrentRowIndex].Cells[e.CurrentColumnIndex]; // Apply the formula. //worksheetCell.ApplyFormula(formulaString); // Format the cell as currency. worksheetCell.CellFormat.FormatString = "##0.00%"; double value = 0; if (e.Value != null) { double.TryParse(e.Value.ToString(), out value); value = value / 100; } worksheetCell.Value = value; } } } }