using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinToolbars; using System; using System.Collections; using System.Data; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { /// /// 两大规范异常类型 /// public enum StdExceptionType { /// /// MSC异常 /// MSC, /// /// MSCN /// MSCN, /// /// 交付标准异常 /// Delivery, /// /// 钢种异常 /// Grade, /// /// 内控标准异常 /// NkStd, /// /// 接箍码异常 /// Jg, /// /// 接箍备料码异常 /// BlWithJg, /// /// 备料码异常 /// Bl, /// /// 附件图片异常 /// Fj, /// /// 制程 /// BackLog, /// /// 生产周期 /// ProductDate, /// /// 所有MSC(某个psc下的所有MSC, 针对技术评审的一个按钮。) /// AllMsc } public delegate void StdSucessHandler(object sender, StdEventArgs e); public partial class FrmProPSCMSC2Popup : FrmBase { private string _productCode = ""; private string _stdCode = ""; private string _steelCode = ""; private string _stdStyle = ""; private string _psc = ""; private string _useCode = ""; private string _mscUseCode = ""; private string _custer = ""; private string _msc = ""; //查询框条件MSC private string _txtMsc = ""; private string _dimater = ""; private string _height = ""; private string _model = ""; private string _mscPline = ""; private string _designKey = ""; private string _ordLnPk = ""; private string _designObjKey = ""; private string _exceptionMsg = ""; private string _custAlphaNo = ""; private string _specialDesc = ""; private string _specCode = ""; private FrmProPSCMSC2 frmMsc; private string closeAction = ""; private StdExceptionType? _stdExType; public event StdSucessHandler StdSucessEvent; public UltraGrid MscGrid { get { return frmMsc.ControlMsc.GridMsc; } } private bool _isCraft = false; public bool IsCraft { get { return _isCraft; } set { _isCraft = value; } } /// /// 弹窗构造函数 /// /// 输入参数 /// 异常类型 /// 异常提示信息 public FrmProPSCMSC2Popup(string[] args, string custAlphaNo, string specialDesc, string mscUseCode, string ordLnPk, bool isCraft, string[] dataPurviewIds, StdExceptionType? stdExType, string exceptionMsg, OpeBase ob) { InitializeComponent(); this.ob = ob; _custAlphaNo = custAlphaNo; _specialDesc = specialDesc; _isCraft = isCraft; _ordLnPk = ordLnPk; _mscUseCode = mscUseCode; if (stdExType == StdExceptionType.MSC) { _psc = args[0] == "" ? "1" : args[0]; _custer = args[1]; _useCode = args[2]; _msc = args[3]; } else if (stdExType == StdExceptionType.MSCN) { _psc = args[0] == "" ? "1" : args[0]; _custer = args[1]; _useCode = args[2]; _msc = args[3]; } else if (stdExType == StdExceptionType.AllMsc) { _psc = args[0] == "" ? "1" : args[0]; _txtMsc = args[1]; _dimater = args[2]; _height = args[3]; _specCode = args[4]; _ordLnPk = args[5]; } else if (stdExType == StdExceptionType.ProductDate) { _msc = args[0]; _mscPline = args[1]; _psc = GetPscByMsc(_msc); } else if (stdExType == StdExceptionType.BackLog) { _psc = args[0] == "" ? "1" : args[0]; _useCode = args[1]; _msc = args[2]; _dimater = args[3]; _height = args[4]; _model = args[5]; _designKey = args[6]; _ordLnPk = args[7]; _designObjKey = args[8]; } else if (stdExType == StdExceptionType.Jg) { _psc = args[0] == "" ? "1" : args[0]; _useCode = args[1]; _msc = args[2]; _dimater = args[3]; _height = args[4]; _model = args[5]; _designObjKey = args[6]; _ordLnPk = args[7]; _specCode = args[8]; } else if (stdExType == StdExceptionType.Fj) { _psc = args[0] == "" ? "1" : args[0]; _useCode = args[1]; _msc = args[2]; _designObjKey = args[3]; } else { _psc = args[0] == "" ? "1" : args[0]; _useCode = args[1]; _msc = args[2]; _dimater = args[3]; _height = args[4]; _model = args[5]; } _stdExType = stdExType; _exceptionMsg = exceptionMsg; ultraStatusBar1.Panels["ExMsg"].Text = exceptionMsg; frmMsc = new FrmProPSCMSC2(); frmMsc.TopLevel = false; frmMsc.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.panel1.Controls.Add(frmMsc); frmMsc.Dock = DockStyle.Fill; frmMsc.ob = ob; frmMsc.ckbDeleteFilter.Checked = false; //frmMsc.PopupLoad("", ob); SetPopupQueryCondition(); frmMsc.DataPurviewIds = dataPurviewIds; //base.OnLoad(EventArgs.Empty); frmMsc.Show(); //frmMsc.SplitContainer1.BringToFront(); frmMsc.ControlMsc.GridMsc.AfterRowActivate += new EventHandler(GridMsc_AfterRowActivate); frmMsc.UltraToolbarsManager1.ToolClick += new ToolClickEventHandler(frmMscUltraToolbarsManager1_ToolClick); frmMsc.Load += frmMsc_Load; Query(); //... } void frmMsc_Load(object sender, EventArgs e) { HidenTools(); } public FrmProPSCMSC2Popup(OpeBase ob, string productCode, string stdCode, string steelCode, string stdStyle) { InitializeComponent(); ultraStatusBar1.Visible = false; this.panel5.Visible = false; this.panel3.Height = 34; _productCode = productCode; _stdCode = stdCode; _steelCode = steelCode; _stdStyle = stdStyle; this.ob = ob; frmMsc = new FrmProPSCMSC2(); frmMsc.PopupLoad("", ob); //base.OnLoad(EventArgs.Empty); this.panel1.Controls.Add(frmMsc.SplitContainer1); frmMsc.SplitContainer1.BringToFront(); frmMsc.UltraPanel1.Enabled = false; frmMsc.ControlMsc.GridMsc.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(GridMsc_InitializeRow); frmMsc.ControlMsc.GridMsc.AfterRowInsert += new Infragistics.Win.UltraWinGrid.RowEventHandler(GridMsc_AfterRowInsert); SetDefaulCondition(); Query(); } private string GetPscByMsc(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getPscByMsc", new object[] { msc }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0][0].ToString(); } return ""; } void GridMsc_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { e.Row.Cells["MSC_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; e.Row.Cells["MSC_STYLE"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } void GridMsc_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e) { e.Row.Cells["MSC_STYLE"].Value = "A"; } private void SetDefaulCondition() { ArrayList list = new ArrayList(); list.Add(_productCode); list.Add(_stdCode); list.Add(_steelCode); list.Add(_stdStyle); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.BLCodeManage.queryPscCode", new object[] { list }, ob); frmMsc.TxtPscCode.Text = dt.Rows[0][0].ToString(); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "查询": Query(); break; case "新增": frmMsc.ToolBar_Click(null, "Add"); break; case "修改": frmMsc.ToolBar_Click(null, "UpdateMsc"); break; case "申请修改": frmMsc.ToolBar_Click(null, "UpdateEs"); break; case "提交审核": frmMsc.ToolBar_Click(null, "UpdateBs"); break; case "审核": frmMsc.ToolBar_Click(null, "UpdateCs"); break; case "作废": frmMsc.ToolBar_Click(null, "Delete"); break; case "恢复": frmMsc.ToolBar_Click(null, "Resume"); break; case "刷新": frmMsc.ToolBar_Click(null, "Refresh"); break; } } private void SetPopupQueryCondition() { frmMsc.TxtPscCode.Text = _psc; frmMsc.txtMsc.Text = _txtMsc; frmMsc.ControlMsc.Msc = _msc; frmMsc.DimaterCp = _dimater; frmMsc.HeightCp = _height; frmMsc.OrdLnPk = _ordLnPk; frmMsc.CustAlphaNo = _custAlphaNo; frmMsc.MscUseCode = _mscUseCode; frmMsc.SpecialDesc = _specialDesc; frmMsc.IsCraft = _isCraft; frmMsc.SpecCode = _specCode; } private void HidenTools() { if (_stdExType == StdExceptionType.MSC) { ultraToolbarsManager1.Toolbars[0].Tools["查询"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["申请修改"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["提交审核"].SharedProps.Visible = true; ultraToolbarsManager1.Toolbars[0].Tools["审核"].SharedProps.Visible = true; ultraToolbarsManager1.Toolbars[0].Tools["作废"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["恢复"].SharedProps.Visible = false; } else if (_stdExType == StdExceptionType.MSCN) { ultraToolbarsManager1.Toolbars[0].Tools["查询"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["申请修改"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["提交审核"].SharedProps.Visible = true; ultraToolbarsManager1.Toolbars[0].Tools["审核"].SharedProps.Visible = true; ultraToolbarsManager1.Toolbars[0].Tools["作废"].SharedProps.Visible = false; ultraToolbarsManager1.Toolbars[0].Tools["恢复"].SharedProps.Visible = false; frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = false; frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible = false; } else if (_stdExType == StdExceptionType.AllMsc) { //... ultraStatusBar1.Visible = false; this.panel5.Visible = false; this.panel3.Height = 34; frmMsc.CtrlMscJg1.UltraToolbarsManager1.Toolbars[0].Tools["查看技术要求"].SharedProps.Visible = true; } else if (_stdExType == StdExceptionType.BackLog || _stdExType == StdExceptionType.ProductDate) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = 85; } frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = false; if (frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible == true) { frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Selected = true; } if (_designObjKey == "1") { frmMsc.UltraToolbarsManager1.Toolbars[0].Tools["设定制程"].SharedProps.Visible = true; } } else if (_stdExType == StdExceptionType.Jg) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = panel3.Height - panel4.Height; } frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible = true; frmMsc.UltraTabControl3.Tabs["STAND_PAY"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = false; if (frmMsc.UltraTabControl3.Tabs["JG"].Visible == true) { frmMsc.UltraTabControl3.Tabs["JG"].Selected = true; } if (_designObjKey != "" && _designObjKey.Split(',')[1] == "1") //约定好designObjKey中,以逗号分割的第二个值如果等于1就需要设定接箍。 { frmMsc.UltraToolbarsManager1.Toolbars[0].Tools["设定接箍"].SharedProps.Visible = true; } frmMsc.CtrlMscJg1.UltraToolbarsManager1.Toolbars[0].Tools["查看技术要求"].SharedProps.Visible = true; } else if (_stdExType == StdExceptionType.Bl) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = panel3.Height - panel4.Height; } frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible = false; frmMsc.UltraTabControl3.Tabs["STAND_PAY"].Visible = false; frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = true; if (frmMsc.UltraTabControl3.Tabs["BL"].Visible == true) { frmMsc.UltraTabControl3.Tabs["BL"].Selected = true; } } else if (_stdExType == StdExceptionType.Fj) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = panel3.Height - panel4.Height; } frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible = false; frmMsc.UltraTabControl3.Tabs["STAND_PAY"].Visible = false; frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = true; frmMsc.UltraTabControl3.Tabs["IMG"].Selected = true; if (_designObjKey == "1") //等于1就是设定附件图片 { frmMsc.UltraToolbarsManager1.Toolbars[0].Tools["设定附件图片"].SharedProps.Visible = true; } } else if (_stdExType == StdExceptionType.Grade) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = panel3.Height - panel4.Height; } frmMsc.UltraTabControl3.Tabs["STAND_PAY"].Visible = false; frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = false; if (frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible == true) { frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Selected = true; } } else if (_stdExType == StdExceptionType.NkStd) { if (this.panel4.Visible == true) { this.panel4.Visible = false; this.panel3.Height = panel3.Height - panel4.Height; } frmMsc.UltraTabControl3.Tabs["STAND_PAY"].Visible = false; frmMsc.UltraTabControl3.Tabs["JG"].Visible = false; frmMsc.UltraTabControl3.Tabs["BL"].Visible = false; frmMsc.UltraTabControl3.Tabs["IMG"].Visible = false; if (frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Visible == true) { frmMsc.UltraTabControl3.Tabs["PROCEDURE"].Selected = true; } } if (frmMsc.UltraTabControl3.SelectedTab == null) { foreach (ToolBase tb in frmMsc.UltraToolbarsManager1.Toolbars[0].Tools) { tb.SharedProps.Visible = false; } } } private void frmMscUltraToolbarsManager1_ToolClick(object sender, ToolClickEventArgs e) { if (e.Tool.Key == "设定制程") { PopupSetBacklog popupSetBacklog = new PopupSetBacklog(_designKey, _ordLnPk, _msc, _isCraft, ob); popupSetBacklog.ShowDialog(); } else if (e.Tool.Key == "设定接箍") { PopupSetDesignJg popupSetDesignJg = new PopupSetDesignJg(_ordLnPk, _isCraft, ob); popupSetDesignJg.ShowDialog(); } else if (e.Tool.Key == "设定附件图片") { PopupSetFjImg setFjImg = new PopupSetFjImg(_ordLnPk, _msc, ob); setFjImg.ShowDialog(); } } void GridMsc_AfterRowActivate(object sender, EventArgs e) { HidenTools(); } private void Query() { frmMsc.ToolBar_Click(null, "Query"); } private void btnClose_Click(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; closeAction = "Ok"; if (StdSucessEvent != null) { StdEventArgs e2 = GetResultArgs(); if (e2 == null) { closeAction = ""; return; } StdSucessEvent(this, e2); } this.DialogResult = DialogResult.OK; } finally { this.Cursor = Cursors.Default; } } private StdEventArgs GetResultArgs() { StdEventArgs e = new StdEventArgs(); if (_stdExType == StdExceptionType.MSC || _stdExType == StdExceptionType.MSCN) { IQueryable queryable = frmMsc.ControlMsc.GridMsc.Rows.AsQueryable().Where("CHK = 'True'"); int selectCount = queryable.Count(); if (selectCount == 0 && _stdExType != null) { MessageUtil.ShowWarning("请选择一条冶金规范码!"); return null; } UltraGridRow[] rows = queryable.ToArray(); string msc = rows[0].GetValue("MSC"); e.Result = "1"; e.Msc = msc; return e; } else if (_stdExType == StdExceptionType.BackLog || _stdExType == StdExceptionType.ProductDate) { if (frmMsc.UltraGrid4.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条制程!"); return null; } e.MscPline = frmMsc.UltraGrid4.GetActiveRowValue("MSC_PLINE"); e.Result = "1"; return e; } else if (_stdExType == StdExceptionType.Jg) { if (frmMsc.CtrlMscJg1.UltraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条接箍!"); return null; } e.JgCode = frmMsc.CtrlMscJg1.UltraGrid1.GetActiveRowValue("CODE_JG"); string[] blWithJgs = new string[frmMsc.CtrlMscJg1.UltraGrid2.Rows.Count]; for (int i = 0; i < frmMsc.CtrlMscJg1.UltraGrid2.Rows.Count; i++) { blWithJgs[i] = frmMsc.CtrlMscJg1.UltraGrid2.Rows[i].GetValue("PSC_BL"); } e.BlWithJgs = blWithJgs; e.Result = "1"; return e; } else if (_stdExType == StdExceptionType.Bl) { if (frmMsc.CtrlMscBl1.UltraGrid1.Rows.Count == 0) { MessageUtil.ShowWarning("请维护备料码!"); return null; } IQueryable queryableRow = frmMsc.CtrlMscBl1.UltraGrid1.Rows.AsQueryable(); string[] groupNos = queryableRow.GroupBy(a => a.GetValue("GROUP_NUM")).Select(a => a.Key).ToArray(); PopupChoiceGroup popupChoiceGroup = new PopupChoiceGroup(groupNos); DialogResult dialogResult = popupChoiceGroup.ShowDialog(); if (dialogResult == DialogResult.OK) { string[] blCodes = queryableRow.Where("GROUP_NUM = '" + popupChoiceGroup.GroupNo + "'") .Select(a => a.GetValue("PSC_BL")).ToArray(); e.BlCodes = blCodes; e.Result = "1"; return e; } else { return null; } } else if (_stdExType == StdExceptionType.Fj) { e.Result = "1"; return e; } else if (_stdExType == StdExceptionType.Grade) { if (frmMsc.UltraGrid7.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条钢种!"); return null; } e.MscPline = frmMsc.UltraGrid4.GetActiveRowValue("MSC_PLINE"); e.Result = "1"; return e; } else if (_stdExType == StdExceptionType.NkStd) { if (frmMsc.UltraGrid4.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条制程!"); return null; } e.MscPline = frmMsc.UltraGrid4.GetActiveRowValue("MSC_PLINE"); e.Result = "1"; return e; } return null; } private void FrmProPSCMSC2Popup_Shown(object sender, EventArgs e) { if (_stdExType == StdExceptionType.MSC) { frmMsc.SplitContainer3.Panel2Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; frmMsc.SplitContainer1.Panel1Collapsed = true; } else if (_stdExType == StdExceptionType.MSCN) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } else if (_stdExType == StdExceptionType.AllMsc) { frmMsc.SplitContainer1.Panel1Collapsed = true; } else if (_stdExType == StdExceptionType.BackLog || _stdExType == StdExceptionType.ProductDate) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } else if (_stdExType == StdExceptionType.Jg || _stdExType == StdExceptionType.Fj) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } else if (_stdExType == StdExceptionType.Bl) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } else if (_stdExType == StdExceptionType.Grade) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } else if (_stdExType == StdExceptionType.NkStd) { frmMsc.SplitContainer1.Panel1Collapsed = true; frmMsc.SplitContainer2.Panel2Collapsed = true; } } private void FrmProPSCMSC2Popup_FormClosing(object sender, FormClosingEventArgs e) { if (StdSucessEvent != null && closeAction == "") { StdEventArgs e2 = new StdEventArgs(); e2.Result = "0"; StdSucessEvent(this, e2); } } private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } private void FrmProPSCMSC2Popup_Load(object sender, EventArgs e) { frmMsc.ControlMsc.Msc = _msc; } } public class StdEventArgs : EventArgs { //private StdExceptionType? _stdExType = StdExceptionType.MSC; //public StdExceptionType? StdExType //{ // get { return _stdExType; } // set { _stdExType = value; } //} private string _result = ""; /// /// 执行结果 /// public string Result { get { return _result; } set { _result = value; } } private string _msc = ""; /// /// 冶金规范码 /// public string Msc { get { return _msc; } set { _msc = value; } } private string _useCode = ""; /// /// 用途码 /// public string UseCode { get { return _useCode; } set { _useCode = value; } } private string _mscPline = ""; /// /// 制程号 /// public string MscPline { get { return _mscPline; } set { _mscPline = value; } } private string _jgCode = ""; /// /// 接箍码 /// public string JgCode { get { return _jgCode; } set { _jgCode = value; } } private string[] _blWithJgs = new string[0]; /// /// 接箍码对应的备料集合 /// public string[] BlWithJgs { get { return _blWithJgs; } set { _blWithJgs = value; } } private string _blGroupNo = ""; /// /// 备料分组组号 /// public string BlGroupNo { get { return _blGroupNo; } set { _blGroupNo = value; } } private string[] _blCodes = new string[0]; /// /// 备料集合 /// public string[] BlCodes { get { return _blCodes; } set { _blCodes = value; } } } }