using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.工序排产; using Core.StlMes.Client.PlnSaleOrd.工序排产.entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Core.StlMes.Client.PlnSaleOrd.窗体; using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool; namespace Core.StlMes.Client.PlnSaleOrd { /// /// 加工线排产界面 /// public partial class FrmPlnOrderJgxSQuery : FrmBase { DataTable dtPlinGroup = null; private ArrayList _entityList = null; /// ///产线权限 /// private string[] plinePower = new string[] { "" }; /// /// 工序订单编号 /// private string _ProPlanId = ""; /// /// 排产顺序号 /// private string _GxPlanNo = ""; /// /// 默认产线 /// private string PLINECODE = ""; /// /// 列头默认颜色 /// private Color COLOR = new Color(); /// /// 分组与产线下拉框集合 /// private Dictionary UCBDICTION = null; private string proPlanId = ""; private string gxPlanNo = ""; private string USERNAME = ""; public FrmPlnOrderJgxSQuery() { this.IsLoadUserView = true; InitializeComponent(); System.Threading.Thread t = new System.Threading.Thread(setGridColunm); t.Start(); } /// /// 用于初始化F1功能加字段问题 /// /// /// /// private void setGridColunm() { BaseHelper.SetGridColunmName(this, ultraGridJgxs); } private void FrmPlnOrderJgxS_Load(object sender, EventArgs e) { //弹窗CustomInfo的值为NULL EntityHelper.ShowGridCaption(ultraGridJgxs.DisplayLayout.Bands[0]); BaseHelper.setUltraGridColumnMaxInput(ultraGridJgxs, new string[] { "WeigthS", "ExpectWt" }); BaseHelper.InitCellPosition(ultraGridJgxs, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "WeigthS", "NumS", "GxProSeq", "PlanUsetime", "Outdiameter", "Wallthick", "Lengthmax", "Lengthmin", "Aimwallthick", "Aimlength", "ShrtLenRato", "Shortest", "LongLenRato", "Longest", "AvgLenMin", "DifrncLenMax", "SiglLen", "EndlenSpecstd", "LengthmaxIn", "LengthminIn", "LengthIn", "OutnumCut", "InWeightS", "InNumS", "AddWtIn", "AddNumIn", "MatchWtIn", "MatchNumIn", "BatchedWt", "BatchedNum", "Finishweight", "Finishnum", "ProcessingCost", "TotalCost" ,"FinishWgt","UnfinishWgt","UnfinishNum","OutputNum","ExpectWt","ExpectNum"}); BaseHelper.GridColumnSum(ultraGridJgxs, new string[] { "WeigthS" }); BaseHelper.GridColumnCount(ultraGridJgxs, new string[] { "NumS" }); BaseHelper.InitCellPositionMiddle(ultraGridJgxs, new string[] { "IsRepairPln", "IsPlanOk", "IfMonitorJgx" }); PlanHelper.InitEditPline("G", PLINECODE, ultraGridJgxs, this); PlanHelper.InitRepairType(ultraGridJgxs, this); PlanHelper.InitEditGroup("2004", ultraGridJgxs, this, "GroupJgx"); PlanHelper.InitDropGroup("2004", txtGroup, this.ob); plinePower = PlanHelper.InitDropPlinePower("G", comJgPlne, this.ValidDataPurviewIds, this.ob); UCBDICTION = PlanHelper.GetPlineUcb("2004", "G", this); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); //炉计划 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", "PlanIndoubleWt","RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum"}); BaseHelper.GridColumnSum(ultraGrid1, new string[] { "RealOutdoubleWt", "RealIndoubleWt", "PlanIndoubleWt" }); BaseHelper.GridColumnCount(ultraGrid1, new string[] { "RealOutdoubleNum", "RealIndoubleNum", "PlanIndoubleNum" }); BaseHelper.ForbidSort(ultraGrid1); BaseHelper.SetGroupBySum(ultraGrid1, new string[] { "PlnInsingleWt", "PlnOutsingleW", "PlnIndoubleWt", "PlnOutdoubleW", "PlnInsingleNum", "PlnOutsingleNum", "PlnIndoubleNum", "PlnOutdoubleNum" }, "HeatPlanNo"); COLOR = ultraGridJgxs.DisplayLayout.Override.RowSelectorAppearance.BackColor; InitColorStyle(); InitTime(); } /// /// 初始化列状态 /// private void InitColorStyle() { ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileLv2G"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileLv2G"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridJgxs.DisplayLayout.Bands[0].Columns["CraftFileNo"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["PreInfo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridJgxs.DisplayLayout.Bands[0].Columns["PreInfo"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProLin"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProLin"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["TimeDiffer"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["BefProNum"].CellAppearance.BackColor = Color.GreenYellow; ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].Format = "yyyy-MM-dd HH:mm:ss"; ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].MaskInput = "yyyy-mm-dd hh:mm:ss"; ultraGridJgxs.DisplayLayout.Bands[0].Columns["PlanTimeB"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTime; ultraGridJgxs.DisplayLayout.Bands[0].Columns["ZgStartTime"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton; ultraGridJgxs.DisplayLayout.Bands[0].Columns["ZgStartTime"].CellAppearance.BackColor = Color.GreenYellow; } private void chc_CheckedChanged(object sender, EventArgs e) { if (chcOrderNo.Checked) { txtOrderNo.ReadOnly = false; } else { txtOrderNo.ReadOnly = true; } if (chcProplanNo.Checked) { txtProplanNo.ReadOnly = false; } else { txtProplanNo.ReadOnly = true; } if (chcGroup.Checked) { txtGroup.ReadOnly = false; } else { txtGroup.ReadOnly = true; } } private void ultraGridJgxs_InitializeRow(object sender, InitializeRowEventArgs e) { PlanHelper.ControlCellEdit(e.Row); //排产查询界面 if (CustomInfo.Equals("0")) { if (UCBDICTION != null) { string key = e.Row.Cells["GroupJgx"].Value == null ? "" : e.Row.Cells["GroupJgx"].Value.ToString(); if (UCBDICTION.ContainsKey(key)) { e.Row.Cells["PlineCode"].EditorComponent = UCBDICTION[key]; } } } } /// /// 排产查询界面 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query"://查询 Query(); break; case "Export": //导出 GridHelper.ulGridToExcel(ultraGridJgxs, "加工排产排序信息"); break; case "Close"://关闭 this.Close(); break; default: break; } } /// /// 查询管加工排产 /// public void Query() { WaitingForm2 wf3 = new WaitingForm2("正在刷新,请稍候...."); try { this.Cursor = Cursors.WaitCursor; //产线 string plineCode = ""; if (chcJgPlne.Checked) { plineCode = comJgPlne.Value == null ? "" : comJgPlne.Value.ToString(); } if (!CustomInfo.Equals("0") && plineCode.Equals("")) { MessageUtil.ShowTips("请选择产线!"); return; } //状态 string[] listStatus = contorlPlanStatus1.statusArr; //合同号 string orderNo = ""; if (chcOrderNo.Checked) { orderNo = txtOrderNo.Text.Trim(); } //订单编号 string proPlanNo = ""; if (chcProplanNo.Checked) { proPlanNo = txtProplanNo.Text.Trim(); } string group = ""; if (chcGroup.Checked && txtGroup.Value != null) { group = txtGroup.Value.ToString(); } string planTimeB1 = ""; string planTimeB2 = ""; if (chcPlanTimeB.Checked && txtPlanTimeB2.Value != null && txtPlanTimeB1.Value != null) { planTimeB1 = DateTime.Parse(txtPlanTimeB1.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); planTimeB2 = DateTime.Parse(txtPlanTimeB2.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); } string planTimeE1 = ""; string planTimeE2 = ""; if (chcPlanTimeE.Checked && txtPlanTimeE2.Value != null && txtPlanTimeE1.Value != null) { planTimeE1 = DateTime.Parse(txtPlanTimeE1.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); planTimeE2 = DateTime.Parse(txtPlanTimeE2.Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"); } List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlanOrderG1", new object[] { plineCode, proPlanNo, orderNo, group, listStatus, planTimeB1, planTimeB2, planTimeE1, planTimeE2 }, this.ob); plnOrderJgxSOEntityBindingSource.DataSource = listSource; dtPlinGroup = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlinCodeGroup", null, this.ob); //ProducHelper.copyLZData(ultraGridJgxs,"G", this.ob); foreach (UltraGridRow ugr in ultraGridJgxs.Rows) { string str = ugr.Cells["PreInfo"].Text.Trim(); if (str!=null&&str != "") { string[] sArray = str.Split(new char[3] { '天',',','条' }); ugr.Cells["TimeDiffer"].Value = sArray[0]; ugr.Cells["BefProLin"].Value = sArray[2]; ugr.Cells["BefProNum"].Value = sArray[3]; } if (dtPlinGroup.Rows.Count > 0) { //for (int i = 0; i < dtPlinGroup.Rows.Count; i++) //{ string plinGroup = dtPlinGroup.Rows[0]["PLINE_NAME_M"].ToString() + "/" + dtPlinGroup.Rows[0]["PLINE_NAME_C"].ToString(); DataRow[] dr = dtPlinGroup.Select("PLINE_NAME_M='" + ugr.Cells["PlineCode"].Text.ToString() + "'AND PLINE_NAME_C ='" + ugr.Cells["AfInfo"].Text + "'", ""); if (dr == null || dr.Length == 0) { } else { //DataTable tmp = dr.Table.Clone(); // 复制DataRow的表结构 //if (tmp.Rows.Count > 0) //{ ugr.Cells["StockGroupName"].Value = dr[0]["STOCK_GROUP_NAME"].ToString(); //} } } } //激活操作行代码 if ((!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) || _entityList != null) { foreach (UltraGridRow ugr in ultraGridJgxs.Rows) { if (_entityList != null) { for (int i = 0; i < _entityList.Count; i++) { PlnOrderJgxSEntity jgxsEntity = (PlnOrderJgxSEntity)_entityList[i]; if (ugr.Cells["ProPlanId"].Text.Trim().Equals(jgxsEntity.ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(jgxsEntity.GxPlanNo)) { ugr.Appearance.BackColor = Color.Wheat; ugr.Activate(); } } } else { if (!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) { if (ugr.Cells["ProPlanId"].Text.Trim().Equals(_ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(_GxPlanNo)) { ugr.Activate(); break; } } } } } _entityList = null; _ProPlanId = ""; _GxPlanNo = ""; if (!CustomInfo.Equals("0")) { PLINECODE = comJgPlne.Value.ToString(); } } finally { wf3.Close(); this.Cursor = Cursors.Default; } } private void ultraGridJgxs_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridJgxs.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } private void ultraGridJgxs_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugrAc = ultraGridJgxs.ActiveRow; if (ugrAc == null) { return; } proPlanId = ugrAc.Cells["ProPlanId"].Text; gxPlanNo = ugrAc.Cells["GxPlanNo"].Text; if (CustomInfo == "0") return; QueryZyReadyF(proPlanId, gxPlanNo); } private void chcJgPlne_CheckedChanged(object sender, EventArgs e) { if (chcJgPlne.Checked) { comJgPlne.ReadOnly = false; } else { comJgPlne.ReadOnly = true; } } private void comJgPlne_ValueChanged(object sender, EventArgs e) { if (comJgPlne.Value == null) { return; } PLINECODE = comJgPlne.Value.ToString(); Query(); } private ArrayList GetChcRow() { try { ultraGridJgxs.UpdateData(); } catch (Exception) { return null; } ArrayList list = new ArrayList(); IQueryable chcRows = ultraGridJgxs.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"); if (chcRows == null || chcRows.Count() == 0) { return null; } else { foreach (UltraGridRow ugr in chcRows) { PlnOrderJgxSEntity entity = (PlnOrderJgxSEntity)ugr.ListObject; list.Add(entity); } return list; } } private void ultraGridJgxs_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGridJgxs.ActiveRow; if (e.Cell.Column.Key.Equals("CraftFileNo")) { string filePath = row.GetValue("CraftPath"); dlgOrderAskDown askDown = new dlgOrderAskDown(this.ob, filePath); // askDown.DeleteButton.Visible = false; askDown.Show(); } else if (e.Cell.Column.Key.Equals("CraftFileLv2G")) { string craftFileLv2G = row.GetValue("CraftFileLv2G"); dlgOrderAskDown askDown = new dlgOrderAskDown(this.ob, craftFileLv2G); // askDown.DeleteButton.Visible = false; askDown.Show(); // FrmCraftFileLv2 frmCraftFileLv2 = new FrmCraftFileLv2(craftFileLv2G,this.ob); // frmCraftFileLv2.ShowDialog(); } else if (e.Cell.Column.Key.Equals("BefProLin")) { string proPlanId = row.GetValue("ProPlanId"); string preInfo = row.GetValue("PreInfo"); if (preInfo == null || preInfo.Length == 0) { return; } FrmPreGxInfo frmPreGxInfo = new FrmPreGxInfo(proPlanId, "G", "Pr", this.ob); frmPreGxInfo.ShowDialog(); } //else if (e.Cell.Column.Key.Equals("PreInfo")) //{ // string proPlanId = row.GetValue("ProPlanId"); // string preInfo = row.GetValue("PreInfo"); // if (preInfo == null || preInfo.Length == 0) { return; } // FrmPreGxInfo frmPreGxInfo = new FrmPreGxInfo(proPlanId, "G", "Pr", this.ob); // frmPreGxInfo.ShowDialog(); //} else if (e.Cell.Column.Key.Equals("ZgStartTime")) { string plnPivideId = row.GetValue("PlnDivideId"); string ordLnDlyPk = row.GetValue("OrdLnDlyPk"); FrmZgSum frmPreGxInfo = new FrmZgSum(ordLnDlyPk, plnPivideId, this.ob); frmPreGxInfo.ShowDialog(); } } private void chcPlanTimeB_CheckedChanged(object sender, EventArgs e) { if (chcPlanTimeB.Checked) { txtPlanTimeB1.ReadOnly = false; txtPlanTimeB2.ReadOnly = false; } else { txtPlanTimeB1.ReadOnly = true; txtPlanTimeB2.ReadOnly = true; } } private void chcPlanTimeE_CheckedChanged(object sender, EventArgs e) { if (chcPlanTimeE.Checked) { txtPlanTimeE1.ReadOnly = false; txtPlanTimeE2.ReadOnly = false; } else { txtPlanTimeE1.ReadOnly = true; txtPlanTimeE2.ReadOnly = true; } } private void InitTime() { DateTime now = DateTime.Now; DateTime d1 = new DateTime(now.Year, now.Month, 1); DateTime d2 = d1.AddMonths(1).AddSeconds(-1); txtPlanTimeB1.Value = d1; txtPlanTimeB2.Value = d2; txtPlanTimeE1.Value = d1; txtPlanTimeE2.Value = d2; } /// /// 查询镦拔扩虚拟炉计划 /// /// /// private void QueryZyReadyF(string proPlanId, string gxPlanNo) { List listSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.planStove.FrmPlanStoveG.queryPlanStovePlanId", new object[] { proPlanId, gxPlanNo }, 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 int splitterDistance = 0; private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox1.Expanded == false) { this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26; } else { this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance; } } 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; } } }