using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.工序排产; using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity; using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.PlnSaleOrd.炉计划 { public partial class FrmPlanStoveG : FrmBase { private ArrayList _EntityList = null; private string[] plineCode = null;//获取产线代码 /// /// 虚拟炉计划id /// private string _heatPlanNo = ""; /// /// 行首背景色 /// private Color _backColor = new Color(); public FrmPlanStoveG() { this.IsLoadUserView = true; InitializeComponent(); } private void FrmPlanStoveG_Load(object sender, EventArgs e) { //订单排产 EntityHelper.ShowGridCaption(ultraGridZy.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); //BaseHelper.setOtherColumnReadOnly(ultraGridZy, new string[] { "CHC" }); BaseHelper.setUltraGridColumnMaxInput(ultraGridZy, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" }); BaseHelper.setUltraGridColumnBits(ultraGridZy, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }); BaseHelper.InitCellPosition(ultraGridZy, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn", "LengthminIn","OutnumCut","Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq"}); BaseHelper.GridColumnSum(ultraGridZy, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW" }); BaseHelper.GridColumnCount(ultraGridZy, new string[] { "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }); //BaseHelper.InitCellPositionMiddle(ultraGridZy, new string[] { "Isendgx", "IfWlMatched", "IfMonitorZg" }); plineCode = PlanHelper.InitDropPlinePower("G", txtLine, this.ValidDataPurviewIds, this.ob); StoveHelper.ForbidSort(ultraGridZy); //BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC" }); BaseHelper.setUltraGridColumnMaxInput(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt"}); BaseHelper.setUltraGridColumnBits(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum"}); BaseHelper.InitCellPosition(ultraGrid1, new string[] { "GxProSeq", "GxPlanNo","OrderSeq", "DeliveryNo", "PlnInsingleNum", "PlnInsingleWt", "PlnIndoubleNum","PlnIndoubleWt","PlnOutsingleNum","PlnOutsingleW" ,"PlnOutdoubleNum","PlnOutdoubleW","OutdiameterIn","WallthickIn","LengthIn","LengthmaxIn", "LengthminIn","OutnumCut", "Outdiameter","Wallthick","Lengthmin","Lengthmax","CraftSeq","RealOutdoubleWt", "RealIndoubleWt", "RealOutdoubleNum", "RealIndoubleNum"}); BaseHelper.GridColumnSum(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt" }); BaseHelper.GridColumnCount(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum" }); StoveHelper.ForbidSort(ultraGrid1); InitDate(); BaseHelper.SetGroupBySum(ultraGrid1, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW", "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }, "HeatPlanNo"); InitDate(); BaseHelper.InitComboEditor(ultraComboEditor1, "com.steering.pss.plnsaleord.planStove.FrmPlanStoveD.doQueryStorageNo", "STORAGE_NO", ob, true); } private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { StoveHelper.CustomMergedCellEvaluator merge = new StoveHelper.CustomMergedCellEvaluator("HeatPlanNo"); e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["HeatPlanNo"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["JudgeStoveNo"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["StoveNo"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["StoveNo"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnInsingleWt"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnOutsingleW"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnIndoubleWt"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnOutdoubleW"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnInsingleNum"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnOutsingleNum"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnIndoubleNum"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["PlnOutdoubleNum"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["ZyBatchId"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["GxProSeq"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["GxProSeq"].MergedCellEvaluator = merge; e.Layout.Bands[0].Columns["Planstatus"].MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["Planstatus"].MergedCellEvaluator = merge; } /// /// 初始时间 /// private void InitDate() { DateTime datetime = DateTime.Now; dateBegin.Value = datetime.AddDays(1 - datetime.Day); dateEnd.Value = datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1); } private void chcLine_CheckedChanged(object sender, EventArgs e) { if (chcLine.Checked) { txtLine.Enabled = true; } else { txtLine.Enabled = false; } if (chcProPlanId.Checked) { txtProPlanId.Enabled = true; } else { txtProPlanId.Enabled = false; } if (chcOrderNo.Checked) { txtOrderNo.Enabled = true; } else { txtOrderNo.Enabled = false; } if (chcId.Checked) { txtId.Enabled = true; } else { txtId.Enabled = false; } if (chcTime.Checked) { dateBegin.Enabled = true; dateEnd.Enabled = true; } else { dateBegin.Enabled = false; dateEnd.Enabled = false; } if (chcJudgeNo.Checked) { txtJudgeNo.Enabled = true; } else { txtJudgeNo.Enabled = false; } if (txtFeedCheck.Checked) { txtFeedHeatNo.Enabled = true; } else { txtFeedHeatNo.Enabled = false; } } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query"://查询 Query(); break; case "UpdateGoWhere": updateGoWhere(); break; case"UpdateLoadFlag": updateLoadFlag(); break; case "UpdateIsWeight": updateIsWeight(); break; case "Export": //导出 Export(); break; case "Print": doPrint(); break; case "Print2": doPrint2(); break; case "Close": //关闭 this.Close(); break; case "Excel": doExcel(); break; default: break; } } /// /// 生产计划卡 /// private void doPrint() { this.ultraGridZy.UpdateData(); UltraGridRow uRow = this.ultraGridZy.ActiveRow; if (uRow == null) { return; } ArrayList parm = new ArrayList(); int countM = 0; string judgeStoveNo = ""; string plineCode = ""; string heatPlanNo = ""; foreach (UltraGridRow item in ultraGridZy.Rows) { if (Convert.ToBoolean(item.Cells["CHC"].Text) == true) { countM++; plineCode = item.Cells["PlineCode"].Text.ToString().Trim(); judgeStoveNo += "'" + item.Cells["FeedHeatNo"].Text.ToString().Trim() + "',"; heatPlanNo += "'" + item.Cells["HeatPlanNo"].Text.ToString().Trim() + "',"; } } if (countM == 0) { MessageUtil.ShowTips("请勾选需要打印的加工线生产计划卡信息!"); return; } //TZH 24.11.7 按照现场的需求取消 //if (countM > 10) //{ // MessageUtil.ShowTips("一次最多打印10个生产计划卡!"); // return; //} if (judgeStoveNo.Equals("")) return; judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3); if (heatPlanNo.Equals("")) return; heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3); string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMchProductionPlanTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo; FrmRepExcel fre = new FrmRepExcel(this.ob, url); //fre.AutoSize = true; fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fre.Text = "生产计划卡"; fre.ShowDialog(); } /// /// 生产流动卡 /// private void doPrint2() { this.ultraGridZy.UpdateData(); UltraGridRow uRow = this.ultraGridZy.ActiveRow; if (uRow == null) { return; } ArrayList parm = new ArrayList(); int countM = 0; string judgeStoveNo = ""; string plineCode = ""; string heatPlanNo = ""; foreach (UltraGridRow item in ultraGridZy.Rows) { if (Convert.ToBoolean(item.Cells["CHC"].Text) == true) { countM++; plineCode = item.Cells["PlineCode"].Text.ToString().Trim(); judgeStoveNo += "'" + item.Cells["FeedHeatNo"].Text.ToString().Trim() + "',"; heatPlanNo += "'" + item.Cells["HeatPlanNo"].Text.ToString().Trim() + "',"; } } if (countM == 0) { MessageUtil.ShowTips("请勾选需要打印的加工线生产流动卡信息!"); return; } if (countM > 1) { MessageUtil.ShowTips("一次最多打印1个生产流动卡!"); return; } if (judgeStoveNo.Equals("")) return; judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3); if (heatPlanNo.Equals("")) return; heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3); string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMchDeliveryCardTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo; FrmRepExcel fre = new FrmRepExcel(this.ob, url); //fre.AutoSize = true; fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fre.Text = "生产流动卡"; fre.ShowDialog(); } private void updateIsWeight() { this.ultraGridZy.UpdateData(); UltraGridRow row = this.ultraGridZy.ActiveRow; if (row == null) { return; } ArrayList parmList = new ArrayList(); PlnZyJgxMEntity plnDbkTity = (PlnZyJgxMEntity)row.ListObject; string plnZgEntity = JSONFormat.Format(plnDbkTity); parmList.Add(plnZgEntity); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveG"; ccp.MethodName = "updateIsWeight"; ccp.ServerParams = new object[] { parmList }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { QueryM(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 标识库位不变 /// private void updateLoadFlag() { this.ultraGridZy.UpdateData(); UltraGridRow row = this.ultraGridZy.ActiveRow; if (row == null) { return; } ArrayList parmList = new ArrayList(); PlnZyJgxMEntity plnDbkTity = (PlnZyJgxMEntity)row.ListObject; string plnZgEntity = JSONFormat.Format(plnDbkTity); parmList.Add(plnZgEntity); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveG"; ccp.MethodName = "updateLoadFlag"; ccp.ServerParams = new object[] { parmList }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { QueryM(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 修改去向 /// private void updateGoWhere() { this.ultraGridZy.UpdateData(); UltraGridRow row = this.ultraGridZy.ActiveRow; if (row == null) { return; } ArrayList parmList = new ArrayList(); PlnZyJgxMEntity plnDbkTity = (PlnZyJgxMEntity)row.ListObject; plnDbkTity.GowhereCode = row.Cells["GowhereCode"].Value.ToString(); plnDbkTity.GowhereName = row.Cells["GowhereCode"].Text.ToString(); string plnZgEntity = JSONFormat.Format(plnDbkTity); parmList.Add(plnZgEntity); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanStoveG"; ccp.MethodName = "updateGoWhere"; ccp.ServerParams = new object[] { parmList }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("修改成功!")) { QueryM(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } private void Query() { if (ultraExpandableGroupBox1.Expanded == false) { QueryC(); } else { QueryM(); } } private int activation = 0; /// /// 导出 /// private void Export() { if (activation < 2) { GridHelper.ulGridToExcel(ultraGridZy, "加工线炉计划主信息"); } else { GridHelper.ulGridToExcel(ultraGrid1, "加工线炉计划详情"); } } /// /// 查询镦拔虚拟炉计划 /// private void QueryM() { //产线 string plineCode = ""; if (chcLine.Checked) { plineCode = txtLine.Value == null ? "" : txtLine.Value.ToString(); } //if (txtLine.Text.Equals("")) //{ // MessageUtil.ShowTips("请选择产线!"); // return; //} string timeBegin = ""; string timeEnd = ""; if (chcTime.Checked && dateBegin.Value != null && dateEnd.Value != null) { timeBegin = DateTime.Parse(dateBegin.Value.ToString()).ToString("yyyy-MM-dd"); timeEnd = DateTime.Parse(dateEnd.Value.ToString()).ToString("yyyy-MM-dd"); } string orderNo = ""; if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); } string proPlanId = ""; if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); } string heatId = ""; if (chcId.Checked) { heatId = txtId.Text.Trim(); } string judgeNo = ""; if (chcJudgeNo.Checked) { judgeNo = txtJudgeNo.Text.Trim(); } string feedNo = ""; if (txtFeedCheck.Checked) { feedNo = txtFeedHeatNo.Text.Trim(); } //执行状态 string[] statusArr = contorlPlanStatusZy1.statusArr; List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveG.queryPlanStoveYzF", new object[] { timeBegin, timeEnd, plineCode, orderNo, proPlanId, heatId, statusArr, judgeNo, feedNo }, this.ob); plnZyJgxMEntityBindingSource.DataSource = listSource; foreach (UltraGridRow ugr in ultraGridZy.Rows) { int countMess = 0; if (!_heatPlanNo.Equals("")) { if (ugr.Cells["HeatPlanNo"].Text.Trim().Equals(_heatPlanNo)) { ugr.Activate(); break; } } if (_EntityList != null) { for (int i = 0; i < _EntityList.Count; i++) { PlnZyJgxMEntity entity = (PlnZyJgxMEntity)_EntityList[i]; if (ugr.Cells["HeatPlanNo"].Text.Trim().Equals(entity.HeatPlanNo)) { ugr.Appearance.BackColor = Color.Wheat; ugr.Activate(); } } } } _EntityList = null; _heatPlanNo = ""; } /// /// 查询镦拔扩实际炉计划 /// private void QueryC() { //产线 string plineCode = ""; if (chcLine.Checked) { plineCode = txtLine.Value == null ? "" : txtLine.Value.ToString(); } //if (txtLine.Text.Equals("")) //{ // MessageUtil.ShowTips("请选择产线!"); // return; //} string timeBegin = ""; string timeEnd = ""; if (chcTime.Checked && dateBegin.Value != null && dateEnd.Value != null) { timeBegin = DateTime.Parse(dateBegin.Value.ToString()).ToString("yyyy-MM-dd"); timeEnd = DateTime.Parse(dateEnd.Value.ToString()).ToString("yyyy-MM-dd"); } string orderNo = ""; if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); } string proPlanId = ""; if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); } string heatId = ""; if (chcId.Checked) { heatId = txtId.Text.Trim(); } string judgeNo = ""; if (chcJudgeNo.Checked) { judgeNo = txtJudgeNo.Text.Trim(); } string feedNo = ""; if (txtFeedCheck.Checked) { feedNo = txtFeedHeatNo.Text.Trim(); } //执行状态 string[] statusArr = contorlPlanStatusZy1.statusArr; List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveG.queryPlnZyDbkReadyById", new object[] { timeBegin, timeEnd, plineCode, orderNo, proPlanId, heatId, statusArr, judgeNo, feedNo }, this.ob); plnZyJgxReadyEntityBindingSource.DataSource = listSource; foreach (UltraGridRow ugr in ultraGrid1.Rows) { //没有实际炉计划,主炉计划变颜色 if (ugr.Cells["HeatPlanSqe"].Value.ToString().Equals("")) { //ugr.RowSelectorAppearance.BackColor = Color.GreenYellow; ugr.Appearance.BackColor = Color.Orange; } } } private void ultraGridZy_AfterRowActivate(object sender, EventArgs e) { UltraGridRow row = ultraGridZy.ActiveRow; if (row == null) return; QueryMRow(row.Cells["HeatPlanNo"].Text.ToString().Trim()); } private void QueryMRow(string heatPlanNo) { List listSourceM = EntityHelper.GetData ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveG.queryPlanStoveRow", new object[] { heatPlanNo }, ob); plnZyJgxReadyEntityBindingSource.DataSource = listSourceM; foreach (UltraGridRow ugr in ultraGrid1.Rows) { //没有实际炉计划,主炉计划变颜色 if (ugr.Cells["HeatPlanSqe"].Value.ToString().Equals("")) { //ugr.RowSelectorAppearance.BackColor = Color.GreenYellow; ugr.Appearance.BackColor = Color.Orange; } } } private int splitterDistance = 0; int count1 = 0; int count2 = 0; private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox1.Expanded == false) { this.splitContainer1.SplitterDistance = 26; count1 = 26; } else { if (ultraExpandableGroupBox2.Expanded == false) { this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26; } else { this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance; } count1 = splitContainer1.Size.Height - 26; } } private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox2.Expanded == false) { if (count1 == 0) { count1 = splitContainer1.Size.Height - 26; } this.splitContainer1.SplitterDistance = count1; } else { if (ultraExpandableGroupBox1.Expanded == false) { this.splitContainer1.SplitterDistance = 26; } else { //this.splitContainer1.SplitterDistance = count1; this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance; } } } private void ultraGridZy_Click(object sender, EventArgs e) { activation = 1; } private void ultraGridZy_ClickCell(object sender, ClickCellEventArgs e) { activation = 1; } private void ultraGrid1_Click(object sender, EventArgs e) { activation = 2; } private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e) { activation = 2; } private void doExcel() { try { var reportUrls = new Dictionary(); foreach (UltraGridRow row in ultraGridZy.Rows) { if (Convert.ToBoolean(row.Cells["CHC"].Text) == true) { string plineCode = row.Cells["PlineCode"].Value.ToString(); string judgeStoveNo = row.Cells["FeedHeatNo"].Value.ToString(); string heatPlanNo = row.Cells["HeatPlanNo"].Value.ToString(); /* if (judgeStoveNo.Equals("")) return; judgeStoveNo = judgeStoveNo.Substring(1, judgeStoveNo.Length - 3); if (heatPlanNo.Equals("")) return; heatPlanNo = heatPlanNo.Substring(1, heatPlanNo.Length - 3);*/ string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepMchDeliveryCardTH.cpt&JUDGE_STOVE_NO=" + judgeStoveNo + "&HEAT_PLAN_NO=" + heatPlanNo; reportUrls.Add(url, judgeStoveNo); } } // 检查是否有选中的数据 if (reportUrls.Count == 0) { MessageBox.Show("请先选择要导出的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // 使用文件夹浏览器对话框选择目录 using (FolderBrowserDialog folderDialog = new FolderBrowserDialog()) { folderDialog.Description = "选择导出目录"; folderDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); folderDialog.ShowNewFolderButton = true; if (folderDialog.ShowDialog() == DialogResult.OK) { string selectedDirectory = folderDialog.SelectedPath; string outputPath = Path.Combine(selectedDirectory, DateTime.Now.ToString("yyyyMMdd") + "加工线炉计划.xlsx"); // 检查文件是否已存在,如果存在则询问是否覆盖 if (File.Exists(outputPath)) { DialogResult overwriteResult = MessageBox.Show("文件已存在,是否覆盖?", "确认覆盖", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (overwriteResult == DialogResult.No) { return; // 用户选择不覆盖,直接返回 } } var merger = new MultiReportExcelMerger(); string result = merger.MergeReportsUsingInterop(reportUrls, outputPath); if (result == "成功") { MessageBox.Show($"导出成功!\n文件已保存到:{outputPath}", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); // 可选:打开文件所在目录 if (MessageBox.Show("是否打开文件所在目录?", "打开目录", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { System.Diagnostics.Process.Start("explorer.exe", $"/select,\"{outputPath}\""); } } else { MessageBox.Show($"导出出错: {result}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } catch (Exception ex) { MessageBox.Show($"导出出错: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }