using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using System.Collections; namespace Core.StlMes.Client.SaleOrder { public partial class FrmOrderSpec : FrmBase { public delegate void GetOrderSpec(string specName, UltraGridRow retunSpecRow); public event GetOrderSpec GetOrderSpecs; private string titleName = ""; /// /// 规格描述 /// public string TitleName { get { return titleName; } set { titleName = value; } } private string specCode = ""; public string SpecCode { get { return specCode; } set { specCode = value; } } private string pscType = ""; /// /// 品名类型 A B C D /// public string PscType { get { return pscType; } set { pscType = value; } } int iSelectRow = -1; //判定全程途径是否单选 OpeBase ob = new OpeBase(); string codID = ""; string codName = ""; string indexWt = ""; public FrmOrderSpec() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { try { base.OnLoad(e); ultraGrid2.DisplayLayout.Override.FilterUIType = Infragistics.Win.UltraWinGrid.FilterUIType.FilterRow; ultraGrid2.DisplayLayout.Override.FilterOperatorDefaultValue = Infragistics.Win.UltraWinGrid.FilterOperatorDefaultValue.Contains; //ultraGrid2.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect; } catch (System.Exception ex) { } } public FrmOrderSpec(OpeBase db) { this.ob = db; InitializeComponent(); } private void ultraToolbarsManagerSpec_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { iSelectRow = -1; switch (e.Tool.Key.ToString()) { case "Query": titleName = ""; doQuery(); break; case "ButtonCom": //if (CheckData() == true) //{ // doSave(); //} break; case "ButtonTrueCom": //判断是否有勾选项,没有则提示,chkbool大于0执行新增规则描述函数。 //int chkbool = sochkRows(); //if (chkbool > 0) //{ // if (rowsAsk() == true) // { // if (CheckData() == true) // { // doSave(); // } // } //} //Boolean insertOut = false; //for (int i = 0; i < ultraGrid1.Rows.Count; i++) //{ // Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid1.Rows[i]; // if (row.Cells["ORDER_SPEC_DESC"].Value.ToString() == indexWt // || row.Cells["SPCHK"].Value.ToString().ToLower().Equals("true")) // { // insertOut = true; // string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString(); // GetOrderSpecs(descName, row); // this.Close(); // } //} //if (!insertOut) //{ // MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); //} if (ultraGrid2.ActiveRow != null) { Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow; string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString(); GetOrderSpecs(descName, row); this.Close(); } break; case "ButtonEsc": this.Close(); break; } } /// /// 查询方法,比较通用的查询方法 /// private void doQuery() { this.dataTableSpec.Clear(); //this.dataTableSpecs.Clear(); try { //DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindSpecOrder", new Object[] { validFlag, titleName, pscType }, this.ob); DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindOrderSpec", new object[] {SpecCode,TitleName }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.dataTableSpec, true); dataTableSpec.AcceptChanges(); } catch { return; } //GridHelper.RefreshAndAutoSize(ultraGrid2); } private bool IsExistOrderSpec(string orderSpec, string orderSpecCode) { ArrayList list = new ArrayList(); list.Add(orderSpec); list.Add(orderSpecCode); DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistOrderSpec", new object[] { list }, ob); if (dt == null) { return true; } else if (dt != null && dt.Rows[0][0].ToString() == "0") { return false; } return true; } //private bool CheckData() //{ // ultraGrid1.UpdateData(); // DataRow[] drs2 = this.dataTableSpecs.Select("SPCHK = 'True'"); // List insertOrder_SpecNames = new List(); // foreach (DataRow dr in drs2) // { // if (dr["ORDER_SPEC_DESC"].ToString() == "") // { // MessageBox.Show("您所要保存的数据中,订货规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return false; // } // else if (IsExistOrderSpec(dr["ORDER_SPEC_DESC"].ToString(), dr["ORDER_SPEC_CODE"].ToString()) // == true) // { // MessageBox.Show("已存在订货规格描述-" + dr["ORDER_SPEC_DESC"].ToString() + "!", // "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return false; // } // if (insertOrder_SpecNames.Contains(dr["ORDER_SPEC_DESC"].ToString())) // { // MessageBox.Show("您所要保存的数据中,出现重复的订货规格描述-[" + dr["ORDER_SPEC_DESC"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return false; // } // insertOrder_SpecNames.Add(dr["ORDER_SPEC_DESC"].ToString()); // } // return true; //} //private void doSave() //{ // ultraGrid1.UpdateData(); // //判断是否有勾选项,没有则提示。 // int chkbool = sochkRows(); // if (chkbool <= 0) // { // MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; // } // //确定保存吗? // if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo, // MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) // { // return; // } // //从表新增组ArrayList // ArrayList spbSupplementAddParams = new ArrayList(); // //从表修改组ArrayList // ArrayList spbSupplementUpdateParams = new ArrayList(); // //直接遍历从表所有行,判定是否有选中项。 // for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++) // { // DataRow minrow = dataTableSpecs.Rows[j]; // if (minrow["SPCHK"].ToString() == "True") // { // if (minrow.RowState == DataRowState.Added) // { // spbSupplementAddParams.Add(codID); // spbSupplementAddParams.Add(codID); // spbSupplementAddParams.Add(minrow["ORDER_SPEC_DESC"].ToString()); // //name是冗余字段,不需要。 // spbSupplementAddParams.Add(codID); // spbSupplementAddParams.Add(codName); // spbSupplementAddParams.Add(this.UserInfo.GetUserName()); // spbSupplementAddParams.Add(minrow["MEMO"].ToString()); // } // else if (minrow.RowState == DataRowState.Modified) // { // spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_DESC"].ToString()); // spbSupplementUpdateParams.Add(this.UserInfo.GetUserName()); // spbSupplementUpdateParams.Add(minrow["MEMO"].ToString()); // spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_CODE"].ToString()); // } // } // } // //执行数据库相关操作 // CoreClientParam ccp = new CoreClientParam(); // if (spbSupplementAddParams.Count > 0) // { // //服务端的包名+类名 // ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine"; // //类里的方法名 // ccp.MethodName = "BindCmbSpecADD"; // ccp.ServerParams = new object[] { spbSupplementAddParams }; // } // if (spbSupplementUpdateParams.Count > 0) // { // //服务端的包名+类名 // ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine"; // //类里的方法名 // ccp.MethodName = "BindCmbSpecUpdata"; // ccp.ServerParams = new object[] { spbSupplementUpdateParams }; // } // try // { // ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); // } // catch (Exception ex) // { // MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); // return; // } // if (ccp.ReturnCode == -1) // { // return; // } // else // { // MessageBox.Show("保存成功!", "提示", // MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { codID, codName }, this.ob); // GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true); // dataTableSpecs.AcceptChanges(); // } //} //private int sochkRows() //{ // int chkbool = 0; // foreach (UltraGridRow row in ultraGrid1.Rows) // { // if (row.Cells["SPCHK"].Value.ToString().ToUpper() == "TRUE") // { // chkbool += 1; // } // } // return chkbool; //} /// /// 判定是否新增 /// /// //private bool rowsAsk() //{ // for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++) // { // DataRow minrow = dataTableSpecs.Rows[j]; // if (minrow.RowState == DataRowState.Added) // { // indexWt = minrow["ORDER_SPEC_DESC"].ToString(); // return true; // } // } // return false; //} //private void ultraGrid2_Click(object sender, EventArgs e) //{ // Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow; // if (row != null) // { // //从表的记录也要查询出来。 // codID = row.Cells["SPEC_CODE"].Value.ToString(); // codName = row.Cells["SPEC_NAME"].Value.ToString(); // DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { row.Cells["SPEC_CODE"].Value.ToString(), row.Cells["SPEC_NAME"].Value.ToString() }, this.ob); // GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true); // dataTableSpecs.AcceptChanges(); // } //} //private void ultraGrid1_CellChange(object sender, CellEventArgs e) //{ // this.ultraGrid1.UpdateData(); // if (e.Cell.Column.Key.Equals("SPCHK") && Convert.ToBoolean(e.Cell.Value)) // { // if (iSelectRow != -1) // ultraGrid1.Rows[iSelectRow].Cells["SPCHK"].Value = false; // iSelectRow = e.Cell.Row.Index; // } // else // { // iSelectRow = -1; // } //} private void FrmOrderSpec_Load(object sender, EventArgs e) { doQuery(); } private void ultraGrid2_DoubleClickRow(object sender, DoubleClickRowEventArgs e) { if (e.Row.Index == -1) { return; } if (ultraGrid2.ActiveRow != null) { Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow; string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString(); GetOrderSpecs(descName, row); this.Close(); } } } }