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.Qcm.Control; using Core.StlMes.Client.Qcm.model; using Core.StlMes.Client.Qcm.objectData; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinTabControl; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace Core.StlMes.Client.Qcm { /// /// 标准名称 内控 /// public partial class FrmStandardN : FrmBase { /// /// 提示 /// private string errMessage = ""; /// /// 标准基础(定位) /// private string _stdName = ""; /// /// 客户(定位) /// private string _custName = ""; /// /// 是否勾选 /// private int isSelectData = 0; /// /// 下拉框数组 /// UltraComboEditor[] ucbs = new UltraComboEditor[5]; UltraComboEditor uceUnitCode = new UltraComboEditor();//管理科室 UltraComboEditor uceDeptCode = new UltraComboEditor();//管理部门 /// /// 位置 /// private int disWidth = 0; private int disLength = 0; private CtrlMscChem _ctrlMscChem; public CtrlMscChem CtrlMscChem { get { return _ctrlMscChem; } set { _ctrlMscChem = value; } } private CtrlMscMaterial _ctrlMscMaterial; public CtrlMscMaterial CtrlMscMaterial { get { return _ctrlMscMaterial; } set { _ctrlMscMaterial = value; } } private CtrlMSCDetection _ctrlMscDetection; public CtrlMSCDetection CtrlMscDetection { get { return _ctrlMscDetection; } set { _ctrlMscDetection = value; } } private CtrlMscTolerances _ctrlMscTolerances; public CtrlMscTolerances CtrlMscTolerances { get { return _ctrlMscTolerances; } set { _ctrlMscTolerances = value; } } private CtrlMscProductWater _ctrlMscProductWater; public CtrlMscProductWater CtrlMscProductWater { get { return _ctrlMscProductWater; } set { _ctrlMscProductWater = value; } } private CtrlMSCStdProcess _ctrlMscStdProcess; public CtrlMSCStdProcess CtrlMscStdProcess { get { return _ctrlMscStdProcess; } set { _ctrlMscStdProcess = value; } } private string _processCode = ""; public string ProcessCode { get { return _processCode; } set { _processCode = value; } } private string _productCode = ""; public string ProductCode { get { return _productCode; } set { _productCode = value; } } private string _producName = ""; public string ProducName { get { return _producName; } set { _producName = value; } } private ArrayList _steelCodes = new ArrayList(); //钢种集合 public ArrayList SteelCodes { get { return _steelCodes; } set { _steelCodes = value; } } private ArrayList _steelNames = new ArrayList(); public ArrayList SteelNames { get { return _steelNames; } set { _steelNames = value; } } private string _msc = ""; public string Msc { get { return _msc; } set { _msc = value; } } private string _mscPline = ""; public string MscPline { get { return _mscPline; } set { _mscPline = value; } } private string _steelcodeNk = ""; public string SteelcodeNk { get { return _steelcodeNk; } set { _steelcodeNk = value; } } private string _steelnameNk = ""; public string SteelnameNk { get { return _steelnameNk; } set { _steelnameNk = value; } } private string _ordLnPk = ""; public string OrdLnPk { get { return _ordLnPk; } set { _ordLnPk = value; } } private string modelCode = ""; public string ModelCode { get { return modelCode; } set { modelCode = value; } } private string psc = ""; public string Psc { get { return psc; } set { psc = value; } } /// /// 动态生成科室 /// private Dictionary departments = null; public event EventHandler AfterRowActivate; public FrmStandardN() { //F1 F2功能 IsLoadUserView = true; InitializeComponent(); //ExceptionHelper.RegistException(); } private DataRow GetProcessByStdCode(string stdCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreInnerMSCRGRD2.getProcessByStdCode", new object[] { stdCode }, ob); return dt.Rows[0]; } void GridProcess_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscStdProcess.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CDOE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE_NK"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME_NK"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); } } void GridSpec_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscTolerances.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CODE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["SPECIAL_PATH"].Value = false; ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); } } void GridWater_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscProductWater.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CDOE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE_NK"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME_NK"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); } } void GridDete_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscDetection.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CODE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE_NK"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME_NK"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); } } void GridChem_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscChem.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CODE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE_NK"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME_NK"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); string gradeCodes = ""; string gradeNames = ""; for (int i = 0; i < _steelCodes.Count; i++) { if (gradeCodes == "") { gradeCodes = _steelCodes[i].ToString(); gradeNames = _steelNames[i].ToString(); } else { gradeCodes += ";" + _steelCodes[i].ToString(); gradeNames += ";" + _steelNames[i].ToString(); } } ugr.Cells["GRADECODE"].Value = gradeCodes; ugr.Cells["GRADENAME"].Value = gradeNames; UltraGrid grid = (UltraGrid)sender; grid.UpdateData(); //UltraComboEditor cmb = (UltraComboEditor)ugr.Cells["GRADECODE"].Column.EditorComponent; //if (cmb.Items.Count == 2) //{ // ugr.Cells["GRADECODE"].Value = cmb.Items[1].DataValue; //} } } void Grid_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugr = _ctrlMscMaterial.Grid.ActiveRow; UltraGridRow activeUgr = ultraGrid1.ActiveRow; if (ugr != null && activeUgr != null && !ugr.HasParent()) { DataRow drBaseStd = GetProcessByStdCode(activeUgr.GetValue("STD_CODE")); ugr.Cells["PROCESS_CDOE"].Value = drBaseStd["PROCESS_CODE"].ToString(); ugr.Cells["PROCESS_DESC"].Value = drBaseStd["PROCESS_DESC"].ToString(); ugr.Cells["PRODUCCODE_NK"].Value = _productCode; ugr.Cells["PRODUCNAME_NK"].Value = _producName; ugr.Cells["STEELCODE_NK"].Value = _steelcodeNk; ugr.Cells["STEELNAME_NK"].Value = _steelnameNk; ugr.Cells["STD_CODE_NK"].Value = ultraGrid1.GetActiveRowValue("STD_CODE_OLD"); ugr.Cells["STD_NAME_NK"].Value = ultraGrid1.GetActiveRowValue("STD_NAME_OLD"); string gradeCodes = ""; string gradeNames = ""; for (int i = 0; i < _steelCodes.Count; i++) { if (gradeCodes == "") { gradeCodes = _steelCodes[i].ToString(); gradeNames = _steelNames[i].ToString(); } else { gradeCodes += ";" + _steelCodes[i].ToString(); gradeNames += ";" + _steelNames[i].ToString(); } } ugr.Cells["GRADECODE"].Value = gradeCodes; ugr.Cells["GRADENAME"].Value = gradeNames; } } public void PopupLoad(string customInfo, OpeBase ob) { WaitingForm2 wf = new WaitingForm2("正在加载,请稍候...."); this.CustomInfo = customInfo; this.ob = ob; //FrmStandardN_Load(null, EventArgs.Empty); this.OnLoad(null); wf.Close(); } public void FrmStandardN_Load(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; _ctrlMscChem = new CtrlMscChem(ultraTabPageControl1); _ctrlMscMaterial = new CtrlMscMaterial(ultraTabPageControl2); _ctrlMscDetection = new CtrlMSCDetection(ultraTabPageControl4); _ctrlMscTolerances = new CtrlMscTolerances(ultraTabPageControl3); _ctrlMscProductWater = new CtrlMscProductWater(ultraTabPageControl5); _ctrlMscStdProcess = new CtrlMSCStdProcess(ultraTabPageControl6); _ctrlMscChem.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscMaterial.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscDetection.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscTolerances.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscProductWater.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscStdProcess.BeforeRowInsert += new BeforeRowInsertEventHandler(StdNk_BeforeRowInsert); _ctrlMscMaterial.Grid.AfterRowInsert += new RowEventHandler(Grid_AfterRowInsert); _ctrlMscChem.Grid.AfterRowInsert += new RowEventHandler(GridChem_AfterRowInsert); _ctrlMscDetection.Grid.AfterRowInsert += new RowEventHandler(GridDete_AfterRowInsert); _ctrlMscProductWater.Grid.AfterRowInsert += new RowEventHandler(GridWater_AfterRowInsert); _ctrlMscTolerances.Grid.AfterRowInsert += new RowEventHandler(GridSpec_AfterRowInsert); _ctrlMscStdProcess.Grid.AfterRowInsert += new RowEventHandler(GridProcess_AfterRowInsert); InitComBoEditor(); ChangeFrom(); //ProcessFilter(); ultraGrid2.Enabled = false; UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) { this.ultraTabControl1.Enabled = false; } else { this.ultraTabControl1.Enabled = true; } string mark = "2"; if (CustomInfo == "2") { mark = "2"; } if (CustomInfo == "3") { mark = "3"; this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Header.Caption = "Alpha代码"; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_VERSION"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["CHC"].Hidden = true; } if (CustomInfo == "4") { mark = "4"; } YdmBaseClass.InitComboEditorWithParm(uceUnitCode, "com.steering.comm.data.ComBaseInfo.getSection", "DEPARTNAME", "DEPARTID", this.ob, false, new Object[] { ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), ob) }); YdmBaseClass.BindColumn(uceUnitCode, "UNIT_CODE", this.Controls, this.ultraGrid1, 0); YdmBaseClass.InitComboEditorNew(uceDeptCode, "com.steering.comm.data.ComBaseInfo.getDepartment", "DEPARTID", "DEPARTNAME", this.ob, false); YdmBaseClass.BindColumn(uceDeptCode, "DEPARTMENT_CODE", this.Controls, this.ultraGrid1, 0); } finally { this.Cursor = Cursors.Default; } } private void StdNk_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e) { if (ultraGrid1.ActiveRow == null) { e.Cancel = true; } } //private void ProcessFilter() //{ // if (_processCode != "") // { // UltraComboEditor comboEditor = (UltraComboEditor)ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].EditorComponent; // DataTable dt = (DataTable)comboEditor.DataSource; // dt.DefaultView.RowFilter = "PROCESS_CODE = '" + _processCode + "'"; // } //} /// /// 根据页面传入值不同,改变页面 /// private void ChangeFrom() { if (this.CustomInfo == "2") { splitContainer2.Panel2Collapsed = true; } if (this.CustomInfo == "3") { ultraExpandableGroupBox1.Text = "标准Alpha"; ultraTabPageControl1.Tab.Text = "成分Alpha"; ultraTabPageControl2.Tab.Text = "理化Alpha"; ultraTabPageControl3.Tab.Text = "公差Alpha"; ultraTabPageControl4.Tab.Text = "探伤Alpha"; ultraTabPageControl5.Tab.Text = "水压Alpha"; ultraTabPageControl6.Tab.Text = "加工Alpha"; ultraGrid1.DisplayLayout.Bands[0].Columns["DEPARTMENT_CODE"].CellAppearance.BackColor = Color.Empty; ultraGrid1.DisplayLayout.Bands[0].Columns["UNIT_CODE"].CellAppearance.BackColor = Color.Empty; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].Hidden = true; } if (this.CustomInfo == "4") { splitContainer2.Panel2Collapsed = true; ultraExpandableGroupBox1.Text = "其它标准"; ultraTabPageControl1.Tab.Text = "其它标准成分"; ultraTabPageControl2.Tab.Text = "其它标准理化"; ultraTabPageControl3.Tab.Text = "其它标准公差"; ultraTabPageControl4.Tab.Text = "其它标准探伤"; ultraTabPageControl5.Tab.Text = "其它标准水压"; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].Hidden = true; } } /// /// 初始化下拉框 /// private void InitComBoEditor() { for (int i = 0; i < ucbs.Length; i++) { ucbs[i] = new UltraComboEditor(); Controls.Add(ucbs[i]); ucbs[i].Visible = false; } UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; UltraGridBand ugbC = ultraGrid2.DisplayLayout.Bands[0]; //初始化标准类型 QcmBaseQuery.NitializeStandardType(ucbs[0], false, this.ob); if (this.CustomInfo == "2") { ((DataTable)ucbs[0].DataSource).DefaultView.RowFilter = "CODE IN ( 'N')"; } if (this.CustomInfo == "3") { ((DataTable)ucbs[0].DataSource).DefaultView.RowFilter = "CODE IN ( 'K')"; } if (this.CustomInfo == "4") { ((DataTable)ucbs[0].DataSource).DefaultView.RowFilter = "CODE IN ( 'S','P')"; } QcmBaseQuery.BindColumn(ucbs[0], "STDSTYLE", ugb); //初始化标准协会 QcmBaseQuery.NitializeSociety(ucbs[1], true, this.ob); QcmBaseQuery.BindColumn(ucbs[1], "STD_STYLE", ugb); //初始化管理部门 QcmBaseQuery.NitializeDepartment(ucbs[2], false, this.ob); QcmBaseQuery.BindColumn(ucbs[2], "DEPARTMENT_CODE", ugb); ugb.Columns["DEPARTMENT_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; //初始化最终客户 QcmBaseQuery.NitializeCustomer(ucbs[3], true, this.ob); QcmBaseQuery.BindColumn(ucbs[3], "CUST_CODE", ugbC); //工序 //QcmBaseQuery.NitializeProcess(ucbs[4], true, this.ob); //QcmBaseQuery.BindColumn(ucbs[4], "PROCESS_CODE", ugb); CreateDepartments(); } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "doQuery": DoQuery(); break; case "doSave": DoSave(); break; case "doDelete": this.DoDeleteOrResume(true); break; case "doResume": this.DoDeleteOrResume(false); break; case "Refresh": InitComBoEditor(); break; case "Close": this.Close(); break; } } /// /// 查询 /// private void DoQuery() { try { this.Cursor = Cursors.WaitCursor; string valid = "1"; if (ChcValid.Checked) { valid = "0"; } string stdName = ""; if (ChcStd.Checked) { stdName = TextStd.Text.Trim(); } if (CustomInfo == "2") { ArrayList list = new ArrayList(); list.Add(stdName); list.Add(valid); list.Add(CustomInfo); list.Add(CustomInfo); list.Add(_processCode); list.Add(_processCode); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComStandard", new Object[] { list }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); } if (CustomInfo == "3") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.getComAlphaStd", new Object[] { valid, stdName }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; } //定位 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { _stdName }); if (rows.Length > 0) rows[0].Activate(); UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"], bc.Columns["STD_CODE"], bc.Columns["STD_NAME"] }; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); isSelectData = 0; } finally { this.Cursor = Cursors.Default; } } /// /// 保存 /// private void DoSave() { ultraGrid1.UpdateData(); if (isSelectData == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //标准基础 UltraGridRow[] rowStd = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" }); ArrayList stdData = new ArrayList(); if (rowStd.Length > 0) { foreach (UltraGridRow row in rowStd) { //if ( UserInfo.GetUserID() != "admin" && UserInfo.GetDeptid() != row.Cells["UNIT_CODE"].ToString()) //{ // MessageUtil.ShowWarning("非该" + row.Cells["UNIT_CODE"].ToString() + "科室,无法修改!"); // return; //} /*if (UserInfo.GetDeptid() != "002001001004" && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有标准科的成员才能修改!"); return; }*/ BaseStdObject com = GetObjectData.GetStdData(row); if (!CheckStdData(com, row)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); stdData.Add(JSONFormat.Format(com)); //定位 _stdName = com.StdName; } } //客户 ArrayList custerData = new ArrayList(); UltraGridRow[] rowCust = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CHC" }, new string[] { "True" }); if (rowCust.Length > 0) { foreach (UltraGridRow row in rowCust) { StdCusterObject com = GetObjectData.GetCusterData(row); if (!CheckCustData(com)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } com.CreateName = UserInfo.GetUserName(); com.UpdateName = UserInfo.GetUserName(); custerData.Add(JSONFormat.Format(com)); //定位 _custName = com.CustName; } } if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (stdData.Count > 0 || custerData.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.ComStandard.saveComStandard", new Object[] { stdData, custerData }, this.ob); if (count > 0) { MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); RefreshAlpha(); } } } /// /// 作废与恢复 /// /// private void DoDeleteOrResume(Boolean flag) { if (isSelectData == 0) { MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //标准基础 UltraGridRow[] rowStd = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" }); ArrayList stdData = new ArrayList(); if (rowStd.Length > 0) { foreach (UltraGridRow row in rowStd) { /*if (UserInfo.GetDeptid() != "002001001004" && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有标准科的成员才能" + (flag ? "作废" : "恢复") + "!"); return; }*/ BaseStdObject com = GetObjectData.GetStdData(row); if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.checkStdName", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0][0]) > 0) { MessageBox.Show("标准名称:" + com.StdName + " 已经被引用,不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } stdData.Add(JSONFormat.Format(com)); _stdName = com.StdName; } } //客户 ArrayList custData = new ArrayList(); UltraGridRow[] rowCust = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CHC" }, new string[] { "True" }); if (rowCust.Length > 0) { foreach (UltraGridRow row in rowCust) { StdCusterObject com = GetObjectData.GetCusterData(row); if (!CheckDeleteOrResume(com.Validflag, flag)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!flag) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkFromResume", new Object[] { com.StdCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { MessageBox.Show("标准名称" + com.StdName + "已经作废,不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } custData.Add(JSONFormat.Format(com)); _custName = com.CustName; } } if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (stdData.Count > 0 || custData.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.ComStandard.deleteOrResume", new Object[] { stdData, custData, flag }, this.ob); if (count > 0) { MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); DoQuery(); } } } public static string CheckPlnCic(string cic, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getPlnCicStatus", new object[] { cic }, ob); if (dt.Rows.Count > 0) { string status = dt.Rows[0]["EXE_STATUS"].ToString(); if (status == "0") { return "计划中的轧管排产行正使用该成分索引码,不能操作!"; } else if (status == "1") { return "生产中的轧管排产行正使用该成分索引码,不能操作!"; } } return ""; } /// /// 檢查最终客户数据 /// /// /// private bool CheckCustData(StdCusterObject com) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.CustCode.Equals("")) { errMessage = "请选择客户"; return false; } UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CUST_NAME" }, new string[] { com.CustName }); { if (rows.Length > 1) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } if (com.Validflag.Equals("")) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.checkCuster", new Object[] { com.StdCode, com.CustCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } else { if (!com.CustCode.Equals(com.OldCustCode)) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.checkCuster", new Object[] { com.StdCode, com.CustCode }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "最终客户" + com.CustName + "重复,请重新选择"; return false; } } } return true; } /// /// 检查标准数据 /// /// /// private bool CheckStdData(BaseStdObject com, UltraGridRow row) { if (com.Validflag.Equals("无效")) { errMessage = "无效记录不能操作"; return false; } if (com.StdName.Equals("")) { errMessage = "请输入标准名称"; row.Cells["STD_CODE"].Activate(); return false; } //验证标准名称在ultraGrid1是否重复 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { com.StdName }); if (rows.Length > 1) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; row.Cells["STD_CODE"].Activate(); return false; } if (com.Validflag.Equals("")) { //验证标准名称在数据表是否重复 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkStd", new Object[] { com.StdName, com.StdStyle }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; row.Cells["STD_CODE"].Activate(); return false; } } else { //验证标准名称是否重复 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.checkStdUpdate", new Object[] { com.StdName, com.StdCode, com.StdStyle }, this.ob); if (dt != null && dt.Rows.Count > 0) { errMessage = "标准名称:" + com.StdName + " 重复,请重新输入"; row.Cells["STD_CODE"].Activate(); return false; } } if (com.StdStyle == "") { errMessage = "请选择标准类型"; row.Cells["STDSTYLE"].Activate(); return false; } if (CustomInfo == "2" && com.ProcessCode.Equals("")) { errMessage = "请选择适用工序"; row.Cells["PROCESS_CODE"].Activate(); return false; } if (CustomInfo != "3" && com.DepartmentCode.Equals("") && UserInfo.GetUserID() != "admin") { errMessage = "请选择管理部门"; row.Cells["DEPARTMENT_CODE"].Activate(); return false; } if (CustomInfo != "3" && com.UnitCode.Equals("")) { errMessage = "请选择管理科室"; row.Cells["UNIT_CODE"].Activate(); return false; } return true; } private DataRow GetComBaseStdRowByPk(string stdCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk", new object[] { stdCode }, ob); return dt.Rows[0]; } /// /// 检验作废或者恢复 /// /// 有效标识 /// /// private bool CheckDeleteOrResume(string valid, bool flag) { if (valid.Equals("")) { errMessage = "记录未保存,不能" + (flag ? "作废" : "恢复"); return false; } if (flag) { if (valid.Equals("无效")) { errMessage = "无效记录不能作废"; return false; } } else { if (valid.Equals("有效")) { errMessage = "有效记录不能恢复"; return false; } } return true; } /// /// 动态绑定数据源 管理科室 /// private void BandDepartments(InitializeRowEventArgs e) { string pid = e.Row.Cells["DEPARTMENT_CODE"].Value.ToString(); if (departments.ContainsKey(pid)) { e.Row.Cells["UNIT_CODE"].EditorComponent = departments[pid]; } else { e.Row.Cells["UNIT_CODE"].EditorComponent = departments["noValue"]; } e.Row.Cells["UNIT_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; } /// /// 根据部门生成科室 /// private void CreateDepartments() { int count = ucbs[2].Items.Count; departments = new Dictionary(count + 1); departments.Add("noValue", new UltraComboEditor()); DataTable dt = ServerHelper.GetData("com.steering.comm.data.ComBaseInfo.getSection", new object[] { }, this.ob); for (int i = 0; i < count; i++) { string pid = ucbs[2].Items[i].DataValue.ToString(); dt.DefaultView.RowFilter = "PID='" + pid + "'"; UltraComboEditor uce = new UltraComboEditor(); uce.DataSource = dt.DefaultView.ToTable(); uce.DisplayMember = "DEPARTNAME"; uce.ValueMember = "DEPARTID"; uce.Visible = false; departments.Add(pid, uce); Controls.Add(uce); } } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { //增加一行,自动获取最大的标准代码,然后加1 UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; int stdCode = 0; DataRow[] rows = dataTable1.Select("", "STD_CODE DESC"); if (rows.Length > 0) stdCode = Convert.ToInt32(rows[0]["STD_CODE"].ToString().Substring(3, 7)); ugr.Cells["STD_CODE"].Value = "STD" + string.Format("{0:0000000}", (stdCode + 1)); SetUnEnit(ugr); if (CustomInfo == "2") { e.Row.Cells["STDSTYLE"].Value = "N"; } e.Row.Cells["DEPARTMENT_CODE"].Value = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), ob); e.Row.Cells["DEPARTMENT_DESC"].Value = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDepartment(), ob); e.Row.Cells["UNIT_CODE"].Value = UserInfo.GetDeptid(); e.Row.Cells["UNIT_DESC"].Value = UserInfo.GetDepartment(); e.Row.Cells["ACCEPT_BID"].Value = "False"; e.Row.Cells["PURCHASE_STD"].Value = "False"; } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.ActiveRow; if (e.Cell.Column.Key.Equals("STD_NAME")) //标准名称 { for (int i = 0; i < ultraGrid2.Rows.Count; i++) { ultraGrid2.Rows[i].Cells["STD_NAME"].Value = ugr.Cells["STD_NAME"].Value.ToString().Trim(); ultraGrid2.Rows[i].Cells["STD_CODE"].Value = ugr.Cells["STD_CODE"].Value.ToString().Trim(); } } if (e.Cell.Column.Key.Equals("STD_STYLE")) //标准协会 { ugr.Cells["STD_STYLE_NAME"].Value = ugr.Cells["STD_STYLE"].Text; } if (e.Cell.Column.Key.Equals("DEPARTMENT_CODE")) //部门管理 { ugr.Cells["DEPARTMENT_DESC"].Value = ugr.Cells["DEPARTMENT_CODE"].Text; ugr.Cells["UNIT_CODE"].Value = ""; ugr.Cells["UNIT_DESC"].Value = ""; YdmBaseClass.InitComboEditorWithParm(uceUnitCode, "com.steering.comm.data.ComBaseInfo.getSection", "DEPARTNAME", "DEPARTID", this.ob, false, new Object[] { ugr.Cells["DEPARTMENT_CODE"].Value.ToString2() }); YdmBaseClass.BindColumn(uceUnitCode, "UNIT_CODE", this.Controls, this.ultraGrid1, 0); } if (e.Cell.Column.Key.Equals("UNIT_CODE")) //科室管理 { ugr.Cells["UNIT_DESC"].Value = ugr.Cells["UNIT_CODE"].Text; } if (e.Cell.Column.Key.Equals("CHC"))//选择 { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; isSelectData += 1; } else isSelectData -= 1; CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC") && !cells[i].Column.Key.Equals("STD_NAME")) { e.Cell.Row.Cells[i].Activation = activation; } } YdmBaseClass.InitComboEditorWithParm(uceUnitCode, "com.steering.comm.data.ComBaseInfo.getSection", "DEPARTNAME", "DEPARTID", this.ob, false, new Object[] { ugr.Cells["DEPARTMENT_CODE"].Value.ToString2() }); YdmBaseClass.BindColumn(uceUnitCode, "UNIT_CODE", this.Controls, this.ultraGrid1, 0); YdmBaseClass.InitComboEditorNew(uceDeptCode, "com.steering.comm.data.ComBaseInfo.getDepartment", "DEPARTID", "DEPARTNAME", this.ob, false); YdmBaseClass.BindColumn(uceDeptCode, "DEPARTMENT_CODE", this.Controls, this.ultraGrid1, 0); if (!e.Cell.Row.Cells["VALIDFLAG"].Value.ToString().Equals("")) { if (ultraGrid2.Rows.Count > 0 || ultraGrid2.Rows.Count > 0) e.Cell.Row.Cells["STD_NAME"].Activation = Activation.ActivateOnly; else e.Cell.Row.Cells["STD_NAME"].Activation = activation; } else e.Cell.Row.Cells["STD_NAME"].Activation = activation; } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { BandDepartments(e); if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } private void FrmStandardN_Shown(object sender, EventArgs e) { disWidth = splitContainer1.SplitterDistance; ; disLength = splitContainer2.SplitterDistance; } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { if (this.ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择一条记录后,再进行操作!"); return; } if (e.Tool.Key == "ButtonTool1") //保存 { SaveAlpha(); } if (e.Tool.Key == "ButtonTool2") //作废 { DeleteAlpha(); } if (e.Tool.Key == "ButtonTool3") //恢复 { ResumeAlpha(); } if (e.Tool.Key == "ButtonTool4") //刷新 { RefreshAlpha(); } if (e.Tool.Key == "ButtonTool5") //分组 { GroupAlpha(); } if (e.Tool.Key == "ButtonTool6") //取消分组 { CancelGroupAlpha(); } if (e.Tool.Key == "复制") { Copy(); } if (e.Tool.Key == "粘贴") { Paste(); } if (e.Tool.Key == "分析成分内控") { AnalysisNkChem(); } if (e.Tool.Key == "导出Excel") { ExportExcel(); } if (e.Tool.Key == "保存模板") //保存模板 { SaveTemplate(); } } private void SaveTemplate() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "2": _ctrlMscMaterial.SaveTemplate(); break; } } private void ExportExcel() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": GridHelper.ulGridToExcel(_ctrlMscChem.Grid, "成分内控"); break; case "2": GridHelper.ulGridToExcel(_ctrlMscMaterial.Grid, "理化内控"); break; case "3": GridHelper.ulGridToExcel(_ctrlMscTolerances.Grid, "公差内控"); break; case "4": GridHelper.ulGridToExcel(_ctrlMscDetection.Grid, "探伤内控"); break; case "5": GridHelper.ulGridToExcel(_ctrlMscProductWater.Grid, "水压内控"); break; case "6": GridHelper.ulGridToExcel(_ctrlMscStdProcess.Grid, "加工内控"); break; } } private void AnalysisNkChem() { this.Cursor = Cursors.WaitCursor; var pRows = _ctrlMscChem.Grid.Rows.Where(a => a.GetValue("CHC") == "True"); DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("CIC"), new DataColumn("GRADENAME"), new DataColumn("CHEM_NAME"), new DataColumn("STD_MIN_SIGN"), new DataColumn("STD_MIN"), new DataColumn("STD_MAX_SIGN"), new DataColumn("STD_MAX") }); Dictionary> dicSource = new Dictionary>(); foreach (var pRow in pRows) { DataRow pDr = dt.NewRow(); pDr["CIC"] = pRow.GetValue("CIC"); pDr["GRADENAME"] = pRow.GetValue("GRADENAME"); List cDrs = new List(); dicSource.Add(pDr, cDrs); var cRows = pRow.ChildBands[0].Rows.Where(a => a.GetValue("VALIDFLAG") != ""); foreach (var cRow in cRows) { DataRow dr = dt.NewRow(); dr["CIC"] = cRow.GetValue("CIC"); dr["GRADENAME"] = pRow.GetValue("GRADENAME"); dr["CHEM_NAME"] = cRow.GetValue("CHEM_NAME"); dr["STD_MIN_SIGN"] = cRow.GetValue("STDMIN_SIGN"); dr["STD_MIN"] = cRow.GetValue("STDMIN"); dr["STD_MAX_SIGN"] = cRow.GetValue("STDMAX_SIGN"); dr["STD_MAX"] = cRow.GetValue("STDMAX"); cDrs.Add(dr); } } AnalysisNkChemPopup popup = new AnalysisNkChemPopup(dicSource); popup.TopMost = true; popup.Load += ((a, b) => { this.Cursor = Cursors.Default; }); popup.Show(); } private void QueryAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; string stdCode = ugr.GetValue("STD_CODE"); switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.ShowStdGrid(stdCode, _productCode, _steelCodes, _steelcodeNk, _processCode, this.ob); _ctrlMscChem.IsQueryValidData = ChcValid.Checked; _ctrlMscChem.QueryStd(stdCode, _productCode, _steelCodes, modelCode); //_ctrlMscChem.ExpandFirstRow(); break; case "2": _ctrlMscMaterial.ShowStdGrid(stdCode, _steelCodes, _productCode, _steelcodeNk, _processCode, _msc, _ordLnPk, this.ob); _ctrlMscMaterial.IsQueryValidData = ChcValid.Checked; _ctrlMscMaterial.QueryStd(stdCode, _steelCodes, modelCode); //_ctrlMscMaterial.ExpandFirstRow(); break; case "3": _ctrlMscTolerances.ShowStdGrid(stdCode, _productCode, _steelcodeNk, _processCode, this.ob); _ctrlMscTolerances.IsQueryValidData = ChcValid.Checked; _ctrlMscTolerances.QueryStd(stdCode, modelCode); //_ctrlMscTolerances.ExpandFirstRow(); break; case "4": _ctrlMscDetection.ShowStdGrid(stdCode, "", "", "1", _productCode, _steelcodeNk, _processCode, this.ob); _ctrlMscDetection.IsQueryValidData = ChcValid.Checked; _ctrlMscDetection.QueryStd(stdCode, modelCode); //_ctrlMscDetection.ExpandFirstRow(); break; case "5": _ctrlMscProductWater.ShowStdGrid(stdCode, _productCode, _steelcodeNk, _processCode, psc, _ordLnPk, this.ob); _ctrlMscProductWater.IsQueryValidData = ChcValid.Checked; _ctrlMscProductWater.QueryStd(stdCode, modelCode); //_ctrlMscProductWater.ExpandFirstRow(); break; case "6": _ctrlMscStdProcess.ShowStdGrid(stdCode, _productCode, _steelcodeNk, _processCode, this.ob); _ctrlMscStdProcess.IsQueryValidData = ChcValid.Checked; _ctrlMscStdProcess.QueryStd(stdCode, modelCode); //_ctrlMscStdProcess.ExpandFirstRow(); break; } } private void SaveAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.Save(); break; case "2": _ctrlMscMaterial.Save(); break; case "3": _ctrlMscTolerances.Save(); break; case "4": _ctrlMscDetection.Save(); break; case "5": _ctrlMscProductWater.Save(); break; case "6": _ctrlMscStdProcess.Save(); break; } } private void DeleteAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.Delete(); break; case "2": _ctrlMscMaterial.Delete(); break; case "3": _ctrlMscTolerances.Delete(); break; case "4": _ctrlMscDetection.Delete(); break; case "5": _ctrlMscProductWater.Delete(); break; case "6": _ctrlMscStdProcess.Delete(); break; } } private void ResumeAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.Resume(); break; case "2": _ctrlMscMaterial.Resume(); break; case "3": _ctrlMscTolerances.Resume(); break; case "4": _ctrlMscDetection.Resume(); break; case "5": _ctrlMscProductWater.Resume(); break; case "6": _ctrlMscStdProcess.Resume(); break; } } private void GroupAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; DataRow drComBaseStd = GetComBaseStdRowByPk(ugr.GetValue("STD_CODE")); /*if (drComBaseStd["ACCEPT_BID"].ToString() == "1" && drComBaseStd["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + drComBaseStd["UNIT_DESC"].ToString() + "]的成员才能操作!"); return; }*/ if (ultraTabControl1.SelectedTab.Key == "2") _ctrlMscMaterial.Group(); else if (ultraTabControl1.SelectedTab.Key == "3") _ctrlMscTolerances.Group(); else if (ultraTabControl1.SelectedTab.Key == "4") _ctrlMscDetection.Group(); else if (ultraTabControl1.SelectedTab.Key == "6") _ctrlMscStdProcess.Group(); else if (ultraTabControl1.SelectedTab.Key == "1") _ctrlMscChem.Group(); } private void CancelGroupAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; DataRow drComBaseStd = GetComBaseStdRowByPk(ugr.GetValue("STD_CODE")); /*if (drComBaseStd["ACCEPT_BID"].ToString() == "1" && drComBaseStd["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + drComBaseStd["UNIT_DESC"].ToString() + "]的成员才能操作!"); return; }*/ if (ultraTabControl1.SelectedTab.Key == "2") _ctrlMscMaterial.CancelGroup(); else if (ultraTabControl1.SelectedTab.Key == "3") _ctrlMscTolerances.CancelGroup(); else if (ultraTabControl1.SelectedTab.Key == "4") _ctrlMscDetection.CancelGroup(); else if (ultraTabControl1.SelectedTab.Key == "6") _ctrlMscStdProcess.CancelGroup(); else if (ultraTabControl1.SelectedTab.Key == "1") _ctrlMscChem.CancelGroup(); } private void RefreshAlpha() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.RefreshData(); break; case "2": _ctrlMscMaterial.RefreshData(); break; case "3": _ctrlMscTolerances.RefreshData(); break; case "4": _ctrlMscDetection.RefreshData(); break; case "5": _ctrlMscProductWater.RefreshData(); break; case "6": _ctrlMscStdProcess.RefreshData(); break; } } private void Copy() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.Copy(); break; case "2": _ctrlMscMaterial.Copy(); break; case "3": _ctrlMscTolerances.Copy(); break; case "4": _ctrlMscDetection.Copy(); break; case "5": _ctrlMscProductWater.Copy(); break; case "6": _ctrlMscStdProcess.Copy(); break; } } private void Paste() { UltraGridRow ugr = this.ultraGrid1.ActiveRow; if (ugr == null) return; switch (ultraTabControl1.SelectedTab.Key) { case "1": _ctrlMscChem.Paste(); break; case "2": _ctrlMscMaterial.Paste(); break; case "3": _ctrlMscTolerances.Paste(); break; case "4": _ctrlMscDetection.Paste(); break; case "5": _ctrlMscProductWater.Paste(); break; case "6": _ctrlMscStdProcess.Paste(); break; } } private DataTable GetStationType() { if (_msc == "") return null; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getStationType", new object[] { _msc, _mscPline, _processCode }, ob); return dt; } /// /// 行激活事件 /// /// /// public void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { ((Form)ultraGrid1.TopLevelControl).Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) return; DataTable stationType = GetStationType(); if (stationType != null) { if (stationType.Select("STATION_TYPE = '403202'").Length > 0) { ultraTabControl1.Tabs["2"].Visible = true; } else { ultraTabControl1.Tabs["2"].Visible = false; } if (stationType.Select("STATION_TYPE = '403201'").Length > 0) { ultraTabControl1.Tabs["1"].Visible = true; } else { ultraTabControl1.Tabs["1"].Visible = false; } if (stationType.Select("STATION_TYPE = '403203'").Length > 0) { ultraTabControl1.Tabs["3"].Visible = true; } else { ultraTabControl1.Tabs["3"].Visible = false; } if (stationType.Select("STATION_TYPE = '403204'").Length > 0) { ultraTabControl1.Tabs["4"].Visible = true; } else { ultraTabControl1.Tabs["4"].Visible = false; } if (stationType.Select("STATION_TYPE = '403205'").Length > 0) { ultraTabControl1.Tabs["5"].Visible = true; } else { ultraTabControl1.Tabs["5"].Visible = false; } if (stationType.Select("STATION_TYPE = '403208'").Length > 0) { ultraTabControl1.Tabs["6"].Visible = true; } else { ultraTabControl1.Tabs["6"].Visible = false; } } if (ultraTabControl1.ActiveTab != null) switch (ultraTabControl1.ActiveTab.Key) { case "1": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; break; case "2": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; break; case "3": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; break; case "4": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; break; case "5": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.False; break; case "6": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; break; } _stdName = ugr.Cells["STD_NAME"].Value.ToString(); if (ugr.Cells["PROCESS_DESC"].Text.Contains("加工")) { _ctrlMscStdProcess.Grid.Enabled = true; } else { _ctrlMscStdProcess.Grid.Enabled = false; } //如果有效,则可用 if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("有效")) { ultraGrid2.Enabled = true; //查询客户 if (CustomInfo == "3") { string valid = "1"; if (ChcValid.Checked) { valid = "0"; } string stdCode = ugr.Cells["STD_CODE"].Value.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getCuster", new Object[] { stdCode, valid }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //定位 UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CUST_NAME" }, new string[] { _custName }); if (rows.Length > 0) rows[0].Activate(); _custName = ""; UltraGridBand bc = ultraGrid2.DisplayLayout.Bands[0]; UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["CHC"], bc.Columns["CUST_CODE"] }; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid2); } else { dataTable2.Rows.Clear(); } } else { dataTable2.Rows.Clear(); ultraGrid2.Enabled = false; } if (ugr == null || !ugr.Cells["validflag"].Value.Equals("有效")) { this.ultraTabControl1.Enabled = false; _ctrlMscChem.Clear(); _ctrlMscDetection.Clear(); _ctrlMscMaterial.Clear(); _ctrlMscProductWater.Clear(); _ctrlMscStdProcess.Clear(); _ctrlMscTolerances.Clear(); return; } else { this.ultraTabControl1.Enabled = true; } _ctrlMscChem._frmChemStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); _ctrlMscMaterial._frmMaterialStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); _ctrlMscTolerances._frmTolerancesStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); _ctrlMscDetection._frmDetectionStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); _ctrlMscProductWater._frmWaterStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); _ctrlMscStdProcess._frmProcessStd.AcceptBid = ugr.GetValue("ACCEPT_BID"); QueryAlpha(); if (AfterRowActivate != null) { AfterRowActivate.Invoke(ultraGrid1, EventArgs.Empty); } //controlPhy(); } finally { ((Form)ultraGrid1.TopLevelControl).Cursor = Cursors.Default; } } private void ChcValid_CheckedChanged(object sender, EventArgs e) { UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) { this.ultraTabControl1.Enabled = false; return; } else { this.ultraTabControl1.Enabled = true; } QueryAlpha(); } private void ultraTabControl1_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { ultraTabControl1.TopLevelControl.Cursor = Cursors.WaitCursor; try { UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) { this.ultraTabControl1.Enabled = false; return; } else { this.ultraTabControl1.Enabled = true; } //if (e.Tab.Key == "2") // this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; //else // this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["保存模板"].SharedProps.Visible = false; switch (e.Tab.Key) { case "1": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.True; break; case "2": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["保存模板"].SharedProps.Visible = true; break; case "3": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.False; break; case "4": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.False; break; case "5": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.False; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.False; break; case "6": this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool5"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["ButtonTool6"].InstanceProps.Visible = DefaultableBoolean.True; this.ultraToolbarsManager1.Toolbars[0].Tools["分析成分内控"].InstanceProps.Visible = DefaultableBoolean.False; break; } //RefreshAlpha(); QueryAlpha(); } finally { ultraTabControl1.TopLevelControl.Cursor = Cursors.Arrow; } } private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e) { UltraGridRow ugrCust = ultraGrid2.DisplayLayout.ActiveRow; UltraGridRow ugrStd = ultraGrid1.DisplayLayout.ActiveRow; if (ugrCust == null) return; if (ugrStd == null) return; ugrCust.Cells["STD_NAME"].Value = ugrStd.Cells["STD_NAME"].Value.ToString().Trim(); ugrCust.Cells["STD_CODE"].Value = ugrStd.Cells["STD_CODE"].Value.ToString().Trim(); SetUnEnit(ugrCust); } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); if (e.Cell.Column.Key.Equals("CUST_CODE")) //客户 { e.Cell.Row.Cells["CUST_NAME"].Value = e.Cell.Text; } if (e.Cell.Column.Key.Equals("CHC")) //选择 { Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(e.Cell.Value)) { activation = Activation.AllowEdit; isSelectData += 1; } else isSelectData -= 1; CellsCollection cells = e.Cell.Row.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { e.Cell.Row.Cells[i].Activation = activation; } } } } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效")) { e.Row.Appearance.ForeColor = Color.Red; } else { e.Row.Appearance.ForeColor = Color.Black; } } /// /// 行不可编辑 /// /// private void SetUnEnit(UltraGridRow ugr) { //增加行如果没有勾选则不可编辑 if (!Convert.ToBoolean(ugr.Cells["CHC"].Value)) { for (int i = 0; i < ugr.Cells.Count; i++) { if (!ugr.Cells[i].Column.Key.Equals("CHC")) ugr.Cells[i].Activation = Activation.ActivateOnly; } } } private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox2.Expanded) { splitContainer2.SplitterDistance = disLength; } else splitContainer2.SplitterDistance = this.Width; } private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { if (ultraExpandableGroupBox1.Expanded) splitContainer1.SplitterDistance = disWidth; else splitContainer1.SplitterDistance = this.Width; } private void ChcStd_CheckedChanged(object sender, EventArgs e) { if (ChcStd.Checked) { TextStd.Enabled = true; } else TextStd.Enabled = false; } private void controlPhy() { //if (ultraGrid1.ActiveRow.Cells["PROCESS_CODE"].Text.Trim().Equals("炼钢")) //{ // _ctrlMscMaterial.Grid.DisplayLayout.Bands[0].Columns["STEELCODE"].CellActivation = Activation.ActivateOnly; // _ctrlMscMaterial.Grid.DisplayLayout.Bands[0].Columns["GRADECODE"].CellActivation = Activation.AllowEdit; //} //else //{ // _ctrlMscMaterial.Grid.DisplayLayout.Bands[0].Columns["STEELCODE"].CellActivation = Activation.AllowEdit; // _ctrlMscMaterial.Grid.DisplayLayout.Bands[0].Columns["GRADECODE"].CellActivation = Activation.ActivateOnly; //} } private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e) { string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CODE") == "" ? _processCode : ultraGrid1.ActiveRow.GetValue("PROCESS_CODE"); ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob); if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PROCESS_CODE", choiceProcessPopup.ProcessCodes); ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs); } } private void ultraGrid1_KeyDown(object sender, KeyEventArgs e) { //ultraGrid1.DisplayLayout.Bands[0].Override.AllowMultiCellOperations = AllowMultiCellOperation.Copy | AllowMultiCellOperation.Paste; //if (e.Control && e.KeyCode == Keys.C) //{ // ultraGrid1.PerformAction(UltraGridAction.Copy); //} //else if (e.Control && e.KeyCode == Keys.V) //{ // ultraGrid1.PerformAction(UltraGridAction.Paste); //} } private void ultraGrid1_Error(object sender, ErrorEventArgs e) { //e.Cancel = true; } } }