using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { public partial class BLCodeManage : FrmBase { private FrmBLCodeManage frmBL; private BLCodeManageParms _blCodeParms; private List _choiceBlCodes = new List(); public UltraGrid Grid { get { return frmBL.UltraGrid1; } } public BLCodeManage(BLCodeManageParms blCodeParms) { InitializeComponent(); this.StartPosition = FormStartPosition.CenterScreen; _blCodeParms = blCodeParms; frmBL = new FrmBLCodeManage(); frmBL.IsPopup = true; frmBL.PopupLoad("", _blCodeParms.Ob); this.panel1.Controls.Add(frmBL.UltraPanel1); this.panel1.Controls.Add(frmBL.UltraExpandableGroupBox1); this.panel1.Controls.Add(frmBL.UltraGrid1); frmBL.UltraGrid1.BringToFront(); frmBL.UltraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = false; frmBL.UltraGrid1.DisplayLayout.Bands[0].Columns["CHK"].CellActivation = Activation.AllowEdit; frmBL.UltraGrid1.CellChange += new CellEventHandler(UltraGrid1_CellChange); ChangeSaveButton(); SetDefaulCondition(); } private void doQuery() { frmBL.ToolBar_Click(null, "Query"); //FilterRowBySteels(); RefreshMscBL(); } private void SetDefaulCondition() { //frmBL.UltraCheckEditor1.Checked = true; //frmBL.UltraCheckEditor1.Enabled = false; //frmBL.UltraCheckEditor3.Checked = false; //frmBL.UltraCheckEditor3.Enabled = false; //frmBL.UltraCheckEditor5.Checked = false; //frmBL.UltraCheckEditor5.Enabled = false; string strProductName = ""; //只有接箍弹的备料才固定外径壁厚。 if (_blCodeParms.SaveType == "2") { frmBL.KeyJg = _blCodeParms.KeyJg; //frmBL.UltraNumericEditor1.Enabled = false; //frmBL.UltraNumericEditor2.Enabled = false; frmBL.UltraNumericEditor1.Value = double.Parse(_blCodeParms.Dimater == "" ? "0" : _blCodeParms.Dimater); frmBL.UltraNumericEditor2.Value = double.Parse(_blCodeParms.Height == "" ? "0" : _blCodeParms.Height); //frmBL.UltraCheckEditor6.Checked = true; //frmBL.UltraCheckEditor6.Enabled = false; //frmBL.UltraCheckEditor7.Checked = true; //frmBL.UltraCheckEditor7.Enabled = false; //frmBL.UltraNumericEditor4.Value = _blCodeParms.Dimater; //frmBL.UltraNumericEditor4.Enabled = false; //frmBL.UltraNumericEditor3.Value = _blCodeParms.Height; //frmBL.UltraNumericEditor3.Enabled = false; //frmBL.StdCode = _blCodeParms.StdCode; DataTable dt3 = (DataTable)frmBL.UltraComboEditor5.DataSource; dt3.DefaultView.RowFilter = "PRODUCCODE = 'S000046'"; if (frmBL.UltraComboEditor5.Items.Count > 0) { frmBL.UltraComboEditor5.SelectedIndex = 0; } DataRow[] drs = ((DataTable)frmBL.UltraComboEditor5.DataSource).Select("PRODUCCODE = 'S000046'"); if (drs.Length > 0) { strProductName = drs[0]["PRODUCNAME"].ToString(); } } if (_blCodeParms.SaveType == "3") { DataTable dt3 = (DataTable)frmBL.UltraComboEditor5.DataSource; dt3.DefaultView.RowFilter = "PRODUCCODE = 'S000130'"; if (frmBL.UltraComboEditor5.Items.Count > 0) { frmBL.UltraComboEditor5.SelectedIndex = 0; } DataRow[] drs = ((DataTable)frmBL.UltraComboEditor5.DataSource).Select("PRODUCCODE = 'S000130'"); if (drs.Length > 0) { strProductName = drs[0]["PRODUCNAME"].ToString(); } } //frmBL.UltraTextEditor1.Text = strProductName; //frmBL.UltraTextEditor1.Enabled = false; foreach (string steel in _blCodeParms.Steels) { frmBL.Steels += ", '" + steel + "'"; } //DataTable dt = (DataTable)frmBL.UltraComboEditor6.DataSource; //dt.DefaultView.RowFilter = "STD_NAME = '" + _blCodeParms.StdName + "'"; //if (frmBL.UltraComboEditor6.Items.Count > 0) //{ // frmBL.UltraComboEditor6.SelectedIndex = 0; //} //frmBL.UltraComboEditor6.Enabled = false; //DataTable dt2 = (DataTable)frmBL.UltraComboEditor8.DataSource; //dt2.DefaultView.RowFilter = "STD_STYLE_DESC = '" + _blCodeParms.StdType + "'"; //if (frmBL.UltraComboEditor8.Items.Count > 0) //{ // frmBL.UltraComboEditor8.SelectedIndex = 0; //} //else //{ // DataRow dr = dt2.NewRow(); // dr["STD_STYLE_DESC"] = ""; // dr["STD_STYLE"] = ""; // dt2.Rows.InsertAt(dr, 0); // frmBL.UltraComboEditor8.DataSource = dt2; // frmBL.UltraComboEditor8.SelectedIndex = 0; //} if (_blCodeParms.SaveType == "2" || _blCodeParms.SaveType == "3") { DataTable dt4 = (DataTable)frmBL.UltraComboEditor7.DataSource; string strSteel = "''"; foreach (string str in _blCodeParms.Steels) { strSteel += ", '" + str + "'"; } dt4.DefaultView.RowFilter = "STEELCODE IN(" + strSteel + ")"; if (frmBL.UltraComboEditor7.Items.Count > 0) { frmBL.UltraComboEditor7.SelectedIndex = 0; } } //DataTable dt5 = (DataTable)frmBL.UltraComboEditor10.DataSource; //DataTable dtComBaseStdAlpha = ServerHelper.GetData("com.steering.pss.qcm.BLCodeManage.getComBaseStdAlpha", // new object[] { }, ob); //if (frmBL.UltraComboEditor10.Items.Count > 0) //{ // frmBL.UltraComboEditor10.SelectedIndex = 0; //} } private void ChangeSaveButton() { if (_blCodeParms.SaveType != "1") { ultraButton1.Text = "关联"; } } private void FilterRowBySteels() { if (_blCodeParms.Steels == null) return; for (int i = 0; i < frmBL.DataTable1.Rows.Count; i++) { DataRow dr = frmBL.DataTable1.Rows[i]; if (_blCodeParms.Steels.Contains(dr["STEELCODE"].ToString()) == false) { dr.Delete(); if (i < frmBL.DataTable1.Rows.Count - 1) { i--; } } } frmBL.DataTable1.AcceptChanges(); } private void RefreshMscBL() { if (_blCodeParms.SaveType == "1" || _blCodeParms.SaveType == "3") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.JGAndMSC.doQuery", new object[] { _blCodeParms.Msc, "B" }, _blCodeParms.Ob); foreach (DataRow dr in dt.Rows) { _choiceBlCodes.Add(dr["CODE_JG"].ToString()); UltraGridRow[] rows = GridHelper.GetRowsWithKey(frmBL.UltraGrid1, new string[] { "PSC_BL" }, new string[] { dr["CODE_JG"].ToString() }); if (rows.Length > 0) { rows[0].Cells["CHK"].Value = true; } } } else { //DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.BLCodeManage.queryJgRBl", // new object[] { _blCodeParms.JgCode, _blCodeParms.CustAlphaCode, _blCodeParms.AlphaCode}, _blCodeParms.Ob); //foreach (DataRow dr in dt.Rows) //{ // UltraGridRow[] rows = GridHelper.GetRowsWithKey(frmBL.UltraGrid1, // new string[] { "PSC_BL" }, new string[] { dr["PSC_BL"].ToString() }); // if (rows.Length > 0) // { // rows[0].Cells["CHK"].Value = true; // } //} } frmBL.UltraGrid1.UpdateData(); } private void BLCodeManage_Load(object sender, EventArgs e) { doQuery(); } private void ultraButton1_Click(object sender, EventArgs e) { UltraGridRow[] rows = GridHelper.GetRowsWithKey(frmBL.UltraGrid1, new string[] { "CHK" }, new string[] { "True" }); if (rows.Length == 0) { MessageUtil.ShowWarning("请选择一条数据后,再进行操作!"); return; } if (_blCodeParms.SaveType == "3") { if (!SaveBL()) { return; } } else if (_blCodeParms.SaveType == "2") { if (!SaveBLRelationship()) { return; } } this.DialogResult = DialogResult.OK; } private bool SaveBL() { this.ob = _blCodeParms.Ob; frmBL.UltraGrid1.UpdateData(); foreach (UltraGridRow row in frmBL.UltraGrid1.Rows) { if (row.GetValue("CHK") == "False") continue; bool result = frmBL.TechnologyReview2(row.GetValue("PSC_BL")); if (result == false) return false; } ArrayList parm = new ArrayList(); int flag = 0; foreach (string codeBl in _choiceBlCodes) { ArrayList list = new ArrayList(); flag += 1; list.Add(_blCodeParms.Msc); list.Add(_blCodeParms.Msc_desc); list.Add(codeBl); list.Add("B"); list.Add(this.UserInfo.GetUserName()); parm.Add(list); } ServerHelper.SetData("com.steering.pss.qcm.JGAndMSC.AndBL", new object[] { parm }, ob); if (flag != 0) { MessageUtil.ShowTips("操作成功!"); } return true; } private bool SaveBLRelationship() { ArrayList list = new ArrayList(); frmBL.UltraGrid1.UpdateData(); foreach (UltraGridRow row in frmBL.UltraGrid1.Rows) { if (row.GetValue("CHK") == "False") continue; bool result = frmBL.TechnologyReview2(row.GetValue("PSC_BL")); if (result == false) return false; } foreach (UltraGridRow row in frmBL.UltraGrid1.Rows) { if (row.Cells["CHK"].Value.ToString() == "False") continue; if (CheckJgRBlIsRepeat(row.GetValue("PSC_BL"))) continue; //DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.JGRBLCode.getComMscJgByKeyJg", // new object[] { _blCodeParms.KeyJg }, _blCodeParms.Ob); //decimal minD = decimal.Parse(row.GetValue("MIN_D")); //decimal minH = decimal.Parse(row.GetValue("MIN_H")); //decimal minDCp = decimal.Parse(dt.Rows[0]["MIN_D_JG"].ToString()); //decimal maxDCp = decimal.Parse(dt.Rows[0]["MAX_D_JG"].ToString()); //if (minD < minDCp) //{ // MessageUtil.ShowWarning(row.GetValue("PSC_BL") + "的外径不能小于接箍的适用成品最小外径!"); // return false; //} //if((minD - 2 * minH) > maxDCp) //{ // MessageUtil.ShowWarning(row.GetValue("PSC_BL") + "的外径减去两倍壁厚不能大于接箍的适用成品最大外径!"); // return false; //} ArrayList parm = new ArrayList(); parm.Add(_blCodeParms.JgCode); parm.Add(_blCodeParms.CustAlphaCode); parm.Add(_blCodeParms.OrderSpecialDesc); parm.Add(_blCodeParms.AlphaCode); parm.Add(row.Cells["PSC_BL"].Value.ToString()); parm.Add(this.UserInfo.GetUserName()); parm.Add(row.Cells["MEMO"].Value.ToString()); list.Add(parm); } ServerHelper.SetData("com.steering.pss.qcm.JGRBLCode.doAdd", new object[] { list }, _blCodeParms.Ob); MessageUtil.ShowTips("关联成功!"); return true; } /// /// 检查接箍码和备料码的关系是否重复。 /// /// /// private bool CheckJgRBlIsRepeat(string pscBl) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.JGRBLCode.checkJgRBlIsRepeat", new object[] { _blCodeParms.JgCode, pscBl, _blCodeParms.CustAlphaCode, _blCodeParms.AlphaCode}, _blCodeParms.Ob); if (dt.Rows.Count > 0) { return true; } else { return false; } } private void ultraButton2_Click(object sender, EventArgs e) { this.Close(); } private void Add() { frmBL.ToolBar_Click(null, "Add"); RefreshMscBL(); } private void Modify() { frmBL.ToolBar_Click(null, "Update"); RefreshMscBL(); } private bool CheckData() { DataTable dt2 = (DataTable)frmBL.UltraComboEditor8.DataSource; dt2.DefaultView.RowFilter = "STD_STYLE_DESC = '" + _blCodeParms.StdType + "'"; if (frmBL.UltraComboEditor8.Items.Count == 0) { MessageUtil.ShowWarning("标准类别基础数据中不包含[" + _blCodeParms.StdType + "]的定义,请确认后再进行操作!"); return false; } return true; } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "查询": doQuery(); break; case "新增": Add(); break; case "修改": Modify(); break; case "作废": frmBL.ToolBar_Click(null, "Delete"); break; case "恢复": frmBL.ToolBar_Click(null, "Resume"); break; case "刷新": frmBL.ToolBar_Click(null, "Refresh"); break; case "冶金规范": frmBL.ToolBar_Click(null, "ShowMsc"); break; } } private void UltraGrid1_CellChange(object sender, CellEventArgs e) { frmBL.UltraGrid1.UpdateData(); //维护备料的冶金规范码暂时不需要(放开限制) //if (e.Cell.Row.Cells["CHK"].Value.ToString() == "True" && _blCodeParms.SaveType != "1") //{ // string productCode = e.Cell.Row.Cells["PRODUCCODE"].Value.ToString(); // string stdCode = e.Cell.Row.Cells["STD_CODE"].Value.ToString(); // string steelCode = e.Cell.Row.Cells["STEELCODE"].Value.ToString(); // string stdStyle = e.Cell.Row.Cells["STD_STYLE"].Value.ToString() == "" ? "NULL" : e.Cell.Row.Cells["STD_STYLE"].Value.ToString(); // this.Cursor = Cursors.WaitCursor; // FrmProPSCMSC2Popup frmMscPopup = new FrmProPSCMSC2Popup(_blCodeParms.Ob, productCode, stdCode, steelCode, stdStyle); // frmMscPopup.Size = new Size(SystemInformation.WorkingArea.Width, SystemInformation.WorkingArea.Height); // frmMscPopup.StartPosition = FormStartPosition.CenterScreen; // frmMscPopup.MinimizeBox = false; // this.Cursor = Cursors.Default; // frmMscPopup.ShowDialog(); // UltraGridRow[] rows = GridHelper.GetRowsWithKey(frmMscPopup.MscGrid, // new string[] { "MSC_SEQ", "VALIDFLAG" }, new string[] { "", "C" }); // if (rows.Length == 0) // { // e.Cell.Row.Cells["CHK"].Value = false; // e.Cell.Row.Cells["CHK"].Activate(); // } //} //frmBL.UltraGrid1.UpdateData(); if (e.Cell.Column.Key == "CHK") { if (e.Cell.Value.ToString() == "True") { if (_choiceBlCodes.Contains(e.Cell.Row.GetValue("PSC_BL")) == false) { _choiceBlCodes.Add(e.Cell.Row.GetValue("PSC_BL")); } } else { _choiceBlCodes.Remove(e.Cell.Row.GetValue("PSC_BL")); } } } } public class BLCodeManageParms { private OpeBase _ob; public OpeBase Ob { get { return _ob; } set { _ob = value; } } private string _msc = ""; public string Msc { get { return _msc; } set { _msc = value; } } private string _msc_desc = ""; public string Msc_desc { get { return _msc_desc; } set { _msc_desc = value; } } private string _stdName = ""; public string StdName { get { return _stdName; } set { _stdName = value; } } private string _stdCode = ""; public string StdCode { get { return _stdCode; } set { _stdCode = value; } } private string _stdType = ""; public string StdType { get { return _stdType; } set { _stdType = value; } } private string[] _steels = null; public string[] Steels { get { return _steels; } set { _steels = value; } } private string _jgCode = ""; public string JgCode { get { return _jgCode; } set { _jgCode = value; } } private string _saveType = "1"; public string SaveType { get { return _saveType; } set { _saveType = value; } } private string _alpha = ""; public string Alpha { get { return _alpha; } set { _alpha = value; } } private string _dimater = ""; public string Dimater { get { return _dimater; } set { _dimater = value; } } private string _height = ""; public string Height { get { return _height; } set { _height = value; } } private string _custAlphaCode = ""; public string CustAlphaCode { get { return _custAlphaCode; } set { _custAlphaCode = value; } } private string _orderSpecialDesc = ""; public string OrderSpecialDesc { get { return _orderSpecialDesc; } set { _orderSpecialDesc = value; } } private string _alphaCode = ""; public string AlphaCode { get { return _alphaCode; } set { _alphaCode = value; } } private string keyJg = ""; public string KeyJg { get { return keyJg; } set { keyJg = value; } } private string specCode = ""; public string SpecCode { get { return specCode; } set { specCode = value; } } private string ordLnPk = ""; public string OrdLnPk { get { return ordLnPk; } set { ordLnPk = value; } } } }