using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; 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 FrmMaterialStandard : FrmBase { private bool isPasting = false; private int _pic = 1; //理化标准索引号 private string errMessage = ""; //提示信息 //public int isSelect = 0; private string validflag = ""; private UltraComboEditor uce = new UltraComboEditor(); private UltraComboEditor cmbProBigType = new UltraComboEditor(); private UltraComboEditor gradeuce = new UltraComboEditor(); private UltraComboEditor steeluce = new UltraComboEditor(); private string _strPic = ""; public string StrPic { get { return _strPic; } set { _strPic = value; } } private string msc = ""; public string Msc { get { return msc; } set { msc = value; } } //如果接箍为字符串空,会在SQL语句中新增接箍等于空的条件,所以单页面默认了个不为空的值。 private string codeJg = "DefaultValue"; public string CodeJg { get { return codeJg; } set { codeJg = value; } } private string stdCode = ""; public string StdCode { get { return stdCode; } set { stdCode = value; } } private ArrayList steelCodes = new ArrayList(); public ArrayList SteelCodes { get { return steelCodes; } set { steelCodes = value; } } private string producCode = ""; public string ProducCode { get { return producCode; } set { producCode = value; } } private string steelcodeNk = ""; public string SteelcodeNk { get { return steelcodeNk; } set { steelcodeNk = value; } } private string processCode = ""; public string ProcessCode { get { return processCode; } set { processCode = value; } } private string acceptBid = ""; public string AcceptBid { get { return acceptBid; } set { acceptBid = 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 Dictionary itemCodeFDic = new Dictionary(); private Dictionary itemCodeWDic = new Dictionary(); private Dictionary itemCodeSDic = new Dictionary(); public FrmMaterialStandard() { IsLoadUserView = true; InitializeComponent(); ExceptionHelper.RegistException(); } public void PopupLoad(string customInfo, OpeBase ob) { this.CustomInfo = customInfo; this.ob = ob; FrmMaterialStandard_Load(null, null); } //合格说明索引 private string noteIndex; public string NoteIndex { get { return noteIndex; } set { noteIndex = value; } } private List PicCode = new List(); //做过操作的PIC private Dictionary ultraphymin = null; private Dictionary ultraitem = null; /// /// 按钮 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": DoQuery(); break; case "Save": DoSave(); break; case "Delete": { DoDeleteOrResume(true); break; } case "Resume": { DoDeleteOrResume(false); break; } case "Copy": Copy(); break; case "Paste": isPasting = true; try { Paste(); } finally { isPasting = false; } break; case "Refresh": doRefresh(); break; case "Group": doGroup(); break; case "Cancel": CancelGroup(); break; case "Close": this.Close(); break; case "SaveTemplate": SaveTemplate(); break; } } /// /// 复制 /// private void Copy() { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowWarning("请选择记录后,再进行操作!"); return; } ultraGrid1.UpdateData(); DataTable copyTab = dataTable1.Copy(); DataTable copyTab2 = dataTable2.Copy(); copyTab.Clear(); copyTab2.Clear(); if (ultraGrid1.ActiveRow.HasParent()) { foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows) { if (row.GetValue("CHC") != "True") continue; DataRow dr = copyTab.NewRow(); CopyRowToRow(((DataRowView)row.ListObject).Row, dr); copyTab.Rows.Add(dr); } } else { foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows) { DataRow dr = copyTab.NewRow(); CopyRowToRow(((DataRowView)row.ListObject).Row, dr); copyTab.Rows.Add(dr); } DataRow dr2 = copyTab2.NewRow(); CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2); copyTab2.Rows.Add(dr2); } DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 }; Clipboard.SetData("Pic", copyTabs); } private void CopyRowToRow(DataRow srcRow, DataRow desRow) { for (int i = 0; i < srcRow.Table.Columns.Count; i++) { string columnName = srcRow.Table.Columns[i].ColumnName; desRow[columnName] = srcRow[columnName]; } } /// /// 粘贴 /// private void Paste() { DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Pic"); if (copyTabs == null) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } DataTable copyTab = copyTabs[0]; DataTable copyTab2 = copyTabs[1]; if (copyTab == null || copyTab.Rows.Count == 0) { MessageUtil.ShowWarning("没有数据,请复制后再进行操作!"); return; } dataTable1.BeginInit(); string pic = ""; UltraGridRow rowParent; if (ultraGrid1.ActiveRow.HasParent()) { //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} pic = ultraGrid1.ActiveRow.ParentRow.GetValue("PIC"); rowParent = ultraGrid1.ActiveRow.ParentRow; } else { //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0) //{ // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!"); // return; //} pic = ultraGrid1.GetActiveRowValue("PIC"); rowParent = ultraGrid1.ActiveRow; } List notCopyColumns = new List(); notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME", "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "VALIDFLAGNAME", "PIC", "MSC", "STD_CODE_NK", "STD_NAME_NK", "PROCESS_DESC", "PSC_DESC", "PSC", "PRODUCNAME", "STD_NAME", "STDSTYLE", "STEELCODE", "STD_STYLE_DESC", "PRODUCCODE_NK", "PRODUCNAME_NK", "GRADECODE", "GRADENAME", "PROCESS_CDOE", "PROCESS_DESC", "STEELCODE_NK", "STEELDESC_NK"); if (copyTab2.Rows.Count > 0) { DataRow drParent = ((DataRowView)rowParent.ListObject).Row; foreach (DataColumn column in dataTable2.Columns) { string columnName = column.ColumnName; if (notCopyColumns.Contains(columnName) == true) continue; drParent[columnName] = copyTab2.Rows[0][columnName]; } } if (dataTable2.Select("PIC = '" + pic + "'").Length == 0) return; foreach (DataRow row in copyTab.Rows) { DataRow tempRow = dataTable1.NewRow(); foreach (DataColumn column in dataTable1.Columns) { string columnName = column.ColumnName; if (notCopyColumns.Contains(columnName) == true) continue; if (!copyTab.Columns.Contains(columnName)) continue; tempRow[columnName] = row[columnName]; } tempRow["PIC"] = pic; dataTable1.Rows.Add(tempRow); } dataTable1.EndInit(); if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null) { ultraGrid1.ActiveRow.ExpandAll(); } ultraGrid1.UpdateData(); } private void CancelGroup() { int ischeck = 0; //是否勾选 int isselect = 0; //勾选项是否已写入数据库 int isvalid = 0; //是否有效 int hasindex = 0; ArrayList plist = new ArrayList(); foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.HasChild() && row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { MessageBox.Show("主表不能进行取消分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } foreach (UltraGridRow crow in row.ChildBands[0].Rows) { ArrayList clist = new ArrayList(); //需要取消的GIC和XH if (crow.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("")) { isselect += 1; } if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("无效")) { isvalid += 1; } if (crow.Cells["GROUP_SEQ"].Value.ToString().Equals("")) { hasindex += 1; } ischeck += 1; clist.Add(crow.Cells["PIC"].Value.ToString()); clist.Add(crow.Cells["INDEX_SEQ"].Value.ToString()); plist.Add(clist); } } } if (ischeck == 0) { MessageBox.Show("请选择你要取消分组的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (isselect > 0) { MessageBox.Show("您选择的记录中存在未保存的项,不能对其进行取消分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (isvalid > 0) { MessageBox.Show("您选择的记录中存在无效数据,无法取消分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (hasindex > 0) { MessageBox.Show("您选择的记录中存在未分组的数据,无法取消分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (MessageBox.Show("是否确认对所选项进行取消分组?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.cancleGroup", new Object[] { plist }, this.ob); if (count > 0) { MessageBox.Show("取消分组成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); ExpandRow(); PicCode.Clear(); } } private void CreateGridCombo() { int cout = ultraComPhyMax.Items.Count; ultraphymin = new Dictionary(cout); for (int i = 0; i < ultraComPhyMax.Items.Count; i++) { string phymaxcode = ultraComPhyMax.Items[i].DataValue.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new Object[] { phymaxcode }, this.ob); UltraComboEditor cmb = new UltraComboEditor(); cmb.DataSource = dt; cmb.DisplayMember = "PHY_TYPE"; cmb.ValueMember = "PHY_CODE"; cmb.Visible = false; cmb.DropDownListWidth = -1; ultraphymin.Add(phymaxcode, cmb); this.Controls.Add(cmb); } int count1 = ultraphymin.Count; ultraitem = new Dictionary(count1); for (int i = 0; i < count1; i++) { for (int j = 0; j < ultraphymin[ultraComPhyMax.Items[i].DataValue.ToString()].Items.Count; j++) { string phymincode = ultraphymin[ultraComPhyMax.Items[i].DataValue.ToString()].Items[j].DataValue.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy", new Object[] { ultraComPhyMax.Items[i].DataValue.ToString(), phymincode }, this.ob); UltraComboEditor cmb = new UltraComboEditor(); cmb.DataSource = dt; cmb.DisplayMember = "PHY_NAME"; cmb.ValueMember = "PHY_CODE"; cmb.Visible = false; cmb.DropDownListWidth = -1; ultraitem.Add(phymincode, cmb); this.Controls.Add(cmb); } } foreach (UltraComboEditor cmb in ultraitem.Values) { for (int j = 0; j < cmb.Items.Count; j++) { string phyCode = cmb.Items[j].DataValue.ToString(); if (itemCodeFDic.ContainsKey(phyCode) == true) continue; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem", new Object[] { phyCode }, this.ob); //DataRow dr = dt.NewRow(); //dr["ITEM_CODE_F"] = ",,"; //dr["ITEM_CODE_W"] = ",,"; //dr["ITEM_CODE_C"] = ",,"; //dr["ITEM_NAME_F"] = ""; //dr["ITEM_NAME_W"] = ""; //dr["ITEM_NAME_C"] = ""; //dt.Rows.InsertAt(dr, 0); UltraCombo cmbF = new UltraCombo(); cmbF.DataSource = dt; cmbF.DisplayMember = "ITEM_NAME_F"; cmbF.ValueMember = "PRIMARY_KEY"; cmbF.Visible = false; cmbF.DropDownWidth = -1; cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true; cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true; cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true; cmbF.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true; cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向"; cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度"; cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸"; this.Controls.Add(cmbF); itemCodeFDic.Add(phyCode, cmbF); UltraCombo cmbW = new UltraCombo(); cmbW.DataSource = dt; cmbW.DisplayMember = "ITEM_NAME_W"; cmbW.ValueMember = "PRIMARY_KEY"; cmbW.Visible = false; cmbW.DropDownWidth = -1; cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true; cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true; cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true; cmbW.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true; cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向"; cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度"; cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸"; this.Controls.Add(cmbW); itemCodeWDic.Add(phyCode, cmbW); UltraCombo cmbS = new UltraCombo(); cmbS.DataSource = dt; cmbS.DisplayMember = "ITEM_NAME_C"; cmbS.ValueMember = "PRIMARY_KEY"; cmbS.Visible = false; cmbS.DropDownWidth = -1; cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true; cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true; cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true; cmbS.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true; cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向"; cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度"; cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸"; this.Controls.Add(cmbS); itemCodeSDic.Add(phyCode, cmbS); } } } /// /// 将生成的下拉框绑定到GRID /// /// 初始化行时使用 /// Grid的子表行,刷新时用 /// private void BandComboToGrid(InitializeRowEventArgs e, UltraGridRow ugr) { if (e != null && e.Row.HasParent()) { string phycodemax = e.Row.Cells["PHY_CODE_MAX"].Value.ToString(); if (ultraphymin.ContainsKey(phycodemax)) { e.Row.Cells["PHY_NAME_MIN"].EditorComponent = ultraphymin[phycodemax]; } else { e.Row.Cells["PHY_NAME_MIN"].EditorComponent = null; } string phycodemin = e.Row.Cells["PHY_CODE_MIN"].Value.ToString(); if (ultraitem.ContainsKey(phycodemin)) { e.Row.Cells["PHY_NAME"].EditorComponent = ultraitem[phycodemin]; } else { e.Row.Cells["PHY_NAME"].EditorComponent = null; } if (itemCodeFDic.ContainsKey(e.Row.GetValue("PHY_CODE"))) { e.Row.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFDic[e.Row.GetValue("PHY_CODE")]; e.Row.Cells["ITEM_CODE_F"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; e.Row.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWDic[e.Row.GetValue("PHY_CODE")]; e.Row.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSDic[e.Row.GetValue("PHY_CODE")]; } //e.Row.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFCmb; //e.Row.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWCmb; //e.Row.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSCmb; } if (ugr != null && e != null) { string phycodemax = ugr.Cells["PHY_CODE_MAX"].Value.ToString(); if (ultraphymin.ContainsKey(phycodemax)) { ugr.Cells["PHY_NAME_MIN"].EditorComponent = ultraphymin[phycodemax]; } else { ugr.Cells["PHY_NAME_MIN"].EditorComponent = null; } string phycodemin = ugr.Cells["PHY_CODE_MIN"].Value.ToString(); if (ultraitem.ContainsKey(phycodemin)) { ugr.Cells["PHY_NAME"].EditorComponent = ultraitem[phycodemin]; } else { ugr.Cells["PHY_NAME"].EditorComponent = null; } if (itemCodeFDic.ContainsKey(ugr.GetValue("PHY_CODE"))) { ugr.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFDic[ugr.GetValue("PHY_CODE")]; e.Row.Cells["ITEM_CODE_F"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ugr.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWDic[ugr.GetValue("PHY_CODE")]; ugr.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSDic[ugr.GetValue("PHY_CODE")]; } //ugr.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFCmb; //ugr.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWCmb; //ugr.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSCmb; } } private void doGroup() { ArrayList list = new ArrayList(); int ischeck = 0; //是否勾选 int isselect = 0; //勾选项是否已写入数据库 int isvalid = 0; //是否有效 foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.HasChild() && row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { MessageBox.Show("主表不能进行分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } ArrayList plist = new ArrayList(); //分为几组。 foreach (UltraGridRow crow in row.ChildBands[0].Rows) { ArrayList clist = new ArrayList(); //哪些分为一组。 if (crow.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("")) { isselect += 1; } if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("无效")) { isvalid += 1; } ischeck += 1; clist.Add(crow.Cells["PIC"].Value.ToString()); clist.Add(crow.Cells["INDEX_SEQ"].Value.ToString()); plist.Add(clist); } } list.Add(plist); } if (ischeck == 0) { MessageBox.Show("请选择你要分组的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (isselect > 0) { MessageBox.Show("您选择的分组记录中存在未保存的项,请先保存后再分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (isvalid > 0) { MessageBox.Show("您选择的分组记录中存在无效数据,无法分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (MessageBox.Show("是否确认对所选项进行分组?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } CoreClientParam ccp = new CoreClientParam(); //CoreClientParam是平台用来向服务端传递存放所有相关参数信息的。 ccp.ServerName = "com.steering.pss.qcm.ComMaterial"; //服务名指的是服务端的包名+类名 ccp.MethodName = "doGroup"; //方法名指的是服务名指定类里的方法 ccp.ServerParams = new object[] { list };//服务端方法的参数 //ExecuteNonQuery主要用来执行添加、修改、删除、存储过程的操作。 ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode == -1) return; MessageBox.Show("分组成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); ExpandRow(); PicCode.Clear(); } /// /// 刷新 /// private void doRefresh() { InitComBoEditor(); //CreateGridCombo(); //foreach (UltraGridRow row in ultraGrid1.Rows) //{ // foreach (UltraGridRow crow in row.ChildBands[0].Rows) // { // BandComboToGrid(null, crow); // } //} } /// /// 根据参数不同,隐藏不同的字段 /// private void HideColumn() { if (this.CustomInfo == "1") { this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["GRADENAME"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["IMPACT_ID"].Hidden = true; ultraGrid1.DisplayLayout.Bands[1].Columns["IS_PRODUCT_CHECK"].Hidden = true; } if (this.CustomInfo == "2") { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号"; //this.ultraGrid1.DisplayLayout.Bands[0].Columns["UnboundColumn1"].Hidden = false; //UnboundColumn1 } if (this.CustomInfo == "3") { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["UnboundColumn1"].Hidden = true; } } /// /// 行增加事件 /// /// /// private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { this.ultraGrid1.UpdateData(); string style = "X"; if (this.CustomInfo == "2") style = "N"; if (this.CustomInfo == "3") style = "K"; UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; if (!ugr.HasParent()) //主表自动填充主键(理化标准索引号) { string picStr = ""; string pic = ""; DataRow[] dr = dataTable2.Select("", "PIC DESC"); if (dr.Length > 0) { pic = dr[0]["PIC"].ToString(); } if (!pic.Equals("")) { int number = int.Parse(pic.Substring(4, 6)); picStr = "PIC" + style + string.Format("{0:000000}", number + 1); _pic = number + 1; } else { picStr = "PIC" + style + string.Format("{0:000000}", _pic); _pic = _pic + 1; } //赋值理化索引号 ugr.Cells["PIC"].Value = picStr; ugr.Cells["UnboundColumn1"].Value = "维护取样要求"; ugr.Cells["BATCH_LOCA"].Value = "408502"; //ugr.Cells["COUNT"].Value = "已维护项目"; } else //从表自动填充主键(序号) { int indexSeq = 0; DataRow[] dr = dataTable1.Select("PIC='" + ugr.Cells["PIC"].Value.ToString() + "'", "INDEX_SEQ DESC"); if (dr.Length > 0) { indexSeq = Convert.ToInt32(dr[0]["INDEX_SEQ"]); } indexSeq += 1; //赋值序号 this.ultraGrid1.DisplayLayout.ActiveRow.Cells["INDEX_SEQ"].Value = indexSeq; //将增加行的是否必选项置为默认选择 和 复合元素选择项置为默认不选 this.ultraGrid1.DisplayLayout.ActiveRow.Cells["ISCHECK"].Value = true; this.ultraGrid1.DisplayLayout.ActiveRow.Cells["PHY_TYPE"].Value = false; this.ultraGrid1.ActiveRow.Cells["BILLET_SAMPLE"].Value = false; e.Row.Cells["JUDGE_BASIS"].Value = "逐项值判"; e.Row.Cells["ISJUDGE"].Value = true; e.Row.Cells["ISQUOTE"].Value = true; e.Row.Cells["IS_PRODUCT_CHECK"].Value = false; if (ugr.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE") { ugr.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit; } else { ugr.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly; } } //增加行如果没有勾选则不可编辑 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; if (ugr.Cells[i].Column.Key.Equals("CHKNK")) ugr.Cells["CHKNK"].Value = "选择"; } } e.Row.Update(); } /// /// 登陆初始化数据 /// /// /// private void FrmMaterialStandard_Load(object sender, EventArgs e) { if (this.CustomInfo == "5") { this.ultraToolbarsManager1.Tools[2].SharedProps.Visible = false; } if (this.CustomInfo != "4" && this.CustomInfo != "5") InitComBoEditor(); HideColumn(); //CreateGridCombo(); if (this.CustomInfo == "3") this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_NK"].Header.Caption = "标准名称"; } private void setGrid() { ultraGrid1.UpdateData(); //foreach (UltraGridRow row in ultraGrid1.Rows) //{ // row.Cells["UnboundColumn1"].Value = "维护取样要求"; // DataView dv = new DataView(dataTable1); // DataTable newdt = dv.ToTable(false, "PIC", "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_W", "ITEM_NAME_S"); // DataRow[] dr = newdt.Select("PIC='" + row.Cells["PIC"].Value.ToString() + "'", ""); // row.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["PIC"].ToString() == row.Cells["PIC"].Value.ToString()).Distinct(new DataRowComparer()).Count(); // // row.Cells["COUNT"].Value = "已维护项目"; //} } public void PopupRefresh() { if (CustomInfo == "1") { UltraComboEditor UceMsc = new UltraComboEditor(); this.Controls.Add(UceMsc); UceMsc.Visible = false; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new object[] { msc }, ob); QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false); ClsBaseInfo.SetComboItemHeight(UceMsc); ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc; ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } } /// /// 初始化下拉框数据 /// private void InitComBoEditor() { QcmBaseCommon.InitSignMin(ultraComSignMin); QcmBaseCommon.InitSignMax(ultraComSignMax); InitJudgeBasis(); //初始化理化检验项大类 ultraComPhyMax.DropDownListWidth = -1; QcmBaseCommon.InitDropUltraComEditor(ultraComPhyMax, "com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", "PHY_TYPE", this.ob, false); //初始化结箍名称 QcmBaseCommon.InitDropUltraComEditor(ultraComJG, "com.steering.pss.qcm.ComBaseQuery.getComMSCJG", "SPEC_JG_DESC", this.ob, true); //初始化限制规格 QcmBaseCommon.InitDropUltraComEditor(ultraComSize, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4003", "BASENAME", this.ob, true); //交货标准 QcmBaseCommon.InitDropUltraComEditor(ultraComboDelivery, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4060", "BASENAME", this.ob, true); //内控标准 UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; this.Controls.Add(uce); uce.Visible = false; ugb.Columns["GRADECODE"].Hidden = true; ugb.Columns["STEELCODE"].CellActivation = Activation.ActivateOnly; if (this.CustomInfo == "2") { ugb.Columns["GRADECODE"].Hidden = false; InnerChange(); QcmBaseQuery.NitializeInnerStandard(uce, false, this.ob); QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb); } if (this.CustomInfo == "3") { QcmBaseQuery.NitializeAlphaStandard(uce, false, this.ob); QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb); } //产品规范码 QcmBaseCommon.InitDropUltraComEditor(ultraComboPSC, "com.steering.pss.qcm.ComMaterial.getPSC", "PSC_DESC", this.ob, false); if (CustomInfo == "1") { UltraComboEditor UceMsc = new UltraComboEditor(); this.Controls.Add(UceMsc); UceMsc.Visible = false; DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new object[] { msc }, ob); QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false); ClsBaseInfo.SetComboItemHeight(UceMsc); ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc; ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ClsBaseInfo.FillComBaseInfo(ultraComboBatchLoca, "4085", ob, false); ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].EditorComponent = ultraComboBatchLoca; ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } //附加标准 UltraComboEditor uceAddStdCon = new UltraComboEditor(); this.Controls.Add(uceAddStdCon); uceAddStdCon.Visible = false; QcmBaseCommon.InitDropUltraComEditor(uceAddStdCon, "com.steering.pss.qcm.ComMaterial.getAddCondition", "BASENAME", this.ob, false); ultraGrid1.DisplayLayout.Bands[1].Columns["ADDSTDCON_CODE"].EditorComponent = uceAddStdCon; ultraGrid1.DisplayLayout.Bands[1].Columns["ADDSTDCON_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ClsBaseInfo.SetComboItemHeight(uceAddStdCon); cmbProBigType.Visible = false; this.Controls.Add(cmbProBigType); QcmBaseQuery.NitializeProductBigType(cmbProBigType, false, ob); QcmBaseQuery.BindColumn(cmbProBigType, "PRODUC_HEAD", ugb); ClsBaseInfo.SetComboItemHeight(cmbProBigType); //多标准选择分类 UltraComboEditor uceMultStd = new UltraComboEditor(); this.Controls.Add(uceMultStd); uceMultStd.Visible = false; QcmBaseCommon.InitDropUltraComEditor(uceMultStd, "com.steering.pss.qcm.ComMaterial.getMultStd", "BASENAME", this.ob, true); ultraGrid1.DisplayLayout.Bands[1].Columns["STD_CHOOSE"].EditorComponent = uceMultStd; ultraGrid1.DisplayLayout.Bands[1].Columns["STD_CHOOSE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ClsBaseInfo.SetComboItemHeight(uceMultStd); ClsBaseInfo.SetComboItemHeight(ultraComboEditor2); //公式限制 ClsBaseInfo.FillComBaseInfo(ultraComboEditor3, "4095", ob, true); } /// /// 初始化判断依据 /// private void InitJudgeBasis() { DataTable dt = new DataTable(); dt.Columns.Add("JUDGE_BASIS"); DataRow dr1 = dt.NewRow(); dr1["JUDGE_BASIS"] = "最小值"; DataRow dr2 = dt.NewRow(); dr2["JUDGE_BASIS"] = "最大值"; DataRow dr3 = dt.NewRow(); dr3["JUDGE_BASIS"] = "平均值"; DataRow dr4 = dt.NewRow(); dr4["JUDGE_BASIS"] = "逐项值判"; dt.Rows.Add(dr1); dt.Rows.Add(dr2); dt.Rows.Add(dr3); dt.Rows.Add(dr4); ultraComJudgeBasis.DataSource = dt; ultraComJudgeBasis.DisplayMember = "JUDGE_BASIS"; DataTable dt1 = new DataTable(); dt1.Columns.Add("ADDCONDITION"); DataRow dr5 = dt1.NewRow(); dr5["ADDCONDITION"] = "符合标准时"; DataRow dr6 = dt1.NewRow(); dr6["ADDCONDITION"] = "不符合标准时"; DataRow dr7 = dt1.NewRow(); dr7["ADDCONDITION"] = " "; dt1.Rows.Add(dr5); dt1.Rows.Add(dr6); dt1.Rows.Add(dr7); ultraComboEditor1.DataSource = dt1; ultraComboEditor1.DisplayMember = "ADDCONDITION"; ClsBaseInfo.SetComboItemHeight(ultraComboEditor1); } /// /// ultragrid1数据变化事件 /// /// /// public void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow; if (e.Cell.Column.Key.Equals("SPEC_JG_DESC")) //结箍 { ugr.Cells["SPEC_JG"].Value = ugr.Cells["SPEC_JG_DESC"].Value.ToString(); } if (e.Cell.Column.Key.Equals("SIZE_NAME2")) //规格描述一 { ugr.Cells["SIZE_CODE2"].Value = ugr.Cells["SIZE_NAME2"].Value.ToString(); string sizeCode2 = ugr.Cells["SIZE_CODE2"].Value.ToString(); string sizeCode = ugr.Cells["SIZE_CODE"].Value.ToString(); if (!sizeCode2.Equals("") && sizeCode2.Equals(sizeCode)) { ugr.Cells["SIZE_CODE2"].Value = ""; ugr.Cells["SIZE_NAME2"].Value = ""; MessageBox.Show("限制规格描述不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (string.IsNullOrEmpty(e.Cell.Text)) { ugr.Cells["SIZE_MIN_SIGN2"].Value = ""; ugr.Cells["SIZE_MIN2"].Value = ""; ugr.Cells["SIZE_MAX_SIGN2"].Value = ""; ugr.Cells["SIZE_MAX2"].Value = ""; } } else if (e.Cell.Column.Key.Equals("SIZE_NAME")) //规格描述二 { ugr.Cells["SIZE_CODE"].Value = ugr.Cells["SIZE_NAME"].Value.ToString(); string sizeCode2 = ugr.Cells["SIZE_CODE2"].Value.ToString(); string sizeCode = ugr.Cells["SIZE_CODE"].Value.ToString(); if (!sizeCode.Equals("") && sizeCode.Equals(sizeCode2)) { ugr.Cells["SIZE_CODE"].Value = ""; ugr.Cells["SIZE_NAME"].Value = ""; MessageBox.Show("限制规格描述不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (string.IsNullOrEmpty(e.Cell.Text)) { ugr.Cells["SIZE_MIN_SIGN"].Value = ""; ugr.Cells["SIZE_MIN"].Value = ""; ugr.Cells["SIZE_MAX_SIGN"].Value = ""; ugr.Cells["SIZE_MAX"].Value = ""; } } else if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //标准下拉框选择 { ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text; DataRow[] dr = ((DataTable)uce.DataSource).Select("STD_CODE='" + ugr.Cells["STD_CODE_NK"].Value + "'"); if (dr.Length > 0) ugr.Cells["STDSTYLE"].Value = dr[0][2]; } else if (e.Cell.Column.Key.Equals("PROCESS_DESC")) //工序下拉框选择 { ugr.Cells["PROCESS_CDOE"].Value = ugr.Cells["PROCESS_DESC"].Value.ToString(); } else if (e.Cell.Column.Key.Equals("PSC_DESC")) //产品规范码 { string psc = ugr.Cells["PSC_DESC"].Value.ToString(); string[] str = psc.Split('@'); ugr.Cells["PSC"].Value = str[0]; ugr.Cells["PRODUCNAME"].Value = str[1]; ugr.Cells["STDSTYLE"].Value = str[2]; ugr.Cells["STD_NAME"].Value = str[3]; ugr.Cells["STEELNAME"].Value = str[4]; ugr.Cells["STD_STYLE_DESC"].Value = str[5]; } else if (e.Cell.Column.Key.Equals("MSC")) //冶金规范码 { string msc = ugr.Cells["MSC"].Value.ToString(); string[] str = msc.Split('@'); ugr.Cells["PSC"].Value = str[1]; ugr.Cells["PSC_DESC"].Value = str[2]; ugr.Cells["PRODUCNAME"].Value = str[3]; ugr.Cells["STDSTYLE"].Value = str[7]; ugr.Cells["STD_NAME"].Value = str[4]; ugr.Cells["STEELNAME"].Value = str[5]; ugr.Cells["STD_STYLE_DESC"].Value = str[6]; } //ISCHECK ISJUDGE ISQUOTE //"是否判定"或"是否报出"存在的前提是"是否检验" else if (e.Cell.Column.Key.Equals("ISCHECK")) { if (!Convert.ToBoolean(e.Cell.Value) && e.Cell.Row.Cells["PHY_CODE_MIN"].Value.ToString() != "C0156") { e.Cell.Row.Cells["ISJUDGE"].Value = false; e.Cell.Row.Cells["ISQUOTE"].Value = false; } } else if (e.Cell.Column.Key.Equals("ISJUDGE") || e.Cell.Column.Key.Equals("ISQUOTE")) { if (Convert.ToBoolean(e.Cell.Value) && e.Cell.Row.Cells["PHY_CODE_MIN"].Value.ToString() != "C0156") { e.Cell.Row.Cells["ISCHECK"].Value = true; } } //输入百分比时 自动算出附加标准范围值 else if (e.Cell.Column.Key.Equals("ADDPERCENT")) { UltraGridRow row = ultraGrid1.ActiveRow; string stdmin_sign = row.Cells["STDMIN_SIGN"].Value.ToString(); string stdmin = row.Cells["STDMIN"].Value.ToString(); string stdmax_sign = row.Cells["STDMAX_SIGN"].Value.ToString(); string stdmax = row.Cells["STDMAX"].Value.ToString(); if (e.Cell.Value.ToString() != "") { if (stdmin != "") { row.Cells["ADDSTD_MIN_SIGN"].Value = stdmin_sign; double addStdMin = Convert.ToDouble(stdmin) * Convert.ToDouble(e.Cell.Value) / 100; row.Cells["ADDSTD_MIN"].Value = Math.Round(addStdMin, 0); } if (stdmax != "") { row.Cells["ADDSTD_MAX_SIGN"].Value = stdmax_sign; double addStdMax = Convert.ToDouble(stdmax) * Convert.ToDouble(e.Cell.Value) / 100; row.Cells["ADDSTD_MAX"].Value = Math.Round(addStdMax, 0); ; } } } //标准下限符号改变时 else if (e.Cell.Column.Key.Equals("STDMIN_SIGN")) { UltraGridRow row = ultraGrid1.ActiveRow; string percent = row.Cells["ADDPERCENT"].Value.ToString(); if (percent != "") { row.Cells["ADDSTD_MIN_SIGN"].Value = e.Cell.Value.ToString(); } if (ugr.Cells["STD_CHOOSE"].Value.ToString() != "") { ugr.Cells["STDMIN_SIGN2"].Value = e.Cell.Value; } if (e.Cell.Value.ToString() == "=") { e.Cell.Row.Cells["STDMIN"].EditorComponent = ultraTextEditor2; } else { e.Cell.Row.Cells["STDMIN"].EditorComponent = null; } } //标准下限值改变时 else if (e.Cell.Column.Key.Equals("STDMIN")) { UltraGridRow row = ultraGrid1.ActiveRow; string percent = row.Cells["ADDPERCENT"].Value.ToString(); if (percent != "" && e.Cell.Value.ToString() != "" && StringUtil.IsNumber(e.Cell.Value.ToString())) { double addStdMin = Convert.ToDouble(e.Cell.Value.ToString()) * Convert.ToDouble(percent) / 100; row.Cells["ADDSTD_MIN"].Value = Math.Round(addStdMin, 0); } } //标准上限符号改变时 else if (e.Cell.Column.Key.Equals("STDMAX_SIGN")) { UltraGridRow row = ultraGrid1.ActiveRow; string percent = row.Cells["ADDPERCENT"].Value.ToString(); if (percent != "") { row.Cells["ADDSTD_MAX_SIGN"].Value = e.Cell.Value.ToString(); } if (ugr.Cells["STD_CHOOSE"].Value.ToString() != "") { ugr.Cells["STDMAX_SIGN2"].Value = e.Cell.Value; } } //标准上限值改变时 else if (e.Cell.Column.Key.Equals("STDMAX")) { UltraGridRow row = ultraGrid1.ActiveRow; string percent = row.Cells["ADDPERCENT"].Value.ToString(); if (percent != "" && e.Cell.Value.ToString() != "" && StringUtil.IsNumber(e.Cell.Value.ToString())) { double addStdMax = Convert.ToDouble(e.Cell.Value.ToString()) * Convert.ToDouble(percent) / 100; row.Cells["ADDSTD_MAX"].Value = Math.Round(addStdMax, 0); } } //附加标准条件为空时 else if (e.Cell.Column.Key.Equals("ADDCONDITION")) { UltraGridRow row = ultraGrid1.ActiveRow; if (e.Cell.Value.ToString() == " ") { row.Cells["ADDSTDCON_CODE"].Value = ""; row.Cells["ADDSTD_MIN_SIGN"].Value = ""; row.Cells["ADDSTD_MIN"].Value = ""; row.Cells["ADDSTD_MAX_SIGN"].Value = ""; row.Cells["ADDSTD_MAX"].Value = ""; row.Cells["ADDPERCENT"].Value = ""; } } //取大/小值为空时 else if (e.Cell.Column.Key.Equals("STD_CHOOSE")) { UltraGridRow row = ultraGrid1.ActiveRow; if (e.Cell.Value.ToString() == "") { row.Cells["STDMIN_SIGN2"].Value = ""; row.Cells["STDMIN2"].Value = ""; row.Cells["STDMAX_SIGN2"].Value = ""; row.Cells["STDMAX2"].Value = ""; } else { row.Cells["STDMIN_SIGN2"].Value = row.Cells["STDMIN_SIGN"].Value; row.Cells["STDMAX_SIGN2"].Value = row.Cells["STDMAX_SIGN"].Value; } } else if (e.Cell.Column.Key.Equals("CHC")) //选择 { if (Convert.ToBoolean(e.Cell.Value)) { //isSelect += 1; for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { e.Cell.Row.Cells[i].Activation = Activation.AllowEdit; } if (e.Cell.Row.HasParent()) { if (e.Cell.Row.Cells["STDMIN_SIGN"].Value.ToString() == "=") { e.Cell.Row.Cells["STDMIN"].EditorComponent = ultraTextEditor2; } if (e.Cell.Row.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE") { e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit; } else { e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly; } } else { e.Cell.Row.Cells["PSC_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; e.Cell.Row.Cells["PSC_DESC"].Activation = Activation.ActivateOnly; } } else { //isSelect -= 1; for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { if (!e.Cell.Row.Cells[i].Column.Key.Equals("CHC")) e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly; } } } else if (e.Cell.Column.Key.Equals("PHY_TYPE")) { if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE") { if (e.Cell.Row.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE") { e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit; } else { e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly; } } } else if (e.Cell.Column.Key.Equals("GRADECODE")) { e.Cell.Row.Cells["GRADENAME"].Value = e.Cell.Text; } else if (e.Cell.Column.Key.Equals("STEELCODE")) { e.Cell.Row.Cells["STEELNAME"].Value = e.Cell.Text; } ultraGrid1.UpdateData(); SavePic(e); } private DataRow GetComMscByPk(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByPk", new object[] { msc }, ob); return dt.Rows[0]; } /// /// 弹出扣型选择界面 /// /// /// private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value)) { UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow; FrmModel frms = new FrmModel(); frms.FrmOb = this.ob; frms.Desc = row.Cells["MODEL_DESC"].Value.ToString(); frms.ShowDialog(); row.Cells["MODEL_CODE"].Value = frms.Code; row.Cells["MODEL_DESC"].Value = frms.Desc; } if (e.Cell.Column.Key.Equals("CHKNK")) { _frmMaterialStd = new FrmMaterialStandard(); _frmMaterialStd.PopupLoad("5", ob); _frmMaterialStd.UltraPanel1.Visible = false; _frmMaterialStd.ultraToolbarsManager1.Visible = true; _frmMaterialStd.Msc = msc; _frmMaterialStd.StrPic = ultraGrid1.ActiveRow.GetValue("PIC"); _frmMaterialStd.CodeJg = ""; _frmMaterialStd.DoQuery2(); _frmMaterialStd.EditGrid(); if (_frmMaterialStd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataRow CurRow, NewRow; for (int i = 0; i < _frmMaterialStd.dataTable1.Rows.Count; i++) { CurRow = _frmMaterialStd.dataTable1.Rows[i]; NewRow = dataTable1.NewRow(); if (!_frmMaterialStd.Ids.Contains(CurRow["PIC"].ToString2())) { continue; } //赋值序号 CurRow["IS_PRODUCT_CHECK"] = "False"; for (int j = 0; j < _frmMaterialStd.dataTable1.Columns.Count; j++) { try { if (dataTable1.Columns.Contains(_frmMaterialStd.dataTable1.Columns[j].ColumnName)) { if (_frmMaterialStd.dataTable1.Columns[j].ColumnName == "PIC") { NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("PIC"); } else { NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = CurRow[j]; } } } catch { } } dataTable1.Rows.Add(NewRow); } ultraGrid1.UpdateData(); } } if (e.Cell.Column.Key.Equals("UnboundColumn1") && e.Cell.Row.ChildBands[0].Rows.Count > 0) { int k = 0; foreach (UltraGridRow child in e.Cell.Row.ChildBands[0].Rows) { if (child.Cells["VALIDFLAGNAME"].Value.ToString() == "") { k += 1; } } if (k != 0) { MessageUtil.ShowWarning("子表存在未保存的记录,请先保存!"); return; } DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("PIC"), new DataColumn("PHY_CODE_MIN"), new DataColumn("PHY_NAME_MIN"), new DataColumn("STD_CODE"), new DataColumn("STD_NAME"), new DataColumn("STEELCODE"), new DataColumn("STEELNAME"), new DataColumn("PRODUCCODE"), new DataColumn("PRODUCNAME"), new DataColumn("USE_DESC"), new DataColumn("ITEM_CODE_F"), new DataColumn("ITEM_NAME_F"), new DataColumn("ITEM_CODE_C"), new DataColumn("ITEM_NAME_C"), new DataColumn("ITEM_CODE_W"), new DataColumn("ITEM_NAME_W"), new DataColumn("PSC"), new DataColumn("DIMATER"), new DataColumn("HEIGHT")}); string steelCode = ""; string steelName = ""; string producCode = ""; string producName = ""; string useDesc = ""; string stdCode = ""; string stdName = ""; if (msc != "") { DataRow comMsc = GetComMscByPk(msc); steelCode = comMsc["STEELCODE"].ToString(); steelName = comMsc["STEELNAME"].ToString(); producCode = comMsc["PRODUCCODE"].ToString(); producName = comMsc["PRODUCNAME"].ToString(); useDesc = comMsc["USE_DESC"].ToString(); stdCode = comMsc["STD_CODE"].ToString(); stdName = comMsc["STD_NAME"].ToString(); } string pic = e.Cell.Row.Cells["PIC"].Value.ToString(); for (int i = 0; i < e.Cell.Row.ChildBands[0].Rows.Count; i++) { if (e.Cell.Row.ChildBands[0].Rows[i].Cells["ISCHECK"].Value.ToString() == "False") continue; string phyCodeMin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_CODE_MIN"].Value.ToString(); string phyNameMin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MIN"].Value.ToString(); string itemCodeF = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_F"].Value.ToString(); string itemNameF = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_F"].Value.ToString(); string itemCodeC = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_S"].Value.ToString(); string itemNameC = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_S"].Value.ToString(); string itemCodeW = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_W"].Value.ToString(); string itemNameW = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_W"].Value.ToString(); DataRow[] dr = dt.Select("PIC='" + pic + "' AND PHY_NAME_MIN='" + phyNameMin + "'"); dr = dt.Rows.Cast().Where(a => (a["PIC"].ToString() == pic && a["PHY_NAME_MIN"].ToString() == phyNameMin && a["ITEM_CODE_F"].ToString() == itemCodeF && a["ITEM_CODE_C"].ToString() == itemCodeC && a["ITEM_CODE_W"].ToString() == itemCodeW)).ToArray(); if (dr.Length <= 0) { Object[] obj ={pic, phyCodeMin, phyNameMin, stdCode, stdName, steelCode, steelName, producCode, producName, useDesc, itemCodeF, itemNameF, itemCodeC, itemNameC, itemCodeW, itemNameW}; dt.Rows.Add(obj); } } FrmPhySample fps = new FrmPhySample(ob, dt, ordLnPk, this.CustomInfo); fps.ShowDialog(); } if (e.Cell.Column.Key.Equals("COUNT") && e.Cell.Row.ChildBands[0].Rows.Count > 0) { FrmMaterialView fmv = new FrmMaterialView(); DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { new DataColumn("PHY_NAME_MAX"), new DataColumn("PHY_NAME_MIN"), new DataColumn("PHY_NAME"), new DataColumn("ITEM_NAME_F"), new DataColumn("ITEM_NAME_W"), new DataColumn("ITEM_NAME_S"), }); for (int i = 0; i < e.Cell.Row.ChildBands[0].Rows.Count; i++) { string phynamemax = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MAX"].Value.ToString(); string phynamemin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MIN"].Value.ToString(); string phyname = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME"].Value.ToString(); string itemnamef = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_F"].Value.ToString(); string itemnamew = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_W"].Value.ToString(); string itemnames = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_S"].Value.ToString(); DataRow[] dr = dt.Select("PHY_NAME_MAX='" + phynamemax + "' AND PHY_NAME_MIN='" + phynamemin + "' AND PHY_NAME='" + phyname + "' AND ITEM_NAME_F='" + itemnamef + "' AND ITEM_NAME_W='" + itemnamew + "' AND ITEM_NAME_S='" + itemnames + "'"); if (dr.Length <= 0) { Object[] obj = { phynamemax, phynamemin, phyname, itemnamef, itemnamew, itemnames }; dt.Rows.Add(obj); } } fmv.Dt = dt; fmv.ShowDialog(); } } private DataRow GetComPscByPk(string psc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk", new object[] { psc }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]; } else { return null; } } /// /// 查询 /// private void DoQuery() { string style = "1"; if (this.CustomInfo == "2") { style = "2"; } if (this.CustomInfo == "3") { style = "3"; } string pic_code = ""; if (ultraCheckEditor1.Checked) pic_code = ultraTextEditor1.Text.Trim(); else if (_strPic != "") { pic_code = _strPic; } else { pic_code = "%"; } ArrayList listParent = new ArrayList(); string codeJg2 = codeJg == "DefaultValue" ? "" : codeJg; listParent.AddRange(validflag, stdCode, pic_code, msc, codeJg); //主表查询 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterial", new Object[] { listParent, style, steelCodes, producCode, steelcodeNk, processCode, modelCode }, this.ob); dataTable1.Clear(); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //从表查询 ArrayList list = new ArrayList(); list.Add(validflag); list.Add(stdCode); list.Add(msc); list.Add(codeJg); DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialC", new Object[] { CustomInfo, list, steelCodes, producCode, steelcodeNk, processCode, modelCode }, this.ob); dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC"); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true); //不同颜色区分是否有效数据 QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效"); setGrid(); _pic = 1; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); foreach (UltraGridRow row in ultraGrid1.Rows) { row.Cells["CHKNK"].Value = "选择"; } //isSelect = 0; //if (validflag == "0") //{ // foreach (UltraGridRow row in ultraGrid1.Rows) // { // if (row.ChildBands[0].Rows.Count > 0) // { // foreach (UltraGridRow crow in row.ChildBands[0].Rows) // { // if (!crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("有效")) // row.ExpandAll(); // } // } // } //} ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); //清空复制数据 //_copyedRows.Clear(); } public void QueryPurchaseAgreement(string stdCodeNk) { dataTable1.Clear(); dataTable2.Clear(); DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getPurchaseAgreementPic", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable2, true); DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getPurchaseAgreementPhy", new object[] { stdCodeNk }, ob); GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable1, true); QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效"); QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); } private int GetGridSelectCount() { foreach (UltraGridRow row in ultraGrid1.Rows) { if (row.Cells["CHC"].Value.ToString() == "True") { return 1; } UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0], new string[] { "CHC" }, new string[] { "True" }); if (rows.Length > 0) { return 1; } } return 0; } private DataRow GetComBaseStdRowByPk(string stdCode) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk", new object[] { stdCode }, ob); return dt.Rows[0]; } /// /// 保存 /// private void DoSave() { ultraGrid1.UpdateData(); if (GetGridSelectCount() == 0) { MessageBox.Show("请选择记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string acceptBid = "1"; DataRow comBaseStdRow = null; if (CustomInfo == "2") { comBaseStdRow = GetComBaseStdRowByPk(stdCode); /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua") { MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!"); return; }*/ acceptBid = comBaseStdRow["ACCEPT_BID"].ToString(); } ArrayList addBase = new ArrayList(); ArrayList addChild = new ArrayList(); ArrayList updateBase = new ArrayList(); ArrayList updateChild = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { //主表操作 DataRow rowPic = null; UltraGridRow ugr = ultraGrid1.Rows[i]; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAGNAME") != "") { rowPic = GetMscPicByPic(ugr.GetValue("PIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /* if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; }*/ } ArrayList list = GetBaseData(ugr); if (list == null) { MessageBox.Show("记录[" + (i + 1) + "]:" + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //根据是否存在创建人来判断是否增加或者修改 if (ugr.Cells["VALIDFLAGNAME"].Text.Equals("")) addBase.Add(list); else { if (rowPic != null && (rowPic["VALIDFLAG"].ToString() == "2" || rowPic["VALIDFLAG"].ToString() == "3")) { MessageUtil.ShowWarning("提交审核或已审核记录无法修改!"); return; } list.Add(ugr.Cells["PIC"].Text.Trim().ToString()); updateBase.Add(list); } } //从表操作 if (ugr.HasChild()) { for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++) { UltraGridRow ugrC = ugr.ChildBands[0].Rows[j]; if (Convert.ToBoolean(ugrC.Cells["CHC"].Value)) { if (ugr.GetValue("VALIDFLAGNAME") != "") { rowPic = GetMscPicByPic(ugr.GetValue("PIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugrC.Activate(); return; }*/ } if (ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "" || (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "" && ugr.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")) { ArrayList list = GetChildData(ugrC, rowPic); if (list == null) { MessageBox.Show("记录[" + (j + 1) + "] " + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //根据是否存在创建人来判断是否增加或者修改 if (ugrC.Cells["VALIDFLAGNAME"].Text.Equals("")) addChild.Add(list); else { list.Add(ugrC.Cells["PIC"].Text.Trim().ToString()); list.Add(ugrC.Cells["INDEX_SEQ"].Text.Trim().ToString()); updateChild.Add(list); } } else { if (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "" && ugr.Cells["CHC"].Value.ToString().ToUpper() == "FALSE") { MessageBox.Show("新增的从记录必须依赖于主记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } } } int count = 0; if (addBase.Count > 0 || updateBase.Count > 0 || addChild.Count > 0 || updateChild.Count > 0) { if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.saveComMaterial", new Object[] { addBase, updateBase, addChild, updateChild, acceptBid }, this.ob); if (count > 0) { MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); ExpandRow(); PicCode.Clear(); } } } /// /// 保存模板 /// private void SaveTemplate() { ArrayList addChild = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { //主表操作 DataRow rowPic = null; UltraGridRow ugr = ultraGrid1.Rows[i]; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (ugr.HasChild()) { for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++) { UltraGridRow ugrC = ugr.ChildBands[0].Rows[j]; if (Convert.ToBoolean(ugrC.Cells["CHC"].Value)) { rowPic = GetMscPicByPic(ugr.GetValue("PIC")); ArrayList list = GetChildData(ugrC, rowPic); if (list == null) { MessageBox.Show("记录[" + (j + 1) + "] " + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } addChild.Add(list); } } } } } if (addChild.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.SaveTemplate", new Object[] { addChild }, this.ob); if (count > 0) { MessageBox.Show("保存模板成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } /// /// 删除模板 /// private void DeleteTemplate() { List ids = null; ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.Rows[0]; //从表操作 if (ugr.HasChild()) { ids = ugr.ChildBands[0].Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Select(p => p.GetValue("ID")).ToList(); } if (ids.Count > 0) { int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.DeleteTemplate", new Object[] { ids }, this.ob); if (count > 0) { DoQuery1(); MessageBox.Show("删除模板成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } /// /// 删除或者恢复 /// /// private void DoDeleteOrResume(Boolean flag) { ultraGrid1.UpdateData(); if (GetGridSelectCount() == 0) { MessageBox.Show("请选择记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DataRow comBaseStdRow = null; if (CustomInfo == "2") { comBaseStdRow = GetComBaseStdRowByPk(stdCode); /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!"); return; }*/ } ArrayList listBase = new ArrayList(); ArrayList listChild = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { UltraGridRow ugr = ultraGrid1.Rows[i]; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { if (CheckAuthority(ugr) == false) { MessageUtil.ShowWarning(errMessage); return; } DataRow rowPic = null; if (ugr.GetValue("VALIDFLAGNAME") != "") { rowPic = GetMscPicByPic(ugr.GetValue("PIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugr.Activate(); return; }*/ } if (CheckDataParent(ugr, rowPic, flag) == false) { return; } ArrayList list = GeBasetUpdateData(ugr, flag); if (list == null) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } listBase.Add(list); } if (ugr.HasChild()) { for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++) { UltraGridRow ugrC = ugr.ChildBands[0].Rows[j]; if (Convert.ToBoolean(ugrC.Cells["CHC"].Value)) { DataRow rowPic = null; if (ugr.GetValue("VALIDFLAGNAME") != "") { rowPic = GetMscPicByPic(ugr.GetValue("PIC")); } if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null) { string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005"); /* if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") { MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!"); ugrC.Activate(); return; }*/ } if (CheckAuthority(ugrC) == false) { MessageUtil.ShowWarning(errMessage); return; } if ((ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "无效" && ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "") || (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "无效" && ugr.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")) { ArrayList list = GeBasetUpdateData(ugrC, flag); if (list == null) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (flag) { if (ugrC.ParentRow.Cells["VALIDFLAGNAME"].Value.ToString() != "录入状态" && ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "" && ugrC.ParentRow.Cells["VALIDFLAGNAME"].Value.ToString() != "无效") { MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废"); return; } } list.Add(ugrC.Cells["INDEX_SEQ"].Value.ToString()); listChild.Add(list); } else { if (ugr.Cells["CHC"].Value.ToString().ToUpper() == "FALSE") { if (flag == false) { MessageBox.Show("主记录无效,不能单独恢复从记录,\n请先恢复主记录或主从记录一起恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } } } } int count = 0; if (listBase.Count > 0 || listChild.Count > 0) { if (flag) { if (MessageBox.Show("作废选择记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { if (MessageBox.Show("恢复选择记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.deleteComMaterial", new Object[] { listBase, listChild, flag }, this.ob); if (count > 0) { if (flag) MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DoQuery(); ExpandRow(); PicCode.Clear(); } } } /// /// 删除或者恢复项 /// /// /// private ArrayList GeBasetUpdateData(UltraGridRow ugr, Boolean flag) { ArrayList list = new ArrayList(); string validFlag = "0"; string userName = UserInfo.GetUserName(); if (flag && ugr.Cells["VALIDFLAGNAME"].Text.Equals("无效")) { errMessage = "无效记录不能作废"; return null; } if (flag && (ugr.Cells["VALIDFLAGNAME"].Text.Equals("提交审核") || ugr.Cells["VALIDFLAGNAME"].Text.Equals("已审核"))) { errMessage = "提交审核或已审核记录不能作废"; return null; } if (!flag) { if (ugr.Cells["VALIDFLAGNAME"].Text.Equals("有效")) { errMessage = "有效记录不能恢复"; return null; } validFlag = "1"; userName = ""; } string pic = ugr.Cells["PIC"].Text.Trim().ToString(); list.Add(validFlag); list.Add(userName); list.Add(pic); return list; } /// /// 操作数据 保存从表 /// /// /// private ArrayList GetChildData(UltraGridRow ugr, DataRow rowPic) { if (CheckAuthority(ugr) == false) return null; if (rowPic != null && (rowPic["VALIDFLAG"].ToString() == "2" || rowPic["VALIDFLAG"].ToString() == "3")) { errMessage = "主记录为提交审核或已审核状态时,无法修改"; return null; } ArrayList list = new ArrayList(); string pic = ugr.Cells["PIC"].Text.Trim().ToString(); string index_seq = ugr.Cells["INDEX_SEQ"].Text.Trim().ToString(); if (pic.Equals("") || index_seq.Equals("")) { errMessage = "理化标准索引号与序号不能为空"; return null; } string phy_code_max = ugr.Cells["PHY_CODE_MAX"].Text.Trim().ToString(); string phy_name_max = ugr.Cells["PHY_NAME_MAX"].Text.Trim().ToString(); if (phy_name_max.Equals("")) { errMessage = "请选择检验项目"; ugr.SetCellActive("PHY_NAME_MAX"); return null; } string phy_code_min = ugr.Cells["PHY_CODE_MIN"].Text.Trim().ToString(); string phy_name_min = ugr.Cells["PHY_NAME_MIN"].Text.Trim().ToString(); if (phy_name_min.Equals("")) { errMessage = "请选择试样组"; ugr.SetCellActive("PHY_NAME_MIN"); return null; } string phy_code = ugr.Cells["PHY_CODE"].Text.Trim().ToString(); string phy_name = ugr.Cells["PHY_NAME"].Text.Trim().ToString(); if (phy_name.Equals("")) { errMessage = "请选择检验项"; ugr.SetCellActive("PHY_NAME"); return null; } string item_code_f = ugr.Cells["ITEM_CODE_F"].Value.ToString(); string item_name_f = ugr.Cells["ITEM_NAME_F"].Value.ToString(); string item_code_w = ugr.Cells["ITEM_CODE_W"].Value.ToString(); string item_name_w = ugr.Cells["ITEM_NAME_W"].Value.ToString(); string item_code_s = ugr.Cells["ITEM_CODE_S"].Value.ToString(); string item_name_s = ugr.Cells["ITEM_NAME_S"].Value.ToString(); string ischeck = ugr.Cells["ISCHECK"].Text.Trim().ToString(); if (Convert.ToBoolean(ischeck)) ischeck = "1"; else ischeck = "0"; string isjuge = ugr.Cells["ISJUDGE"].Text; if (Convert.ToBoolean(isjuge)) isjuge = "1"; else isjuge = "0"; string isquote = ugr.Cells["ISQUOTE"].Text; if (Convert.ToBoolean(isquote)) isquote = "1"; else isquote = "0"; string isProductCheck = ugr.GetValue("IS_PRODUCT_CHECK"); if (isProductCheck != "" && Convert.ToBoolean(isProductCheck)) { isProductCheck = "1"; } else { isProductCheck = "0"; } string whole_backlog = ugr.Cells["PHY_TYPE"].Text.Trim().ToString(); if (Convert.ToBoolean(whole_backlog)) whole_backlog = "1"; else whole_backlog = "0"; string phy_formula = ugr.Cells["PHY_FORMULA"].Text.Trim().ToString(); //if (ugr.Cells["RESULT_COUNT"].Value.ToString() == "") //{ // errMessage = "请输入报出结果条数"; // return null; //} string resultcount = ugr.Cells["RESULT_COUNT"].Value.ToString().Trim(); string stdmin_sign = ugr.Cells["STDMIN_SIGN"].Text.Trim(); string stdmin = ugr.Cells["STDMIN"].Value.ToString(); string stdmax_sign = ugr.Cells["STDMAX_SIGN"].Text.Trim(); string stdmax = ugr.Cells["STDMAX"].Value.ToString(); if (stdmin_sign == "=" && (stdmax_sign != "" || stdmax != "")) { errMessage = "标准范围下限符号为'=',不能存在上限"; return null; } if (ugr.Cells["ISJUDGE"].Value.ToString() == "True") { if (stdmin_sign.Equals("") && stdmax_sign.Equals("")) { errMessage = "请选择标准范围(默认)下限符号或者上限符号"; return null; } } if (!stdmin_sign.Equals("") && stdmin.Equals("")) { errMessage = "请输入标准范围(默认)下限值"; return null; } if (stdmin_sign.Equals("") && !stdmin.Equals("")) { errMessage = "请选择标准范围(默认)下限符号"; return null; } if (!stdmax_sign.Equals("") && stdmax.Equals("")) { errMessage = "请输入标准范围(默认)上限值"; return null; } if (stdmax_sign.Equals("") && !stdmax.Equals("")) { errMessage = "已有标准范围(默认)上限值,请选择标准范围(默认)上限符号"; return null; } if (whole_backlog.Equals("0")) { if (!stdmin.Equals("") && !StringUtil.IsNumber(stdmin) && !stdmin_sign.Equals("=")) { errMessage = "标准范围(默认)下限值由数字组成"; return null; } if (!stdmax.Equals("") && !StringUtil.IsNumber(stdmax)) { errMessage = "标准范围(默认)上限值由数字组成"; return null; } } else { if (!stdmin.Equals("") && !stdmin_sign.Equals("=") && !QcmBaseCommon.CheckCompositeFormula(stdmin)) { errMessage = "标准范围(默认)下限值,输入公式不合法,请重新输入"; return null; } if (!stdmax.Equals("") && !QcmBaseCommon.CheckCompositeFormula(stdmax)) { errMessage = "标准范围(默认)上限值,输入公式不合法,请重新输入"; return null; } } if (!stdmin.Equals("")) { if (stdmin.StartsWith(".")) stdmin = "0" + stdmin; } if (!stdmax.Equals("")) { if (stdmax.StartsWith(".")) stdmax = "0" + stdmax; } if (!stdmin.Equals("") && !stdmax.Equals("")) //&& Convert.ToDouble(stdmin) > Convert.ToDouble(stdmax) { int i = QcmBaseInfo.CheckStdData(stdmin_sign, stdmax_sign, stdmin, stdmax); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "标准范围(默认)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "标准范围(默认)下限值不能大于上限值"; return null; } } string judge_basis = ugr.Cells["JUDGE_BASIS"].Text.Trim().ToString(); if (judge_basis.Equals("")) { errMessage = "判断依据不能为空"; return null; } if (judge_basis.Equals("最小值")) judge_basis = "A"; else if (judge_basis.Equals("最大值")) judge_basis = "B"; else if (judge_basis.Equals("平均值")) judge_basis = "C"; else judge_basis = "D"; string stdmin_sign2 = ugr.Cells["STDMIN_SIGN2"].Value.ToString(); string stdmin2 = ugr.Cells["STDMIN2"].Value.ToString(); string stdmax_sign2 = ugr.Cells["STDMAX_SIGN2"].Value.ToString(); string stdmax2 = ugr.Cells["STDMAX2"].Value.ToString(); string stdchoosecode = ugr.Cells["STD_CHOOSE"].Value.ToString(); string stdchoose = ugr.Cells["STD_CHOOSE"].Text.Trim(); if (stdmin_sign2 == "=" && (stdmax_sign2 != "" || stdmax2 != "")) { errMessage = "标准范围(二)下限符号为'=',不能存在上限"; return null; } if (stdchoose != "") //取大/小值 { if (stdmin_sign2.Equals("") && stdmax_sign2.Equals("")) { errMessage = "请选择标准范围(二)下限符号或者上限符号"; return null; } if (!stdmin_sign2.Equals("") && stdmin2.Equals("")) { errMessage = "请输入标准范围(二)下限值"; return null; } if (stdmin_sign2.Equals("") && !stdmin2.Equals("")) { errMessage = "标准范围(默认)不存在下限符号,则标准范围(二)下限不能存在值!"; ugr.Cells["STDMIN2"].Activate(); return null; } if (!stdmax_sign2.Equals("") && stdmax2.Equals("")) { errMessage = "请输入标准范围(二)上限值"; return null; } if (stdmax_sign2.Equals("") && !stdmax2.Equals("")) { errMessage = "标准范围(默认)不存在上限符号,则标准范围(二)上限不能存在值!"; ugr.Cells["STDMAX2"].Activate(); return null; } if (whole_backlog.Equals("0")) { if (!stdmin2.Equals("") && !StringUtil.IsNumber(stdmin2) && !stdmin_sign2.Equals("=")) { errMessage = "标准范围(二)下限值由数字组成"; return null; } if (!stdmax2.Equals("") && !StringUtil.IsNumber(stdmax2)) { errMessage = "标准范围(二)上限值由数字组成"; return null; } } else { if (!stdmin2.Equals("") && !stdmin_sign2.Equals("=") && !StringUtil.IsNumber(stdmin2) && !QcmBaseCommon.CheckCompositeFormula(stdmin2)) { errMessage = "标准范围(二)下限值输入公式不合法,请重新输入"; return null; } if (!stdmax2.Equals("") && !StringUtil.IsNumber(stdmax2) && !QcmBaseCommon.CheckCompositeFormula(stdmax2)) { errMessage = "标准范围(二)上限值输入公式不合法,请重新输入"; return null; } } if (!stdmin2.Equals("")) { if (stdmin2.StartsWith(".")) stdmin2 = "0" + stdmin2; } if (!stdmax2.Equals("")) { if (stdmax2.StartsWith(".")) stdmax2 = "0" + stdmax2; } if (!stdmin2.Equals("") && !stdmax2.Equals("")) //&& Convert.ToDouble(stdmin2) > Convert.ToDouble(stdmax2) { int i = QcmBaseInfo.CheckStdData(stdmin_sign2, stdmax_sign2, stdmin2, stdmax2); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "标准范围(二)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "标准范围(二)下限值不能大于上限值"; return null; } } } string deliverystate = ugr.Cells["DELIVERYSTATE"].Value.ToString(); string model_code = ugr.Cells["MODEL_CODE"].Text.Trim().ToString(); string model_desc = ugr.Cells["MODEL_DESC"].Text.Trim().ToString(); string stdmemo = ugr.Cells["STDMEMO"].Text.Trim().ToString(); string size_code2 = ugr.Cells["SIZE_CODE2"].Text.Trim().ToString(); string size_name2 = ugr.Cells["SIZE_NAME2"].Text.Trim().ToString(); string size_min_sign2 = ugr.Cells["SIZE_MIN_SIGN2"].Text.Trim().ToString(); string size_min2 = ugr.Cells["SIZE_MIN2"].Value.ToString(); string size_max_sign2 = ugr.Cells["SIZE_MAX_SIGN2"].Text.Trim().ToString(); string size_max2 = ugr.Cells["SIZE_MAX2"].Value.ToString(); string size_code = ugr.Cells["SIZE_CODE"].Text.Trim().ToString(); string size_name = ugr.Cells["SIZE_NAME"].Text.Trim().ToString(); string size_min_sign = ugr.Cells["SIZE_MIN_SIGN"].Text.Trim().ToString(); string size_min = ugr.Cells["SIZE_MIN"].Value.ToString(); string size_max_sign = ugr.Cells["SIZE_MAX_SIGN"].Text.Trim().ToString(); string size_max = ugr.Cells["SIZE_MAX"].Value.ToString(); string spec_jg = ugr.Cells["SPEC_JG"].Text.Trim().ToString(); string spec_jg_desc = ugr.Cells["SPEC_JG_DESC"].Text.Trim().ToString(); if (size_min_sign2 == "=" && (size_max_sign2 != "" || size_max2 != "")) { errMessage = "限制规格(一)下限符号为'=',不能存在上限"; return null; } if (size_min_sign == "=" && (size_max_sign != "" || size_max != "")) { errMessage = "限制规格(二)下限符号为'=',不能存在上限"; return null; } if (!spec_jg.Equals("") && !spec_jg_desc.Equals("-1")) { if (!size_name2.Equals("") || !size_name.Equals("")) { errMessage = "接箍描述与限制规格不能同时存在"; return null; } } if (!size_name2.Equals("")) { if (size_min_sign2.Equals("") && size_max_sign2.Equals("")) { errMessage = "请选择限制规格(一)下限符号或者上限符号"; return null; } if (!size_min_sign2.Equals("") && size_min2.Equals("")) { errMessage = "存在限制规格(一)下限符号,下限值不能为空"; return null; } if (size_min_sign2.Equals("") && !size_min2.Equals("")) { errMessage = "存在限制规格(一)下限值,下限符号不能为空"; return null; } if (!size_max_sign2.Equals("") && size_max2.Equals("")) { errMessage = "存在限制规格(一)上限符号,上限值不能为空"; return null; } if (size_max_sign2.Equals("") && !size_max2.Equals("")) { errMessage = "存在限制规格(一)上限值,上限符号不能为空"; return null; } if (!size_min2.Equals("") && !StringUtil.IsNumber(size_min2) && !size_min_sign2.Equals("=")) { errMessage = "限制规格(一)下限值由数字组成"; return null; } if (!size_max2.Equals("") && !StringUtil.IsNumber(size_max2)) { errMessage = "限制规格(一)上限值由数字组成"; return null; } if (!size_min2.Equals("") && !size_max2.Equals("")) //&& Convert.ToDouble(size_max2) < Convert.ToDouble(size_min2) { int i = QcmBaseInfo.CheckStdData(size_min_sign2, size_max_sign2, size_min2, size_max2); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "限制规格(一)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "限制规格(一)下限值不能大于上限值"; return null; } } } else { if (size_max_sign2 != "" || size_min_sign2 != "" || size_min2 != "" || size_max2 != "") { errMessage = "限制规格(一)描述不存在!"; return null; } } if (!size_min2.Equals("")) { if (size_min2.StartsWith(".")) size_min2 = "0" + size_min2; } if (!size_max2.Equals("")) { if (size_max2.StartsWith(".")) size_max2 = "0" + size_max2; } if (!size_name.Equals("")) { if (size_min_sign.Equals("") && size_max_sign.Equals("")) { errMessage = "限制规格(二)下限符号与上限符号必须存在一项"; return null; } if (!size_min_sign.Equals("") && size_min.Equals("")) { errMessage = "存在限制规格(二)下限符号,下限值不能为空"; return null; } if (size_min_sign.Equals("") && !size_min.Equals("")) { errMessage = "存在限制规格(二)下限值,下限符号不能为空"; return null; } if (!size_max_sign.Equals("") && size_max.Equals("")) { errMessage = "存在限制规格(二)上限符号,上限值不能为空"; return null; } if (size_max_sign.Equals("") && !size_max.Equals("")) { errMessage = "存在限制规格(二)上限值,上限符号不能为空"; return null; } if (!size_max.Equals("") && !StringUtil.IsNumber(size_max)) { errMessage = "限制规格(二)上限值由数字组成"; return null; } if (!size_min.Equals("") && !StringUtil.IsNumber(size_min) && !size_min_sign.Equals("=")) { errMessage = "限制规格(二)下限值由数字组成"; return null; } if (!size_min.Equals("") && !size_max.Equals("")) //&& Convert.ToDouble(size_max) < Convert.ToDouble(size_min) { int i = QcmBaseInfo.CheckStdData(size_min_sign, size_max_sign, size_min, size_max); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "限制规格(二)下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "限制规格(二)下限值不能大于上限值"; return null; } } } else { if (size_max_sign != "" || size_min_sign != "" || size_min != "" || size_max != "") { errMessage = "限制规格(二)描述不存在!"; return null; } } if (!size_name2.Equals("") && !size_name.Equals("") && size_name.Equals(size_name2)) { errMessage = "限制规格(一)与限制规格(二)描述不能相同"; return null; } if (!size_max.Equals("")) { if (size_max.StartsWith(".")) size_max = "0" + size_max; } if (!size_min.Equals("")) { if (size_min.StartsWith(".")) size_min = "0" + size_min; } // 公式限制条件 string formula = ugr.GetText("FORMULA"); string minF = ugr.GetValue("MIN_F"); string minFSign = ugr.GetValue("MIN_F_SIGN"); string maxF = ugr.GetValue("MAX_F"); string maxFSign = ugr.GetValue("MAX_F_SIGN"); if (formula != "" || minF != "" || minFSign != "" || maxF != "" || maxFSign != "") { string testFormula = formula.Replace("t", "0.01").Replace("D", "0.01"); string testFormula2 = formula.Replace("t", "10000").Replace("D", "10000"); if (formula == "") { errMessage = "请输入公式!"; ugr.SetCellActive("FORMULA"); return null; } else if (testFormula.CompileFormula() == null && testFormula2.CompileFormula() == null) { errMessage = "输入的公式不合法!"; ugr.SetCellActive("FORMULA"); return null; } else if (minF == "" && minFSign != "") { errMessage = "请输入公式下限值!"; ugr.SetCellActive("MIN_F"); return null; } else if (minF != "" && minFSign == "") { errMessage = "请输入公式下限符号!"; ugr.SetCellActive("MIN_F_SIGN"); return null; } else if (maxF == "" && maxFSign != "") { errMessage = "请输入公式上限值!"; ugr.SetCellActive("MAX_F"); return null; } else if (maxF != "" && maxFSign == "") { errMessage = "请输入公式上限符号!"; ugr.SetCellActive("MAX_F_SIGN"); return null; } else if (formula != "" && minF == "" && minFSign == "" && maxF == "" && maxFSign == "") { errMessage = "请输入公式下限符号!"; ugr.SetCellActive("MIN_F_SIGN"); return null; } } else if (minF != "" && maxF != "" && decimal.Parse(minF) >= decimal.Parse(maxF)) { errMessage = "公式下限值不能大于等于公式上限值!"; ugr.SetCellActive("MIN_F"); return null; } string addcondition = ugr.Cells["ADDCONDITION"].Text.Trim(); string addstdcon = ugr.Cells["ADDSTDCON_CODE"].Value.ToString(); string addstd_min_sign = ugr.Cells["ADDSTD_MIN_SIGN"].Value.ToString(); string addstd_min = ugr.Cells["ADDSTD_MIN"].Value.ToString(); string addstd_max_sign = ugr.Cells["ADDSTD_MAX_SIGN"].Value.ToString(); string addstd_max = ugr.Cells["ADDSTD_MAX"].Value.ToString(); string addpercent = ugr.Cells["ADDPERCENT"].Value.ToString(); if (addcondition != "") //存在附加标准约束 { if (addstdcon == "") { errMessage = "请选择附加标准项"; return null; } if (addstd_min_sign == "=" && (addstd_max_sign != "" || addstd_max != "")) { errMessage = "附加标准范围下限符号为'=',不能存在上限"; return null; } if (addstd_min_sign.Equals("") && addstd_max_sign.Equals("")) { errMessage = "请选择附加标准范围下限符号或者上限符号"; return null; } if (!addstd_min_sign.Equals("") && addstd_min.Equals("")) { errMessage = "请输入附加标准范围下限值"; return null; } if (addstd_min_sign.Equals("") && !addstd_min.Equals("")) { errMessage = "请选择附加标准范围下限符号"; return null; } if (!addstd_min_sign.Equals("") && addstd_min.Replace("Value", "1").CompileFormula() == null) { errMessage = "附加标准范围下限值,只能包含附加标准符号'Value'!"; return null; } if (!addstd_max_sign.Equals("") && addstd_max.Equals("")) { errMessage = "请输入附加标准范围上限值"; return null; } if (!addstd_max_sign.Equals("") && addstd_max.Replace("Value", "1").CompileFormula() == null) { errMessage = "附加标准范围上限值,只能包含附加标准符号'Value'!"; return null; } if (addstd_max_sign.Equals("") && !addstd_max.Equals("")) { errMessage = "已有附加标准范围上限值,请选择附加标准范围上限符号"; return null; } //if (!addstd_min.Equals("") && !StringUtil.IsNumber(addstd_min) && !addstd_min_sign.Equals("=")) //{ // errMessage = "附加标准范围下限值由数字组成"; // return null; //} //if (!addstd_max.Equals("") && !StringUtil.IsNumber(addstd_max)) //{ // errMessage = "附加标准范围上限值由数字组成"; // return null; //} if (!addstd_min.Equals("")) { if (addstd_min.StartsWith(".")) addstd_min = "0" + addstd_min; } if (!addstd_max.Equals("")) { if (addstd_max.StartsWith(".")) addstd_max = "0" + addstd_max; } if (!addstd_min.Equals("") && !addstd_max.Equals(""))//&& Convert.ToDouble(addstd_min) > Convert.ToDouble(addstd_max) { int i = QcmBaseInfo.CheckStdData(addstd_min_sign, addstd_max_sign, addstd_min, addstd_max); if (i == 0) { errMessage = "输入的数据不完整"; return null; } if (i == 1) { errMessage = "附加标准范围下限值与上限值相等,上下限符号请选择<=和>="; return null; } if (i == 2) { errMessage = "附加标准范围下限值不能大于上限值"; return null; } } if (addcondition == "符合标准时") addcondition = "1"; else addcondition = "0"; } string userName = UserInfo.GetUserName(); list.Add(pic); list.Add(Convert.ToInt32(index_seq)); list.Add(phy_code_max); list.Add(phy_name_max); list.Add(phy_code_min); list.Add(phy_name_min); list.Add(phy_code); list.Add(phy_name); list.Add(item_code_f); list.Add(item_name_f); list.Add(item_code_w); list.Add(item_name_w); list.Add(item_code_s); list.Add(item_name_s); list.Add(ischeck); list.Add(isjuge); list.Add(isquote); list.Add(whole_backlog); list.Add(phy_formula); list.Add(stdmin_sign); list.Add(stdmin); list.Add(stdmax_sign); list.Add(stdmax); list.Add(judge_basis); list.Add(deliverystate); list.Add(model_code); list.Add(model_desc); list.Add(stdmemo); list.Add(size_code2); list.Add(size_name2); list.Add(size_min_sign2); list.Add(size_min2); list.Add(size_max_sign2); list.Add(size_max2); list.Add(size_code); list.Add(size_name); list.Add(size_min_sign); list.Add(size_min); list.Add(size_max_sign); list.Add(size_max); list.Add(spec_jg); list.Add(spec_jg_desc); list.Add(userName); list.Add(resultcount); list.Add(addcondition); list.Add(addstdcon); list.Add(addstd_min_sign); list.Add(addstd_min); list.Add(addstd_max_sign); list.Add(addstd_max); list.Add(addpercent); list.Add(stdmin_sign2); list.Add(stdmin2); list.Add(stdmax_sign2); list.Add(stdmax2); list.Add(stdchoosecode); list.Add(ugr.Cells["GUID"].Value.ToString()); list.Add((ugr.GetValue("BILLET_SAMPLE") == "True" ? "1" : "0")); list.Add(ugr.GetValue("GROUP_SEQ")); list.Add(formula); list.Add(minF); list.Add(minFSign); list.Add(maxF); list.Add(maxFSign); list.Add(isProductCheck); return list; } private DataTable GetMscTabByMsc(string msc) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc", new object[] { msc }, ob); return dt; } private string GetMscByPic(string pic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComPicByPic", new object[] { pic }, ob); if (dt.Rows.Count > 0) { return dt.Rows[0]["MSC"].ToString(); } return ""; } private DataRow GetMscPicByPic(string pic) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComPicByPic", new object[] { pic }, ob); if (dt.Rows.Count == 0) { return null; } else { return dt.Rows[0]; } } private bool CheckAuthority(UltraGridRow row) { if (CustomInfo == "1") { string mscOld; if (row.GetValue("VALIDFLAGNAME") != "") { mscOld = GetMscByPic(row.GetValue("PIC")); } else { mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC"); } DataTable dtMsc = GetMscTabByMsc(mscOld); //if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin") //{ // errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!"; // row.Activate(); // return false; //} } return true; } /// /// 操作数据 主表保存 /// /// ultraGrid行 /// private ArrayList GetBaseData(UltraGridRow ugr) { ArrayList list = new ArrayList(); string pic = ugr.Cells["PIC"].Value.ToString(); string psc = ""; if (ugr.Cells["PSC"].Text != null) psc = ugr.Cells["PSC"].Text.ToString(); string stdstyle = ugr.Cells["STDSTYLE"].Value.ToString(); if (stdstyle.Equals("内控")) { stdstyle = "N"; } else if (stdstyle.Equals("订货标准")) stdstyle = "G"; else if (stdstyle.Equals("协议标准")) stdstyle = "X"; else if (stdstyle.ToUpper().Equals("ALPHA")) stdstyle = "K"; else stdstyle = ""; if (stdstyle.Equals("")) { errMessage = "标准类型不能为空,请重新选择产品规范码或者内控标准名称"; return null; } if (CheckAuthority(ugr) == false) return null; string msc = ugr.Cells["MSC"].Text; string std_code_nk = ugr.Cells["STD_CODE_NK"].Value.ToString(); string std_name_nk = ugr.Cells["STD_NAME_NK"].Value.ToString(); string process_code = ugr.Cells["PROCESS_CDOE"].Value.ToString(); string process_desc = ugr.Cells["PROCESS_DESC"].Text.ToString(); string memo = ugr.Cells["MEMO"].Value.ToString(); string userName = UserInfo.GetUserName(); string modelcode = ugr.Cells["MODEL_CODE"].Value.ToString(); string modeldesc = ugr.Cells["MODEL_DESC"].Value.ToString(); string producHead = ugr.GetValue("PRODUC_HEAD"); string batchLoca = ugr.GetValue("BATCH_LOCA"); string steelcodeNk = ugr.GetValue("STEELCODE_NK"); string steelnameNk = ugr.GetValue("STEELNAME_NK"); string modelCodeNk = ugr.GetValue("MODEL_CODE_NK"); string modelDescNk = ugr.GetValue("MODEL_DESC_NK"); string produccode = ugr.GetValue("PRODUCCODE_NK"); string producname = ugr.GetValue("PRODUCNAME_NK"); if (!psc.Equals("")) { if (!std_name_nk.Equals("") || !process_desc.Equals("")) { errMessage = "存在产品规范码,不能选择内控标准名称和适用工序"; return null; } } if (!std_name_nk.Equals("") || !process_desc.Equals("")) { if (!psc.Equals("")) { errMessage = "存在内控标准名称或者适用工序,不能选择产品规范码"; return null; } } String steelCode = ugr.Cells["STEELCODE"].Value == null ? "" : ugr.Cells["STEELCODE"].Value.ToString(); String steeeName = ugr.Cells["STEELNAME"].Text; String gradeCode = ugr.Cells["GRADECODE"].Value == null ? "" : ugr.Cells["GRADECODE"].Value.ToString(); String gradeName = ugr.Cells["GRADENAME"].Text; string impactId = ugr.Cells["IMPACT_ID"].Value.ToString(); string stretchPlan = ugr.Cells["STRETCH_PLAN"].Value.ToString(); //if (CustomInfo == "2" && gradeCode == "") //{ // if (ugr.GetValue("CHC") == "True" && ugr.Cells["GRADECODE"].Column.CellActivation == Activation.AllowEdit) // { // errMessage = "请选择钢种!"; // return null; // } //} //if (CustomInfo == "2" && produccode == "") //{ // errMessage = "请选择品名!"; // return null; //} list.Add(pic); list.Add(psc); list.Add(stdstyle); list.Add(std_code_nk); list.Add(std_name_nk); list.Add(process_code); list.Add(process_desc); list.Add(userName); list.Add(memo); list.Add(msc); list.Add(modelcode); list.Add(modeldesc); list.Add(producHead); list.Add(codeJg == "DefaultValue" ? "" : codeJg); list.Add(steelCode); list.Add(steeeName); list.Add(gradeCode); list.Add(gradeName); list.Add(batchLoca); list.Add(steelcodeNk); list.Add(steelnameNk); list.Add(modelCodeNk); list.Add(modelDescNk); list.Add(produccode); list.Add(producname); list.Add(impactId); list.Add(stretchPlan); return list; } private bool CheckDataParent(UltraGridRow ugr, DataRow rowPic, bool flag) { if (!flag) { if (ugr.GetValue("CHC") == "True" && ugr.Cells["GRADECODE"].Column.CellActivation == Activation.AllowEdit && rowPic != null && rowPic["GRADECODE"].ToString() == "") { MessageUtil.ShowWarning("请选择钢种并保存后,再恢复记录!"); return false; } } return true; } /// /// 点击PIC列 弹出对应的取样码的关联界面 /// /// /// private void SavePic(CellEventArgs e) { if (e.Cell.Row.HasParent()) { if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE" && !PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString())) { PicCode.Add(e.Cell.Row.Cells["PIC"].Value.ToString()); } else if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() != "TRUE" && PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString())) { PicCode.Remove(e.Cell.Row.Cells["PIC"].Value.ToString()); //取消按钮 则取消保存的理化标准码 } } else if (e.Cell.Row.ChildBands[0].Rows.Count > 0) { if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE" && !PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString())) { PicCode.Add(e.Cell.Row.Cells["PIC"].Value.ToString()); } } } private void ExpandRow() { foreach (UltraGridRow row in ultraGrid1.Rows) { if (PicCode.Contains(row.Cells["PIC"].Value.ToString())) { row.ExpandAll(); row.Activate(); } } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { //BandComboToGrid(e,null); if (isPasting) { e.Row.SetValue("CHC", "True"); } e.Row.Cells["UnboundColumn1"].Value = "维护"; } private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e) { if (ultraCheckEditor1.Checked) { ultraTextEditor1.ReadOnly = false; } else { ultraTextEditor1.ReadOnly = true; } } private void ultraCheckEditor2_CheckedChanged(object sender, EventArgs e) { if (ultraCheckEditor2.Checked) { validflag = "0"; } else { validflag = "1"; } } private void ultraTextEditor2_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow ugr = ultraGrid1.ActiveRow; if (ugr == null) return; if (ugr.Cells["PHY_NAME"].Text == "") { MessageUtil.ShowWarning("请先选择检验项!"); return; } FrmComMscPhyStdNote fpn = new FrmComMscPhyStdNote(); fpn.Pic = ugr.Cells["PIC"].Value.ToString(); fpn.Index = ugr.Cells["INDEX_SEQ"].Value.ToString(); fpn.NewOb = this.ob; fpn.PhyCode = ugr.Cells["PHY_CODE"].Text; fpn.PhyName = ugr.Cells["PHY_NAME"].Text; fpn.StdMin = ugr.Cells["STDMIN"].Value.ToString(); fpn.StdGuid = ugr.Cells["GUID"].Value.ToString(); fpn.ShowDialog(); this.NoteIndex = fpn.NoteIndex; if (NoteIndex != null) ugr.Cells["STDMIN"].Value = NoteIndex; ugr.Cells["GUID"].Value = fpn.StdGuid; } private void DoQuery1() { //主表查询 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialTemplate", new Object[] { StrPic }, this.ob); dataTable1.Clear(); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //从表查询 DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialTemplateC", new Object[] { StrPic, UserInfo.GetUserName() }, this.ob); dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC"); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true); //不同颜色区分是否有效数据 QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效"); setGrid(); _pic = 1; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); } private void DoQuery2() { //主表查询 DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialNK", new Object[] { msc }, this.ob); dataTable1.Clear(); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true); //从表查询 DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialNKC", new Object[] { msc }, this.ob); dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC"); GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true); //不同颜色区分是否有效数据 QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效"); setGrid(); _pic = 1; QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1); ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); dataTable2.AcceptChanges(); } /// /// 2015/07/15 /// private void InnerChange() { //QcmBaseQuery.NitializeGrade(gradeuce, true, this.ob); //this.Controls.Add(gradeuce); //gradeuce.Visible = false; QcmBaseQuery.NitializeSteel(steeluce, true, this.ob); this.Controls.Add(steeluce); steeluce.Visible = false; UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0]; QcmBaseQuery.BindColumn(steeluce, "STEELCODE", ugb); //QcmBaseQuery.BindColumn(gradeuce, "GRADECODE", ugb); ultraGrid1.DisplayLayout.Bands[1].Columns["UnboundColumn2"].Header.Caption = "内控标准"; ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true; } private void EditGrid() { GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "CHC"); GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1], "CHC"); ultraTextEditor3.ButtonsLeft["template"].Visible = false; ultraTextEditor3.ButtonsRight[0].Visible = false; } FrmMaterialStandard _frmMaterialStd = null; private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (e.Button.Key == "template") { _frmMaterialStd = new FrmMaterialStandard(); _frmMaterialStd.PopupLoad("4", ob); _frmMaterialStd.UltraPanel1.Visible = false; _frmMaterialStd.ultraToolbarsManager1.Visible = true; _frmMaterialStd.Msc = msc; _frmMaterialStd.StrPic = ultraGrid1.ActiveRow.GetValue("PIC"); _frmMaterialStd.CodeJg = ""; _frmMaterialStd.DoQuery1(); _frmMaterialStd.EditGrid(); if (_frmMaterialStd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataRow CurRow, NewRow; for (int i = 0; i < _frmMaterialStd.dataTable1.Rows.Count; i++) { CurRow = _frmMaterialStd.dataTable1.Rows[i]; NewRow = dataTable1.NewRow(); if (!_frmMaterialStd.Ids.Contains(CurRow["ID"].ToString2())) { continue; } int indexSeq = 0; DataRow[] dr = dataTable1.Select("PIC='" + ultraGrid1.ActiveRow.GetValue("PIC") + "'", "INDEX_SEQ DESC"); if (dr.Length > 0) { indexSeq = Convert.ToInt32(dr[0]["INDEX_SEQ"]); } indexSeq += 1; //赋值序号 CurRow["INDEX_SEQ"] = indexSeq; CurRow["ID"] = ""; CurRow["IS_PRODUCT_CHECK"] = "False"; for (int j = 0; j < _frmMaterialStd.dataTable1.Columns.Count; j++) { try { if (dataTable1.Columns.Contains(_frmMaterialStd.dataTable1.Columns[j].ColumnName)) { NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = CurRow[j]; } } catch { } } dataTable1.Rows.Add(NewRow); } // GridHelper.CopyDataToDatatable(ref _frmMaterialStd.dataTable1, ref this.dataTable1, true); ultraGrid1.UpdateData(); } } else { if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC") { string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CDOE"); ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob); if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode", new object[] { this.stdCode }, ob); string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString(); string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(','); for (int i = 0; i < processCodesAry.Length; i++) { if (!stdProcessCodes.Contains(processCodesAry[i].Trim())) { DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode", new object[] { processCodesAry[i].Trim() }, ob); string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString(); MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!"); return; } } ultraGrid1.ActiveRow.SetValue("PROCESS_CDOE", choiceProcessPopup.ProcessCodes); ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs); } } else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK") { FrmRepSteel frmSteel = new FrmRepSteel(); frmSteel.Ob1 = this.ob; frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK"); if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code); ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc); } } else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK") { FrmModel frmModel = new FrmModel(); frmModel.FrmOb = this.ob; frmModel.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK"); frmModel.Desc = ultraGrid1.ActiveCell.Value.ToString(); if (frmModel.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmModel.Code); ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmModel.Desc); } } else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK") { PopupProductName popupProductName = new PopupProductName( ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), this.ob); if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes); ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames); } } else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME_MAX") { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", null, ob); dt.Columns["PHY_TYPE"].Caption = "检验大项"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE"); baseInfoPopup.Text = "检验大项"; baseInfoPopup.LabelTextBox1.Caption = "检验大项"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PHY_NAME_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE")); ultraGrid1.ActiveRow.SetValue("PHY_CODE_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid1.ActiveRow.SetValue("PHY_NAME_MIN", ""); ultraGrid1.ActiveRow.SetValue("PHY_CODE_MIN", ""); ultraGrid1.ActiveRow.SetValue("PHY_NAME", ""); ultraGrid1.ActiveRow.SetValue("PHY_CODE", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", ""); } } else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME_MIN") { string phyCodeMax = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX"); if (phyCodeMax == "") { MessageUtil.ShowWarning("请选检验大项!"); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new object[] { phyCodeMax }, ob); dt.Columns["PHY_TYPE"].Caption = "试样组"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE"); baseInfoPopup.Text = "试样组"; baseInfoPopup.LabelTextBox1.Caption = "试样组"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PHY_NAME_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE")); ultraGrid1.ActiveRow.SetValue("PHY_CODE_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid1.ActiveRow.SetValue("PHY_NAME", ""); ultraGrid1.ActiveRow.SetValue("PHY_CODE", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", ""); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", ""); } } else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME") { string phyCodeMax = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX"); string phyCodeMin = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN"); if (phyCodeMax == "") { MessageUtil.ShowWarning("请选择检验大项"); ultraGrid1.ActiveRow.Cells["PHY_NAME_MAX"].Activate(); return; } else if (phyCodeMin == "") { MessageUtil.ShowWarning("请选择试样组"); ultraGrid1.ActiveRow.Cells["PHY_NAME_MIN"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy", new object[] { phyCodeMax, phyCodeMin }, ob); dt.Columns["PHY_NAME"].Caption = "检验项"; BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_NAME", "PHY_CODE"); baseInfoPopup.Text = "检验项"; baseInfoPopup.LabelTextBox1.Caption = "检验项"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("PHY_NAME", baseInfoPopup.ChoicedRow.GetValue("PHY_NAME")); ultraGrid1.ActiveRow.SetValue("PHY_CODE", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE")); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", ""); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", ""); } if (baseInfoPopup.ChoicedRow.GetValue("PHY_CODE") == "P0618" || baseInfoPopup.ChoicedRow.GetValue("PHY_CODE") == "P0619") { ultraGrid1.ActiveRow.SetValue("STDMIN_SIGN", "="); ultraGrid1.ActiveRow.SetValue("STDMIN", "否"); } } else if (ultraGrid1.ActiveCell.Column.Key == "ITEM_NAME_F") { string phyTypeC = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN"); if (phyTypeC == "") { MessageUtil.ShowWarning("请选择试样组"); ultraGrid1.ActiveRow.Cells["PHY_NAME_MIN"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem", new object[] { phyTypeC }, ob); dt.Columns["ITEM_NAME_F"].Caption = "试验方向"; dt.Columns["ITEM_NAME_C"].Caption = "试验尺寸"; if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001") { dt.DefaultView.RowFilter = "ITEM_CODE_F IS NOT NULL"; } if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0002") { dt.DefaultView.RowFilter = "ITEM_CODE_C IS NOT NULL AND ITEM_CODE_F IS NOT NULL"; } BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_F", "ITEM_CODE_F", "ITEM_CODE_C"); baseInfoPopup.Text = "试验选择"; baseInfoPopup.LabelTextBox1.Caption = "试验方向"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("ITEM_CODE_F") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_F") && a.GetValue("ITEM_CODE_C") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_S")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_F")); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_F")); ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_C")); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_C")); } } else if (ultraGrid1.ActiveCell.Column.Key == "ITEM_NAME_W") { string phyCode = ultraGrid1.ActiveRow.GetValue("PHY_CODE"); if (phyCode == "") { MessageUtil.ShowWarning("请选择检验项"); ultraGrid1.ActiveRow.Cells["PHY_NAME"].Activate(); return; } DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRPos", new object[] { phyCode }, ob); dt.Columns["ITEM_NAME_W"].Caption = "试验温度"; if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001") { dt.DefaultView.RowFilter = "ITEM_CODE_W IS NOT NULL"; } BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_W", "ITEM_CODE_W"); baseInfoPopup.Text = "试验选择"; baseInfoPopup.LabelTextBox1.Caption = "试验温度"; baseInfoPopup.Shown += new EventHandler((c, d) => { IQueryable rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where( a => a.GetValue("ITEM_CODE_W") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_W")); if (rows.Count() > 0) { rows.First().Activate(); } }); if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_W")); ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_W")); } } } } private void ultraTextEditor4_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (ultraGrid1.ActiveCell.Column.Key == "GRADENAME") { string gradeCodes = ultraGrid1.ActiveRow.GetValue("GRADENAME"); FrmGradeChoice frmGradeChoice = new FrmGradeChoice(gradeCodes, ob); if (frmGradeChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveRow.SetValue("GRADECODE", frmGradeChoice.GradeCodes); ultraGrid1.ActiveRow.SetValue("GRADENAME", frmGradeChoice.GradeNames); } } else if (ultraGrid1.ActiveCell.Column.Key == "IMPACT_ID") { ComBaseImpactFrm impactFrm = new ComBaseImpactFrm(ultraGrid1.ActiveCell.Value.ToString(), ob); if (impactFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ultraGrid1.ActiveCell.Value = impactFrm.Id; } } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "查询": if (this.CustomInfo.Equals("5")) { DoQuery2(); }else { DoQuery1(); } break; case "确认选择": if (this.CustomInfo.Equals("5")) { Choice1(); } else { Choice(); } break; case "删除": DeleteTemplate(); break; } } private DataRow[] rows; public DataRow[] Rows { get { return rows; } set { rows = value; } } List ids; public List Ids { get { return ids; } set { ids = value; } } private void Choice() { ultraGrid1.UpdateData(); UltraGridRow ugr = ultraGrid1.Rows[0]; //从表操作 if (ugr.HasChild()) { Ids = ugr.ChildBands[0].Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Select(p => p.GetValue("ID")).ToList(); Rows = dataTable1.Select("ID IN ('" + string.Join("','", Ids) + "')"); } this.DialogResult = System.Windows.Forms.DialogResult.OK; } private void Choice1() { ultraGrid1.UpdateData(); int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count(); if(count > 1){ MessageUtil.ShowTips("请选择一条数据!"); return; } foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC")))) { //从表操作 if (ugr.HasChild()) { Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("PIC")).ToList(); Rows = dataTable1.Select("PIC IN ('" + string.Join("','", Ids) + "')"); } } this.DialogResult = System.Windows.Forms.DialogResult.OK; } private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows) { ugr.Cells["CHC"].Value = true; Activation activation = Activation.ActivateOnly; if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { activation = Activation.AllowEdit; //isSelect += 1; } //else //isSelect -= 1; CellsCollection cells = ugr.Cells; for (int i = 0; i < cells.Count; i++) { if (!cells[i].Column.Key.Equals("CHC")) { ugr.Cells[i].Activation = activation; } } } } } }