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 Infragistics.Win.UltraWinTree; using System.Collections; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Infragistics.Win.UltraWinEditors; using Core.StlMes.Client.SaleComm; using Core.Mes.Client.Comm.Tool; using Newtonsoft.Json; namespace Core.StlMes.Client.SaleOrder { public delegate void dlgOrderAddAskHand(object sender, ReturnMessage e); public partial class dlgOrderAddAsk : FrmBase { public event dlgOrderAddAskHand dlgOrderAddAskHandEvent; private string finalCusterCode = "0101010102"; private string finalCusterDesc = ""; private string drAddAskNo = ""; private string MSC = "MSC0000001001"; private string errMessage = ""; private string _addAskNo = ""; private string std_code = ""; private string addAskNos = ""; private string ordLnPk = ""; public string AddAskNos { get { return addAskNos; } set { addAskNos = value; } } int indexTree = 0; /// /// 附加要求分项 /// private Dictionary itemSub = null; /// /// 标准说明 /// private Dictionary askSubItme = null; /// /// 传入行(合同从数据信息) /// private DataRow dr; /// /// 下拉框 /// private UltraComboEditor[] ultras = new UltraComboEditor[1]; private bool isQueryStd = true; /// /// 是否查询标准信息 /// public bool IsQueryStd { get { return isQueryStd; } set { isQueryStd = value; } } public DataRow Dr { get { return dr; } set { dr = value; } } //是否是技术评审弹窗。 private bool isPopup = false; public bool IsPopup { get { return isPopup; } set { isPopup = value; } } /// /// OB对象 /// private OpeBase _ob = null; public OpeBase Ob { get { return _ob; } set { _ob = value; } } private ArrayList _addAskData; public dlgOrderAddAsk() { InitializeComponent(); ExceptionHelper.RegistException(); } private string _str = ""; public dlgOrderAddAsk(string addKey, string str) { InitializeComponent(); _addAskNo = addKey; _str = str; } /// /// 弹窗引用时调用。 /// public void PopupLoad(OpeBase ob) { this._ob = ob; base.OnLoad(EventArgs.Empty); } public delegate void HUpdateAskAdd(bool b); public event HUpdateAskAdd UpdateAskAdd; private void dlgOrderAddAsk_Load(object sender, EventArgs e) { _addAskNo = this.addAskNos; CheckDr(); //_ob = this.ob; InitDrop(); CreateItemSub(); if (_str.Equals("1")) { ultraToolbarsManager1.Visible = false; //string user = dr["FINAL_USER"].ToString(); QueryAskAdd(MSC, _addAskNo); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { for (int j = 0; j < ultraGrid1.Rows[i].Cells.Count; j++) { ultraGrid1.Rows[i].Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } } DoQuery(); if (isPopup) { ultraGrid1.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False; ultraGrid1.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False; ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No; } } /// /// 判断传入的行数据是否符合要要求 /// private void CheckDr() { if (dr == null) { return; } //if (dr["MSC"].ToString().Equals("")) //{ return; } if (dr["FINAL_USER"].ToString().Equals("")) { return; } //MSC = dr["MSC"].ToString(); finalCusterCode = dr["FINAL_USER"].ToString(); finalCusterDesc = dr["FINAL_USER_DESC"].ToString(); if (dr.Table.Columns.Contains("ADD_ASK_NO")) { drAddAskNo = dr["ADD_ASK_NO"].ToString(); } TextCuster.Text = finalCusterDesc; std_code = dr["STD_CODE"].ToString(); if (dr.Table.Columns.Contains("ORD_LN_PK")) { ordLnPk = dr["ORD_LN_PK"].ToString(); } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "doQuery": DoQuerys(); break; case "新增": DoSave(); break; case "doConfrim": DoComfirm(); break; case "作废": DoDelete(); break; case "doClose": ((Form)ultraToolbarsManager1.DockWithinContainer.TopLevelControl).Close(); break; default: break; } } private void DoDelete() { string key = ultraTree.ActiveNode.Key; if (key == "CUSTADDKEY") { MessageUtil.ShowWarning("请选择需要作废的附加要求码!"); } else { if (key.Substring(0, 3).ToUpper().Equals("STD")) { MessageUtil.ShowWarning("请选择需要作废的附加要求码!"); } else { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.getSlmOrdLineCntByAskNo", new object[] { key }, _ob); if (dt.Rows.Count > 0) { MessageUtil.ShowWarning(string.Format("该附加要求已被合同[{0}]-合同行[{1}]引用,不能作废!", dt.Rows[0]["ORDER_NO"].ToString2(), dt.Rows[0]["ORDER_SEQ"].ToString2())); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认作废选中的附加要求码?") == DialogResult.No) { return; } ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.deleteSlmOrdAddAsk", new object[] { key, UserInfo.GetUserName() }, _ob); MessageUtil.ShowTips("作废成功!"); DoQuery(); } } } private void DoQuerys() { addAskNos = ""; ultraTree.Nodes["CUSTADDKEY"].Nodes.Clear(); if (isQueryStd) { DataTable dtAskAdds = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryBaseAskAddCode", new Object[] { std_code }, this._ob); CreateTree(dtAskAdds, "CUSTADDKEY", "STD_CODE", "STD_NAME"); } DataTable dtAskAdd = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryAddAskCode", new Object[] { finalCusterCode, drAddAskNo }, this._ob); CreateTree(dtAskAdd, "CUSTADDKEY", "ADD_ASK_NO", "CUSTOMER_NM"); ultraTree.ExpandAll(); dataTable1.Rows.Clear(); if (ultraTree.Nodes["CUSTADDKEY"].Nodes.Count > 0) { ultraTree.ActiveNode = ultraTree.Nodes["CUSTADDKEY"].Nodes[0]; _addAskNo = ultraTree.Nodes["CUSTADDKEY"].Nodes[0].Key; } } private void DoQuery() { //ultraTree.Nodes["CUSTADDKEY"].Nodes.Clear(); //DataTable dtAskAdds = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryBaseAskAddCode", new Object[] { std_code }, this._ob); //CreateTree(dtAskAdds, "CUSTADDKEY", "STD_CODE", "STD_NAME"); //DataTable dtAskAdd = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryAddAskCode", new Object[] { finalCusterCode }, this._ob); //CreateTree(dtAskAdd, "CUSTADDKEY", "ADD_ASK_NO", "ADD_ASK_NO"); //ultraTree.ExpandAll(); //dataTable1.Rows.Clear(); //if (!_addAskNo.Equals("")) //{ // ultraTree.Nodes["CUSTADDKEY"].Nodes[_addAskNo].CheckedState = CheckState.Checked; //} ultraTree.Nodes["CUSTADDKEY"].Nodes.Clear(); if (isQueryStd == true) { DataTable dtAskAdds = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryBaseAskAddCode", new Object[] { std_code }, this._ob); CreateTree(dtAskAdds, "CUSTADDKEY", "STD_CODE", "STD_NAME"); } DataTable dtAskAdd = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryAddAskCode", new Object[] { finalCusterCode, drAddAskNo }, this._ob); CreateTree(dtAskAdd, "CUSTADDKEY", "ADD_ASK_NO", "CUSTOMER_NM"); ultraTree.ExpandAll(); dataTable1.Rows.Clear(); if (!_addAskNo.Equals("")) { for (int i = 0; i < ultraTree.Nodes["CUSTADDKEY"].Nodes.Count; i++) { if (ultraTree.Nodes["CUSTADDKEY"].Nodes[i].Key.Equals(_addAskNo)) { ultraTree.ActiveNode = ultraTree.Nodes["CUSTADDKEY"].Nodes[i]; ultraTree.ActiveNode.Selected = true; } } } else { if (ultraTree.Nodes["CUSTADDKEY"].Nodes.Count > 0) { ultraTree.ActiveNode = ultraTree.Nodes["CUSTADDKEY"].Nodes[0]; ultraTree.ActiveNode.Selected = true; _addAskNo = ultraTree.Nodes["CUSTADDKEY"].Nodes[0].Key; } } } /// /// 生成树 /// /// DataTable /// key /// 显示值 private void CreateTree(DataTable dt, string key, string hideValue, string showValue) { if (dt == null || dt.Rows.Count == 0) { return; } UltraTreeNode utn = null; for (int i = 0; i < dt.Rows.Count; i++) { utn = new UltraTreeNode(dt.Rows[i][hideValue].ToString(), dt.Rows[i][showValue].ToString()); ultraTree.Nodes[key].Nodes.Add(utn); } } /// /// 保存 /// private void DoSave() { string stdCode = ""; if (ultraTree.ActiveNode.Parent != null) { if (ultraTree.ActiveNode.Parent.Nodes[0].Key.Substring(0, 3).ToUpper().Equals("STD")) { stdCode = ultraTree.ActiveNode.Parent.Nodes[0].Key; } } int count = 0; if (CheckData(false) == false) return; if (MessageUtil.ShowYesNoAndQuestion("是否保存记录?") == DialogResult.No) { return; } string askID = ""; askID = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.getADDASK", new Object[] { finalCusterCode }, this._ob).Rows[0][0].ToString(); count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.addAskAdd", new Object[] { _addAskData, askID, _addAskNo, stdCode}, this._ob); _addAskNo = askID; if (count > 0) { MessageUtil.ShowTips("保存成功!"); CreateItemSub(); DoQuery(); } } private bool CheckData(bool isDoConfirm) { ultraGrid1.UpdateData(); if (finalCusterCode.Equals("") || MSC.Equals("") || addAskNos == "") { return false; } //if (isDoConfirm == false) //{ // if (addAskNos.Substring(0, 3).ToUpper().Equals("STD") == false) // { // string addAskState = getAskAddState(addAskNos).Rows[0]["ADD_ASK_STATUS"].ToString(); // int ordLnRefAddAskCnt = GetOrdLnRefAddAskCnt(addAskNos, ordLnPk); // if (isInsert == false) // { // if (addAskState == "S") // { // MessageUtil.ShowWarning("该附加要求为评审通过状态,不能修改!"); // return false; // } // else if ((addAskState == "W" || addAskState == "F") && ordLnRefAddAskCnt >= 1) // { // MessageUtil.ShowWarning("该附加要求已被其他的合同行使用,不能修改!"); // return false; // } // } // } //} _addAskData = new ArrayList(); int chkCount = ultraGrid1.Rows.AsQueryable().Where("CHC = 'True'").Count(); if (chkCount == 0) { MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!"); return false; } int askSubItemCount = ultraGrid1.Rows.AsQueryable().Where("CHC = 'True'").GroupBy(a => a.GetValue("ASK_SUB_ITME")).Count(); if (chkCount > askSubItemCount) { MessageUtil.ShowWarning("不能保存两条相同的附加要求项!"); return false; } foreach (UltraGridRow ugr in ultraGrid1.Rows) { if (Convert.ToBoolean(ugr.Cells["CHC"].Value)) { SlmOrderAddAskObject com = GetObjectData.GetSlmOrderAddAskData(ugr); com.CustomerNm = finalCusterDesc; com.CustomerNo = finalCusterCode; if (ultraTree.ActiveNode.Key == "CUSTADDKEY" || ultraTree.ActiveNode.Key.Substring(0, 3).ToUpper().Equals("STD") == false) { //com.AskSubItmeVal = ugr.GetValue("ASK_SUB_ITME_VAL"); //com.AskSubItmeValDesc = ugr.GetValue("ASK_SUB_ITME_VAL_DESC"); //slmOrderAddAsk.AskItmeOld = slmOrderAddAsk.AskItme; //slmOrderAddAsk.AskSubItmeOld = slmOrderAddAsk.AskSubItme; //slmOrderAddAsk.AddAskStatus = "S"; } else { com.AskSubItmeVal = com.AskSubItmeVal == "" ? ugr.GetValue("ASK_SUB_ITME_VAL") : com.AskSubItmeVal; com.AskSubItmeValDesc = com.AskSubItmeValDesc == "" ? ugr.GetValue("ASK_SUB_ITME_VAL_DESC") : com.AskSubItmeValDesc; } if (!CheckAddAsk(com)) { MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } _addAskData.Add(JsonConvert.SerializeObject(com)); } } object[] isSameData = checkIsSameData(_addAskData); if (isDoConfirm == false && isSameData[0].ToString() == "True") { MessageUtil.ShowWarning("系统已存在相同的一套附加要求[" + isSameData[1].ToString() + "]!"); foreach (UltraTreeNode node in ultraTree.Nodes["CUSTADDKEY"].Nodes) { if (node.Key == isSameData[1].ToString()) { dataTable1.AcceptChanges(); ultraTree.ActiveNode = node; break; } } return false; } return true; } private DataTable getAskAddState(string askAddNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.getAddAskState", new object[] { askAddNo }, _ob); return dt; } private int GetOrdLnRefAddAskCnt(string askAddNo, string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.getOrdLnRefAddAskCnt", new object[] { askAddNo, ordLnPk }, _ob); return int.Parse(dt.Rows[0][0].ToString()); } private bool isExistAddAsk(string addAskNo, string askItem, string askSubItem) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.isExistAddAsk", new object[] { addAskNo, askItem, askSubItem }, _ob); if (dt.Rows[0][0].ToString() != "0") { return true; } return false; } /// /// 查询附加要求 /// /// /// private void QueryAskAdd(string stdCode, string askAddNo) { DataTable dt = null; if (askAddNo.Substring(0, 3).ToUpper().Equals("STD")) { dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryAddAsk", new Object[] { stdCode, askAddNo }, this._ob); } else { dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryAddOrderAsk", new Object[] { stdCode, askAddNo }, this._ob); } if (dt != null && dt.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true); //OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid1); } else { dataTable1.Rows.Clear(); } foreach (UltraGridRow row in ultraGrid1.Rows) { row.Cells["CHC"].Value = true; SetIsAllowEdit(row); } dataTable1.AcceptChanges(); ultraGrid1.UpdateData(); } private void DoComfirm() { if (ultraTree.ActiveNode.Parent == null) return; string stdCode = ""; if (ultraTree.ActiveNode.Parent.Nodes[0].Key.Substring(0, 3).ToUpper().Equals("STD")) { stdCode = ultraTree.ActiveNode.Parent.Nodes[0].Key; } //if (addAskNos.Substring(0, 3).ToUpper().Equals("STD")) //{ // isInsert = true; //} //else //{ // string addAskState = getAskAddState(addAskNos).Rows[0]["REVIEW_F_RS"].ToString(); // int ordLnRefAddAskCnt = GetOrdLnRefAddAskCnt(addAskNos, ordLnPk); // if (addAskState == "S" || ordLnRefAddAskCnt >= 1) // { // isInsert = true; // } // else // { // isInsert = false; // } //} if (!CheckData(true)) return; if (MessageUtil.ShowQuestion("是否确认?") == DialogResult.No) { return; } ReturnMessage e = new ReturnMessage(); e.Message = GetSpecialInfo(); object[] isSameData = checkIsSameData(_addAskData); if (isSameData[0].ToString() == "False") { string askID = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.getADDASK", new Object[] { finalCusterCode }, this._ob).Rows[0][0].ToString(); int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.addAskAdd", new Object[] { _addAskData, askID, _addAskNo, stdCode}, this._ob); if (count == 0) return; e.AddAskNo = askID; } else { e.AddAskNo = isSameData[1].ToString(); } dlgOrderAddAskHandEvent.Invoke(this, e); this.DialogResult = DialogResult.OK; } private string GetSpecialInfo() { string value = ""; UltraGridRow[] rows = ultraGrid1.Rows.AsQueryable().Where("CHC = 'True'").OrderBy( a => a.GetText("ASK_ITME")).ThenBy(a => a.GetText("ASK_SUB_ITME")).ToArray(); foreach (UltraGridRow row in rows) { if (value != "") { value += "\r\n"; } string askSubItemValDesc = row.GetText("ASK_SUB_ITME_VAL_DESC1").Trim() == "" ? row.GetText("ASK_SUB_ITME_VAL_DESC") : row.GetText("ASK_SUB_ITME_VAL_DESC1").Trim(); value += row.GetText("ASK_SUB_ITME") + ":" + askSubItemValDesc; } return value; } private object[] checkIsSameData(ArrayList addAskData) { CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.sale.order.CoreOrderAddAsk"; ccp.MethodName = "checkIsSameData"; ccp.ServerParams = new object[] { addAskData, finalCusterCode}; ccp = Ob.ExecuteQuery(ccp, CoreInvokeType.Internal); return (object[])ccp.ReturnObject; } private bool CheckAddAsk(SlmOrderAddAskObject com) { if (com.AskItme.Equals("")) { errMessage = "附加要求:请选择附加要求项"; return false; } if (com.AskSubItme.Equals("")) { errMessage = "附加要求:请选择附加要求分项"; return false; } if (ultraTree.ActiveNode.Key == "CUSTADDKEY" || ultraTree.ActiveNode.Key.Substring(0, 3).ToUpper().Equals("STD") == false) { if (com.AskSubItmeVal.Equals("")) { errMessage = "附加要求:请选择客户标准说明"; return false; } } //string askAddState = getAskAddState(com.AddAskNo); //if (com.AddAskNo != "" && com.AskItmeOld != "" && askAddState != "W" && askAddState != "F") //{ // errMessage = "只能操作待评审和评审失败的附加要求!"; // return false; //} //if (com.AskItmeOld != com.AskItme || com.AskSubItmeOld != com.AskSubItme) //{ // if (isExistAddAsk(com.AddAskNo, com.AskItme, com.AskSubItme) == true) // { // errMessage = "附加要求码:" + com.AddAskNo + " 已存在相同的附加要求项和附加要求分项!"; // return false; // } //} return true; } /// /// 初始化下拉框 /// private void InitDrop() { for (int i = 0; i < ultras.Length; i++) { ultras[i] = new UltraComboEditor(); Controls.Add(ultras[i]); ultras[i].Visible = false; } //附加项 OrderSpecialInfoTool.NitializeAskIime(ultras[0], false, this._ob); OrderSpecialInfoTool.BindColumn(ultras[0], "ASK_ITME", ultraGrid1.DisplayLayout.Bands[0]); } /// /// 生成附加要求下拉框 /// private void CreateItemSub() { int count = ultras[0].Items.Count; itemSub = new Dictionary(); askSubItme = new Dictionary(); for (int i = 0; i < count; i++) { string itemCode = ultras[0].Items[i].DataValue.ToString(); if (itemSub.ContainsKey(itemCode) == false) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getSubItem", new Object[] { itemCode, ""}, this._ob); UltraComboEditor uce = new UltraComboEditor(); uce.DataSource = dt; uce.DisplayMember = "ASK_ITEM_DESC"; uce.ValueMember = "ASK_ITEM_NO"; Controls.Add(uce); uce.Visible = false; itemSub.Add(itemCode, uce); } for (int j = 0; j < itemSub[itemCode].Items.Count; j++) { string subCode = itemSub[itemCode].Items[j].DataValue.ToString(); if (askSubItme.ContainsKey(subCode) == false) { DataTable dtSub = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getSubItem", new Object[] { subCode, "1"}, this._ob); UltraComboEditor uceSub = new UltraComboEditor(); uceSub.DataSource = dtSub; uceSub.DisplayMember = "ASK_ITEM_DESC"; uceSub.ValueMember = "ASK_ITEM_NO"; uceSub.DropDownListWidth = -1; EditorButton button = new EditorButton(); button.Text = "编辑"; uceSub.EditorButtonClick += new EditorButtonEventHandler(uceSub_EditorButtonClick); uceSub.ButtonsRight.Add(button); Controls.Add(uceSub); uceSub.Visible = false; askSubItme.Add(subCode, uceSub); } } } foreach (UltraGridRow row in ultraGrid1.Rows) { BandItemSub(row); } } private void uceSub_EditorButtonClick(object sender, EditorButtonEventArgs e) { UltraGridRow row = ultraGrid1.ActiveRow; if (row == null) return; PopupTextBox popupTextBox = new PopupTextBox(row.GetText("ASK_SUB_ITME_VAL1").Trim()); if (row.Cells["ASK_SUB_ITME_VAL1"].Style == Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList) { popupTextBox.TxtInfo.ReadOnly = true; } if (popupTextBox.ShowDialog() == DialogResult.OK) { row.Cells["ASK_SUB_ITME_VAL1"].Value = popupTextBox.TextInfo;// row.Cells["ASK_SUB_ITME_VAL_DESC1"].Value = popupTextBox.TextInfo; } } /// /// 绑定附加要求下拉框 /// /// private void BandItemSub(UltraGridRow row) { string itemCode = row.Cells["ASK_ITME"].Value.ToString(); if (itemSub.ContainsKey(itemCode)) { row.Cells["ASK_SUB_ITME"].EditorComponent = itemSub[itemCode]; } string subCode = row.Cells["ASK_SUB_ITME"].Value.ToString(); if (askSubItme.ContainsKey(subCode)) { row.Cells["ASK_SUB_ITME_VAL1"].EditorComponent = askSubItme[subCode]; } row.Cells["ASK_SUB_ITME"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } private void SetIsAllowEdit(UltraGridRow row) { string subCode = row.Cells["ASK_SUB_ITME"].Value.ToString(); DataRow drBaseAddAsk = GetSlmBaseAddaskByPk(subCode); if (drBaseAddAsk != null && drBaseAddAsk["IS_ALLOW_EDIT"].ToString() == "1") { row.Cells["ASK_SUB_ITME_VAL1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; } else { row.Cells["ASK_SUB_ITME_VAL1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } } /// /// 通过主键查询附加要求 /// /// /// private DataRow GetSlmBaseAddaskByPk(string askItemNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseAddAsk.getSlmBaseAddaskByPk", new object[] { askItemNo }, _ob); if (dt.Rows.Count > 0) { return dt.Rows[0]; } else { return null; } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { BandItemSub(e.Row); ControlGridEdit(e.Row); if (e.Row.Cells["IS_OTHER"].Value.ToString() == "True") { e.Row.Appearance.BackColor = Color.FromArgb(67, 205, 128); e.Row.Cells["ASK_SUB_ITME_VAL1"].Appearance.BackColor = e.Row.Appearance.BackColor; e.Row.Cells["ASK_SUB_ITME"].Appearance.BackColor = e.Row.Appearance.BackColor; e.Row.Cells["ASK_ITME"].Appearance.BackColor = e.Row.Appearance.BackColor; } } private void ControlGridEdit(UltraGridRow row) { if (row.GetValue("CHC") == "True") { for (int i = 0; i < row.Cells.Count; i++) { row.Cells[i].Activation = Activation.AllowEdit; } } else { for (int i = 0; i < row.Cells.Count; i++) { if (row.Cells[i].Column.Key == "CHC") continue; row.Cells[i].Activation = Activation.ActivateOnly; } } } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (e.Cell.Column.Key == "PIC1") { foreach (DataRow dr in dataTable1.Rows) { if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified) continue; ultraGrid1.UpdateData(); dataTable1.AcceptChanges(); } } ultraGrid1.UpdateData(); //if(dataTable1.Rows.Count>0) //{ // if (dataTable1.Rows[0]["ADD_ASK_STATUS"].ToString().ToUpper().Equals("S")) // { // ultraGrid1.BeginUpdate(); // e.Cell.Row.Cells["CHC"].Value = false; // MessageBox.Show("评审通过不允许修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); // ultraGrid1.EndUpdate(); // return; // } //} if (e.Cell.Column.Key.Equals("ASK_ITME")) { e.Cell.Row.Cells["ASK_SUB_ITME"].Activation = Activation.AllowEdit; e.Cell.Row.Cells["ASK_ITME_DESC"].Value = e.Cell.Text; e.Cell.Row.Cells["ASK_SUB_ITME"].Value = ""; e.Cell.Row.Cells["ASK_SUB_ITME_DESC"].Value = ""; e.Cell.Row.Cells["ASK_SUB_ITME_VAL1"].Value = ""; e.Cell.Row.Cells["ASK_SUB_ITME_VAL_DESC1"].Value = ""; } if (e.Cell.Column.Key.Equals("ASK_SUB_ITME")) { e.Cell.Row.Cells["ASK_SUB_ITME_VAL1"].Activation = Activation.AllowEdit; e.Cell.Row.Cells["ASK_SUB_ITME_DESC"].Value = e.Cell.Text; e.Cell.Row.Cells["ASK_SUB_ITME_VAL1"].Value = ""; e.Cell.Row.Cells["ASK_SUB_ITME_VAL_DESC1"].Value = ""; SetIsAllowEdit(e.Cell.Row); } if (e.Cell.Column.Key.Equals("ASK_SUB_ITME_VAL1")) { if (e.Cell.Row.Cells["ASK_ITME"].Value.ToString() == "") { MessageUtil.ShowWarning("请先选择附加要求项"); e.Cell.Value = ""; e.Cell.Row.Cells["ASK_ITME"].Activate(); return; } if (e.Cell.Row.Cells["ASK_SUB_ITME"].Value.ToString() == "") { MessageUtil.ShowWarning("请先选择附加要求分项"); e.Cell.Value = ""; e.Cell.Row.Cells["ASK_SUB_ITME"].Activate(); return; } e.Cell.Row.Cells["ASK_SUB_ITME_VAL1"].Activation = Activation.AllowEdit; e.Cell.Row.Cells["ASK_SUB_ITME_VAL_DESC1"].Value = e.Cell.Text; } } private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e) { if ("1".Equals(_str)) { for (int j = 0; j < e.Row.Cells.Count; j++) { e.Row.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } else { OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid1, e); } } private void ultraToolbarsManager2_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "doReviewPass": doReviewPass(); break; case "doReviewFailure": doReviewFailure(); break; case "doClose": this.Close(); break; default: break; } } /// /// 评审不通过 /// private void doReviewFailure() { if (ultraGrid1.ActiveRow == null) { MessageBox.Show("当前无选中附加要求。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } int i = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.UpdateAskAddStatus", new Object[] { _addAskNo, false }, this.Ob); if (i > 0) { UpdateAskAdd(false); this.Close(); } } /// /// 评审通过 /// private void doReviewPass() { if (ultraGrid1.ActiveRow == null) { MessageBox.Show("当前无选中附加要求。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } int i = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.UpdateAskAddStatus", new Object[] { _addAskNo, true }, this.Ob); if (i > 0) { UpdateAskAdd(true); this.Close(); } } private void CheckProduct_CheckedChanged(object sender, EventArgs e) { } private void CheckPscDesc_CheckedChanged(object sender, EventArgs e) { } private void CheckCustomer_CheckedChanged(object sender, EventArgs e) { if (CheckCustomer.Checked) { TextCuster.ReadOnly = false; } else { TextCuster.ReadOnly = true; } } private void askItemImg_EditorButtonClick(object sender, EditorButtonEventArgs e) { if (string.IsNullOrEmpty(_addAskNo) && ultraGrid1.ActiveRow != null) { return; } bool isModify = false; foreach (DataRow dr in dataTable1.Rows) { if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified) { isModify = true; break; } } UltraGridRow row = ultraGrid1.ActiveRow; string askSubItem = row.GetValue("ASK_SUB_ITME"); string filePath = "sale/ordAsk/" + _addAskNo + "/" + askSubItem; if (e.Button.Key.ToLower().Equals("select")) { dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePath); if (isPopup) { down.DeleteButton.Visible = false; } down.ShowDialog(); if (down.CtrlFileDown1.List.Count == 0) { UpdatePic("", _addAskNo, askSubItem); row.Cells["PIC1"].Value = ""; } else { UpdatePic(filePath, _addAskNo, askSubItem); row.Cells["PIC1"].Value = "存在附加要求文件"; } } if (e.Button.Key.ToLower().Equals("choice") && isPopup == false) { if (_addAskNo.Substring(0, 3).ToUpper().Equals("STD")) { MessageUtil.ShowWarning("标准的附加要求,不能上传图片!"); return; } bool isUpload = false; List list = new List(); FileBean bean = new FileBean(); OpenFileDialog file = new OpenFileDialog(); file.Multiselect = true; file.Title = "选择需要上传的图片"; file.Filter = "图片文件(*.jpg);(*.gif);(*.png);(*.bmp)|*.jpg;*.gif;*.png;*.bmp"; DialogResult drStat; //LX 修改 drStat = file.ShowDialog(); //LX 修改 if (drStat == DialogResult.OK) //|| file.ShowDialog() == DialogResult.Yes ---LX 修改 { foreach (string fileName in file.FileNames) { bean = new FileBean(); string filena = System.IO.Path.GetFileName(fileName); if (filena.Contains(" ")) { MessageUtil.ShowWarning("上传的图片名称不能包含空格!"); return; } bean.setFileName(filena); bean.setPathName(filePath); bean.setFile(FileHelper.FileToArray(fileName)); list.Add(bean); } bool isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list); if (isSuccess) { MessageBox.Show("上传成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); isUpload = true; } else { isUpload = false; } } else { isUpload = false; } if (isUpload) { dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePath); down.ShowDialog(); if (down.CtrlFileDown1.List.Count == 0) { UpdatePic("", _addAskNo, askSubItem); row.Cells["PIC1"].Value = ""; } else { UpdatePic(filePath, _addAskNo, askSubItem); row.Cells["PIC1"].Value = "存在附加要求文件"; } } } if (isModify == false) dataTable1.AcceptChanges(); } private void UpdatePic(string filePath, string addAskNo, string askSubItem) { ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderAddAsk.setPic", new object[] { filePath, addAskNo, askSubItem }, Ob); } private void ultraTree_AfterActivate(object sender, NodeEventArgs e) { this.Cursor = Cursors.WaitCursor; try { if (e.TreeNode.Parent != null && e.TreeNode.Parent.Key.Equals("CUSTADDKEY")) { string addAskNo = e.TreeNode.Key.ToString(); //string user = dr["FINAL_USER"].ToString(); if (addAskNo.Substring(0, 3).ToUpper().Equals("STD")) { if (isPopup == false) { ultraToolbarsManager1.Toolbars[0].Tools["新增"].SharedProps.Visible = true; } } else { if (isPopup == false) { DataTable dt = getAskAddState(addAskNo); string addAskState = dt.Rows[0]["ADD_ASK_STATUS"].ToString(); string reviewRs = dt.Rows[0]["REVIEW_F_RS"].ToString(); this.toolTip1.SetToolTip(ultraGrid1, reviewRs); this.toolTip1.ToolTipTitle = "["+ addAskNo +"]附加要求失败原因:"; toolTip1.ShowAlways = true; int ordLnRefAddAskCnt = GetOrdLnRefAddAskCnt(addAskNo, ordLnPk); if (addAskState == "S" || ((addAskState == "W" || addAskState == "F") && ordLnRefAddAskCnt >= 1)) { ultraToolbarsManager1.Toolbars[0].Tools["新增"].SharedProps.Visible = true; } else { ultraToolbarsManager1.Toolbars[0].Tools["新增"].SharedProps.Visible = true; } } } addAskNos = addAskNo; QueryAskAdd(std_code, addAskNo); _addAskNo = addAskNo; ultraTree.Nodes["CUSTADDKEY"].Nodes[_addAskNo].CheckedState = CheckState.Checked; //评审弹窗添加标准附加要求显示 if (isPopup) { DataTable dtOtherStdAddAsk = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderAddAsk.queryOtherStdAsk", new object[] { std_code, addAskNo }, _ob); GridHelper.CopyDataToDatatable(dtOtherStdAddAsk, dataTable1, false); } } } catch (Exception ex) { throw ex; } finally { this.Cursor = Cursors.Default; } } private void ultraTree_BeforeActivate(object sender, CancelableNodeEventArgs e) { ultraGrid1.UpdateData(); int dtChg1 = dataTable1.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg1 > 0) { if (MessageUtil.ShowYesNoAndQuestion("附加要求有数据修改,是否放弃编辑?") == DialogResult.No) { e.Cancel = true; return; } } } private void dlgOrderAddAsk_FormClosing(object sender, FormClosingEventArgs e) { if (this.DialogResult != DialogResult.OK) { ultraGrid1.UpdateData(); int dtChg1 = dataTable1.Rows.Cast().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count(); if (dtChg1 > 0) { if (MessageUtil.ShowYesNoAndQuestion("附加要求有数据修改,是否退出?") == DialogResult.No) { e.Cancel = true; return; } } } } } public class ReturnMessage : EventArgs { private string addAskNo = ""; public string AddAskNo { get { return addAskNo; } set { addAskNo = value; } } private string message = ""; public string Message { get { return message; } set { message = value; } } } }