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 CoreFS.CA06; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using System.Collections; namespace Core.StlMes.Client.SaleOrder { public partial class frmOrderPrice : FrmBase { public frmOrderPrice() { InitializeComponent(); } public frmOrderPrice(OpeBase ob) { InitializeComponent(); this.ob = ob; } /// /// 管理卡号 /// private string manageNo = ""; public string ManageNo { get { return manageNo; } set { manageNo = value; } } /// /// 合同号 /// private string orderNo = ""; public string OrderNo { get { return orderNo; } set { orderNo = value; } } private void frmOrderPrice_Load(object sender, EventArgs e) { doQuery(); //除选择外,全部单元格不允许编辑。 for (int i = 0; i < ultraGrid2.Rows.Count; i++) { for (int j = 0; j < ultraGrid2.Rows[i].Cells.Count; j++) { if (!ultraGrid2.Rows[i].Cells[j].Column.Key.Equals("CHK")) { ultraGrid2.Rows[i].Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } } } /// /// Toop事件 /// /// /// private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "doOk": doOk(); break; case "doDelete": doDelete(); break; } } /// /// 删除 /// private void doDelete() { ultraGrid2.UpdateData(); ArrayList deleteParms = new ArrayList(); int j = 0; //判断当前Table选中项。 foreach (DataRow row in this.SLM_ORDER_PRICE.Rows) { if (Convert.ToBoolean(row["CHK"])) { ArrayList parms = new ArrayList(); parms.Add(ManageNo); parms.Add(OrderNo); string priceNo = row["PRICE_NO"].ToString(); //新增行没有price_No,因此不需要添加到参数列表。 if (!"".Equals(priceNo)) { parms.Add(priceNo); deleteParms.Add(parms); } j++; } } if (j <= 0) { MessageBox.Show("请先勾选!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } if (deleteParms.Count > 0) { //执行数据库相关操作 CoreClientParam ccp = new CoreClientParam(); //服务端的包名+类名 ccp.ServerName = "com.steering.pss.sale.order.CoreOrderPrice"; //类里的方法名 ccp.MethodName = "doDelete"; ccp.ServerParams = new object[] { deleteParms }; try { ccp = this.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); doQuery(); } } } /// /// 确认 /// private void doOk() { ultraGrid2.UpdateData(); ArrayList AddParms = new ArrayList(); ArrayList UpdateParms = new ArrayList(); int j = 0; foreach (DataRow row in this.SLM_ORDER_PRICE.Rows) { if (Convert.ToBoolean(row["CHK"])) { j++; //验证非空项,提取方法。 if (ValidRow(row)) { if (row.RowState == DataRowState.Added) { ArrayList parms = new ArrayList(); parms.Add(ManageNo); parms.Add(OrderNo); parms.Add(row["PRICE_BASE"].ToString()); parms.Add(UserInfo.GetUserName()); AddParms.Add(parms); } else if (row.RowState == DataRowState.Modified) { ArrayList parms = new ArrayList(); parms.Add(row["PRICE_BASE"].ToString()); parms.Add(UserInfo.GetUserName()); parms.Add(ManageNo); parms.Add(OrderNo); parms.Add(row["PRICE_NO"].ToString()); UpdateParms.Add(parms); } } else { return; } } } if (j <= 0) { if (MessageBox.Show("未勾选任何行,确认提交吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //不做任何操作跳转到交货信息界面。 doQuery(); //合同头状态变成待审批。 ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderPrice.UpdateOrderSts", new Object[] { ManageNo, OrderNo }, this.ob); this.Close(); return; } else { return; } } //传递到服务端,运用事物处理。记不清楚了,但以前有类似的代码。 //执行数据库相关操作 CoreClientParam ccp = new CoreClientParam(); //服务端的包名+类名 ccp.ServerName = "com.steering.pss.sale.order.CoreOrderPrice"; //类里的方法名 ccp.MethodName = "doOk"; ccp.ServerParams = new object[] { AddParms, UpdateParms }; try { ccp = this.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); doQuery(); //合同头状态变成待审批。 ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderPrice.UpdateOrderSts", new Object[] { ManageNo, OrderNo }, this.ob); this.Close(); } } /// /// 验证当前行非空项。 /// /// /// private bool ValidRow(DataRow row) { string priceBase = row["PRICE_BASE"].ToString(); if ("".Equals(priceBase)) { MessageBox.Show("请输入定价依据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } return true; } /// /// 查询功能,刷新数据源。 /// private void doQuery() { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderPrice.doQuery", new Object[] { ManageNo, OrderNo }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref this.SLM_ORDER_PRICE, true); this.SLM_ORDER_PRICE.AcceptChanges(); } private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e) { e.Row.Cells["CHK"].Value = false; for (int j = 0; j < e.Row.Cells.Count; j++) { if (!e.Row.Cells[j].Column.Key.Equals("CHK")) { e.Row.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { ultraGrid2.UpdateData(); if (e.Cell.Value != null && !string.IsNullOrEmpty(e.Cell.Value.ToString())) { if (e.Cell.Column.Key.Equals("CHK")) { if (Convert.ToBoolean(e.Cell.Value)) { for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; } } else { for (int i = 0; i < e.Cell.Row.Cells.Count; i++) { if (e.Cell.Row.Cells[i].Column.Key.Equals("CHK")) { e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; } else { e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } } } } } } }