824 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			824 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.ComponentModel; | |||
|  | using System.Data; | |||
|  | using System.Drawing; | |||
|  | using System.Text; | |||
|  | using System.Linq; | |||
|  | using System.Windows.Forms; | |||
|  | using DevExpress.XtraBars; | |||
|  | using DevExpress.XtraGrid.Views.Base; | |||
|  | //using DeiNiu.wms.Logical; | |||
|  | using DeiNiu.wms.Data; | |||
|  | using DevExpress.XtraGrid.Columns; | |||
|  | 
 | |||
|  | using System.Threading; | |||
|  | using DevExpress.XtraGrid.Views.Grid; | |||
|  | using DevExpress.XtraEditors.DXErrorProvider; | |||
|  | using DeiNiu.wms.Data.Model; | |||
|  | using DeiNiu.wms.win.ServiceReferenceNodes; | |||
|  | using DeiNiu.Utils; | |||
|  | using DevExpress.XtraEditors.Controls; | |||
|  | namespace DeiNiu.wms.win | |||
|  | { | |||
|  |     public partial class DictionaryForm : BasicRibbonForm | |||
|  |     { | |||
|  |         ServiceReferenceNodes.NodeClient client{ | |||
|  |             get { return Park.client; } | |||
|  |         } | |||
|  |         wcfNode wnode = new wcfNode(); | |||
|  |        // lNode lgt = new lNode();  | |||
|  |         private string fieldName = Node.fields.name.ToString(); | |||
|  |         private string fieldDesc =Node.fields.description.ToString(); | |||
|  |         private string lastQuery = ""; | |||
|  |         private DataTable dt; | |||
|  |         //private int selectedNodeValue =-1; | |||
|  |         private bool isAdding = true; | |||
|  |         private int parentId = 0; | |||
|  |         int lastEditId =-1; | |||
|  |         int lastParent = -1; //last deleted 's parent id | |||
|  |         DevExpress.XtraTreeList.Nodes.TreeListNode parentNode; | |||
|  | 
 | |||
|  |         public DictionaryForm() | |||
|  |         { | |||
|  |             InitializeComponent(); | |||
|  |             initialControls(); | |||
|  |             query();// queryWithNewThread(); | |||
|  |             // This line of code is generated by Data Source Configuration Wizard | |||
|  |             loadDesks(); | |||
|  |         } | |||
|  | 
 | |||
|  |        | |||
|  |         #region initialControls | |||
|  |         private void initialControls() | |||
|  |         { | |||
|  |             initialTreelist();  | |||
|  |             initialQueryInput(); | |||
|  |             swithOperationType(); | |||
|  |             setValidationRule(); | |||
|  |             txtParent.Properties.ReadOnly = true; | |||
|  |             comType.ReadOnly = true; | |||
|  |             txtID.Properties.ReadOnly = true; | |||
|  |             this.txtFlag.ReadOnly = !checkPermission(WmsConstants.SPECIAL_AUTHS_DIC_DELETE); | |||
|  |            // swSys.Enabled =  checkPermission(WmsConstants.SPECIAL_AUTHS_SUPER);  | |||
|  |             initialComboBoxes(); | |||
|  |         } | |||
|  |         private void initialComboBoxes() | |||
|  |         { | |||
|  |             //initial combobox of port | |||
|  | 
 | |||
|  |             initialComboBoxs(comType, dicValueType, false); | |||
|  |             this.comType.Properties.TextEditStyle = TextEditStyles.DisableTextEditor; | |||
|  |             this.comType.SelectedIndex = 0; | |||
|  |         } | |||
|  |         | |||
|  |         private void setValidationRule() | |||
|  |         { | |||
|  |           dxValidationProvider1.ValidationMode = ValidationMode.Auto; | |||
|  |           dxValidationProvider1.SetValidationRule(txtDicName, ValidationRules.notEmptyValidationRule); | |||
|  |           txtDicName.Properties.MaxLength = 40; | |||
|  |           txtGoodDesc.Properties.MaxLength = 250; | |||
|  |           textEdit1.Properties.MaxLength = txtDicName.Properties.MaxLength; | |||
|  |          // txtFlag.Properties.MaxLength = 5; | |||
|  | 
 | |||
|  |           ConditionValidationRule rangeValidationRule = new ConditionValidationRule(); | |||
|  |           rangeValidationRule.ConditionOperator = ConditionOperator.Between; | |||
|  |           rangeValidationRule.Value1 = 1; | |||
|  |           rangeValidationRule.Value2 = 10000; | |||
|  |           rangeValidationRule.ErrorText = String.Format("{0} - {1} 之间任意一数字!", 1000, 9999); | |||
|  |           rangeValidationRule.ErrorType = ErrorType.Critical; | |||
|  |        //   dxValidationProvider.SetValidationRule(txtFlag, rangeValidationRule); | |||
|  |          // dxValidationProvider.SetValidationRule(txtFlag, ValidationRules.getNumberRangeValidationRule(0,10000)); | |||
|  |           txtFlag.Text = "0"; | |||
|  |         } | |||
|  |         private void initialTreelist() | |||
|  |         { | |||
|  |             //this.treeList1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; | |||
|  |             //treeList1.OptionsView.ShowHorzLines = false; | |||
|  |             //treeList1.OptionsView.ShowVertLines = false; | |||
|  |             treeList1.FocusedNodeChanged += new DevExpress.XtraTreeList.FocusedNodeChangedEventHandler( treeList1_FocusedNodeChanged); | |||
|  |             treeList1.KeyFieldName = "id"; | |||
|  |             treeList1.ParentFieldName = "parentid"; | |||
|  |             treeList1.OptionsBehavior.Editable = false; | |||
|  |             //searchLookUpEdit1.Properties.ValueMember = "id"; | |||
|  |             //searchLookUpEdit1.Properties.DisplayMember = fieldName; | |||
|  |             //searchLookUpEdit1.Properties.NullText = "系统";   | |||
|  |         } | |||
|  |         #endregion | |||
|  |         private void buildTreelist() | |||
|  |         {  | |||
|  |             Node nd = new Node(); | |||
|  |             //dt = nd.Query().Tables[0];   | |||
|  |             //treeList1.DataSource = dt; | |||
|  | 
 | |||
|  |             string query = txtQuery.Text.Trim();  | |||
|  |             lastQuery = query; | |||
|  |             try | |||
|  |             { | |||
|  |                 dt = client.Query(query, 0, 0).Tables[0]; ; | |||
|  |                 client.Close(); | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 showErrorMsg(e,e.Message); | |||
|  |             } | |||
|  |                 treeList1.DataSource = dt; | |||
|  |              | |||
|  |             //DataView dv = nd.Query().Tables[0].DefaultView; | |||
|  |             //dv.RowFilter = "parentid =0"; | |||
|  |             //searchLookUpEdit1.Properties.DataSource =dv ; | |||
|  |             setFocusedNode(); | |||
|  |               | |||
|  |         } | |||
|  |           | |||
|  |         private void setFocusedNode() | |||
|  |         {           | |||
|  |             foreach (DevExpress.XtraTreeList.Nodes.TreeListNode node in treeList1.Nodes) | |||
|  |             { | |||
|  |               //  if (lastEditId >-1) | |||
|  |                 { | |||
|  | 
 | |||
|  |                     if (Convert.ToInt32(node.GetValue("id").ToString()) == lastEditId) | |||
|  |                     { | |||
|  | 
 | |||
|  |                         treeList1.FocusedNode = node; | |||
|  |                         return; | |||
|  |                     } | |||
|  |                     if (traverseNodes(node)) | |||
|  |                     { | |||
|  |                         return; | |||
|  |                     } | |||
|  | 
 | |||
|  |                 } | |||
|  |                      | |||
|  |                 //if (Convert.ToInt32(node.GetValue("id").ToString()) == parentId) | |||
|  |                 //{ | |||
|  |                 //        node.ExpandAll();                    | |||
|  |                 //} | |||
|  |              //   node.ExpandAll();   | |||
|  |               } | |||
|  |               | |||
|  |         }   | |||
|  | 
 | |||
|  |         private bool traverseNodes(DevExpress.XtraTreeList.Nodes.TreeListNode parentNode) | |||
|  |         { | |||
|  |             foreach (DevExpress.XtraTreeList.Nodes.TreeListNode node in parentNode.Nodes) | |||
|  |             { | |||
|  |                 if (Convert.ToInt32( node.GetValue("id").ToString()) == lastEditId) //set focus to last add/updated | |||
|  |                 { | |||
|  |                     treeList1.FocusedNode = node; | |||
|  |                     return true; | |||
|  |                 } | |||
|  |                 if (Convert.ToInt32(node.GetValue("id").ToString()) == lastParent) //set focus for last delete | |||
|  |                 { | |||
|  |                   //  node.ExpandAll(); | |||
|  |                     node.Expanded = true; // expand only sub nodes. | |||
|  | 
 | |||
|  |                     if (node.Nodes.Count > 0) | |||
|  |                     { | |||
|  |                         treeList1.FocusedNode = node.Nodes[0]; | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         treeList1.FocusedNode = node; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 traverseNodes(node); | |||
|  |             } | |||
|  |             return false; | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         private void initialQueryInput() | |||
|  |         { | |||
|  |             this.txtQuery.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtQuery_KeyDown); | |||
|  |         } | |||
|  |          | |||
|  | 
 | |||
|  |        | |||
|  | 
 | |||
|  |         /// <summary>   | |||
|  |         /// loading data | |||
|  |         /// </summary>   | |||
|  |         private void loadData() | |||
|  |         { | |||
|  |             //this.gridviewGoodsType.DataSource = lgt.GetAllActiveData().Tables[0].DefaultView; | |||
|  |             | |||
|  |             string query = txtQuery.Text.Trim();  | |||
|  |             lastQuery = query; | |||
|  |             try | |||
|  |             { | |||
|  |                 DataSet ds = client.Query(query, 0, 0); | |||
|  |                 client.Close(); | |||
|  |                 dt = ds.Tables[0]; | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 showErrorMsg(e.Message); | |||
|  |             } | |||
|  |            | |||
|  |               | |||
|  |         } | |||
|  |           | |||
|  | 
 | |||
|  |         private void btnNew_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             /* | |||
|  |             if (lgt.getNode.ID > 0) | |||
|  |             { | |||
|  |                 lgt.Initialize(); | |||
|  |                 clearInputs(); | |||
|  |                 txtGoodType.Focus(); | |||
|  |                 validData(); | |||
|  |                 return; | |||
|  |             } | |||
|  |             */ | |||
|  |             // begin to create new goodType | |||
|  |             | |||
|  |             if (!validData()) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |              | |||
|  |             // lgt.initialize(); | |||
|  |              setDataBack();   | |||
|  |           | |||
|  |             //Thread th = new Thread(new ThreadStart(this.newGoodType)); | |||
|  |             //th.Start(); | |||
|  |             btnNew.Enabled = false; | |||
|  |             newDic(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void newDic() | |||
|  |         {          | |||
|  |              | |||
|  |             showWaitForm();   | |||
|  |             try | |||
|  |             { | |||
|  |               | |||
|  |                 wnode = client.newWcfNode(wnode); applyDic(); | |||
|  |                 client.Close(); | |||
|  |                  | |||
|  |                 lastEditId = wnode.id; | |||
|  |            //     lastEditId = lgt.getNode.ID; | |||
|  |                 query();// loadData();    | |||
|  | 
 | |||
|  |                 // initialize and clear object and inputs, prepare for adding more.  | |||
|  |                //lgt.initialize(); | |||
|  |                 clearInputs(); | |||
|  | 
 | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                showErrorMsg(e.Message); | |||
|  |             } | |||
|  |             finally | |||
|  |             { | |||
|  |                // WaitFormService.Close(); | |||
|  |                 closeWaitForm();  | |||
|  |                 btnNew.Enabled = true; | |||
|  |             }  | |||
|  |             | |||
|  |         } | |||
|  |        | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         //private void bindDetail() | |||
|  |         //{ | |||
|  |         //    //txtGoodDesc.Text = lgt.getNode.description; | |||
|  |         //    //txtGoodType.Text = lgt.getNode.name; | |||
|  | 
 | |||
|  |         //    txtGoodDesc.Text = wnode.description; | |||
|  |         //    txtDicName.Text = wnode.name; | |||
|  |         //    txtValue.Text = wnode.value; | |||
|  |         //    sw.IsOn = wnode.isOn; | |||
|  |         //    comType.SelectedIndex = wnode.valueType; | |||
|  | 
 | |||
|  |         //} | |||
|  |         private void setDataBack() | |||
|  |         { | |||
|  | 
 | |||
|  |             setParentInfo(); | |||
|  |             wnode.parentid =   wnode.parentid > 0 ? wnode.parentid : parentId; | |||
|  |             wnode.description = txtGoodDesc.Text.Trim(); | |||
|  |             wnode.name = txtDicName.Text.Trim(); | |||
|  |             wnode.isOn = sw.IsOn; | |||
|  |             wnode.value = txtValue.Text.Trim(); | |||
|  |             wnode.valueType = comType.SelectedIndex; | |||
|  |             wnode.isSystem = swSys.IsOn; | |||
|  |             if((enumDicValueType) comType.SelectedIndex ==  enumDicValueType.布尔) { | |||
|  | 
 | |||
|  |                 wnode.value = sw.IsOn ? "开" : "关"; | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |              | |||
|  |             //lgt.getNode.parentid = lgt.getNode.parentid> 0 ? lgt.getNode.parentid :  parentId; | |||
|  |             //lgt.getNode.description = txtGoodDesc.Text.Trim(); | |||
|  |             //lgt.getNode.name = txtGoodType.Text.Trim(); | |||
|  |           //  lgt.getNode.operater = Park.currentUser.GetEmployee.ID; | |||
|  |             if (txtFlag.Text.Trim().Length > 0) | |||
|  |             { | |||
|  |                 try | |||
|  |                 { | |||
|  |                     int flag = Convert.ToInt16(txtFlag.Text.ToString()); | |||
|  |                     wnode.flag = flag; | |||
|  |                 } | |||
|  |                 catch(Exception er) | |||
|  |                 { | |||
|  |                     showErrorMsg(er.Message); | |||
|  |                     txtFlag.Focus(); | |||
|  |                 } | |||
|  |                  | |||
|  |             } | |||
|  |          | |||
|  |            | |||
|  |         } | |||
|  |         void setParentInfo() | |||
|  |         { | |||
|  |             if (treeList1.FocusedNode == null) | |||
|  |             { | |||
|  |                 parentId = 0; | |||
|  |                 return; | |||
|  |             } | |||
|  |             btnNew.Enabled = false; | |||
|  |             if (parentNode == null || parentNode.ParentNode == null) | |||
|  |             {  // current is level 1,2 | |||
|  |                 parentId = Convert.ToInt32(this.treeList1.FocusedNode.GetValue("id").ToString()); | |||
|  |                 this.txtParent.Text = this.treeList1.FocusedNode.GetValue("name").ToString(); | |||
|  | 
 | |||
|  |                  if (checkPermission(WmsConstants.SPECIAL_AUTHS_DIC_DELETE)) | |||
|  |                 { | |||
|  |                     comType.ReadOnly = false; | |||
|  |                     btnNew.Enabled = true; | |||
|  |                 } | |||
|  |             } | |||
|  |             else if (parentNode != null) | |||
|  |             { | |||
|  |                 if (parentNode.ParentNode != null) | |||
|  |                 { //level 3, as max level | |||
|  |                       | |||
|  |                     parentId = Convert.ToInt32(this.treeList1.FocusedNode.GetValue("parentid").ToString()); | |||
|  |                     this.txtParent.Text = parentNode.GetValue("name").ToString(); | |||
|  |                     comType.ReadOnly = true; | |||
|  |                     btnNew.Enabled = true; | |||
|  |                     comType.SelectedIndex =string.IsNullOrEmpty(parentNode.GetValue("valueType").ToString())? 0 :  Convert.ToInt32( parentNode.GetValue("valueType").ToString()); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |         private bool validData() | |||
|  |         { | |||
|  | 
 | |||
|  | 
 | |||
|  |             enumDicValueType type = (enumDicValueType)comType.SelectedIndex; | |||
|  |             try | |||
|  |             { | |||
|  |                 switch (type) | |||
|  |                 { | |||
|  |                     case enumDicValueType.浮点: | |||
|  |                         Convert.ToDecimal(txtValue.Text.Trim()); | |||
|  |                         break; | |||
|  |                     case enumDicValueType.整型: | |||
|  |                         Convert.ToInt32(txtValue.Text.Trim()); | |||
|  |                         break; | |||
|  | 
 | |||
|  |                 } | |||
|  |             } | |||
|  |             catch | |||
|  |             { | |||
|  |                 showErrorMsg("请输入正确的数字"); | |||
|  |                 txtValue.SelectAll(); | |||
|  |                 txtValue.Focus(); | |||
|  |                 return false; | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             bool isvalid = dxValidationProvider1.Validate();  | |||
|  |            | |||
|  |            // MessageBox.Show("goodtype is " + txtGoodType.Text +", is valid ? " + isvalid); | |||
|  | 
 | |||
|  |             return isvalid; | |||
|  |             //String gdtype = txtGoodType.Text.Trim(); | |||
|  |             //if (gdtype.Length == 0) | |||
|  |             //{ | |||
|  | 
 | |||
|  |             //    dxValidationProvider.Validate(); | |||
|  |             //    return false; | |||
|  |             //}  | |||
|  | 
 | |||
|  |             //return true; | |||
|  |         } | |||
|  | 
 | |||
|  |      | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         private void btnSave_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             //if (!getCurrentObject()) | |||
|  |             //{ | |||
|  |             //    return; | |||
|  |             //} | |||
|  |             if (!validData()) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (wnode.name.Equals(txtDicName.Text.Trim()) | |||
|  |                 && wnode.description.Equals(txtGoodDesc.Text.Trim()) | |||
|  |                 && wnode.flag == Convert.ToInt32(txtFlag.Text.Trim()) | |||
|  |                 && wnode.isOn == sw.IsOn | |||
|  |                 && wnode.isSystem == swSys.IsOn  | |||
|  |                 && wnode.value.Equals(txtValue.Text.Trim()) | |||
|  |                 && wnode.valueType.Equals(comType.SelectedIndex) | |||
|  |                 ) | |||
|  |             { | |||
|  |                 MessageBox.Show("没有数据需要更新"); | |||
|  |                 return; | |||
|  |             } | |||
|  |           | |||
|  |             //Thread th = new Thread(new ThreadStart(this.updateGoodType)); | |||
|  |             //th.Start(); | |||
|  |               | |||
|  |              | |||
|  |             updateDic(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void updateDic() | |||
|  |         { | |||
|  |              | |||
|  |             if (!checkPermission(WmsConstants.SPECIAL_AUTHS_DIC_UPDATE)) | |||
|  |             { | |||
|  |                 showErrorMsg(null,"权限不足!"); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |             if (swSys.IsOn && !isSuper()) | |||
|  |             { | |||
|  |                 showErrorMsg(null, "权限不足!"); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             btnSave.Enabled = false; | |||
|  |             showWaitForm(); | |||
|  |             //WaitFormService.Show(this); | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 //update the goodtype  | |||
|  |                 setDataBack(); | |||
|  |                // lgt.getNode.Update(); | |||
|  |               //  lgt.getNode.Update(); | |||
|  |                  | |||
|  |                 client.updateWcfNode(wnode); | |||
|  |                 applyDic(); | |||
|  |                 client.Close(); | |||
|  |                 lastEditId = wnode.id; | |||
|  |                 //get updated data  | |||
|  |                 query();// loadData(); | |||
|  | 
 | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 showErrorMsg(e,e.Message); | |||
|  |                 getCurrentObject(); | |||
|  |             } | |||
|  |             finally | |||
|  |             { | |||
|  |                // WaitFormService.Close(); | |||
|  |                 closeWaitForm();   | |||
|  |                 btnSave.Enabled = true; | |||
|  |             } | |||
|  | 
 | |||
|  |           | |||
|  |           | |||
|  |         } | |||
|  | 
 | |||
|  |         void applyDic() | |||
|  |         { | |||
|  |             if (chkApply.Checked) | |||
|  |             { | |||
|  |                 Park.getDictionary(true); | |||
|  |                 client.applyDicChanges(); | |||
|  |                 Park.loadConfig(); | |||
|  |                 Park.getDictionary(true); | |||
|  |             } | |||
|  |         } | |||
|  |        | |||
|  |         | |||
|  |         private void clearInputs() | |||
|  |         { | |||
|  |             txtValue.Text = ""; | |||
|  |           //  sw.IsOn = false; | |||
|  |           //  comType.SelectedIndex = 0; | |||
|  |             txtDicName.Text = ""; | |||
|  |             txtGoodDesc.Text = ""; | |||
|  |             txtID.Text = ""; | |||
|  |             txtFlag.Text = ""; | |||
|  |             dxValidationProvider1.RemoveControlError(txtFlag); | |||
|  |             dxValidationProvider1.RemoveControlError(txtDicName); | |||
|  |             wnode = new wcfNode(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private bool getCurrentObject() | |||
|  |         { | |||
|  |             //if (selectedNodeValue < 0)// || dt.Rows.Count <= selectedNodeValue) | |||
|  |             //{ | |||
|  |             //    MessageBox.Show("请在列表里选择数据"); | |||
|  |             //    return false; | |||
|  |             //}  | |||
|  | 
 | |||
|  |             DataRowView drv = treeList1.GetDataRecordByNode(this.treeList1.FocusedNode) as DataRowView; | |||
|  |             // lgt.getNode.getModel(drv.Row); | |||
|  |             Node nd = new Node(drv.Row); | |||
|  |             initialWcfNode(nd); | |||
|  |            // lgt.initialize(drv.Row); | |||
|  |            | |||
|  |             return true; | |||
|  |         } | |||
|  | 
 | |||
|  |         void initialWcfNode(Node nd) | |||
|  |         { | |||
|  |             | |||
|  |             wnode.id = nd.ID; | |||
|  |             wnode.name = nd.name; | |||
|  |             wnode.description = nd.description; | |||
|  |             wnode.parentid = nd.parentid; | |||
|  |             wnode.value = nd.value; | |||
|  |             wnode.valueType = nd.valueType; | |||
|  |             wnode.flag = nd.flag; | |||
|  |             wnode.isSystem = nd.isSystem; | |||
|  |             wnode.isOn = nd.isOn; | |||
|  |         } | |||
|  |         private void btnDelete_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!getCurrentObject()) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             if (!checkPermission(WmsConstants.SPECIAL_AUTHS_DIC_DELETE)) | |||
|  |             { | |||
|  |                 showErrorMsg("权限不足!"); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (swSys.IsOn && !isSuper()) | |||
|  |             { | |||
|  |                 showErrorMsg(null, "权限不足!"); | |||
|  |                 return; | |||
|  |             } | |||
|  |             MessageBoxButtons messButton = MessageBoxButtons.OKCancel; | |||
|  |             DialogResult dr = MessageBox.Show(String.Format("确定要删除 {0} 吗?",wnode.name), "删除记录", messButton); | |||
|  |             if (dr == DialogResult.OK) | |||
|  |             { | |||
|  |                 parentId =  Convert.ToInt32(treeList1.FocusedNode .GetValue("parentid").ToString()); | |||
|  |                 try | |||
|  |                 { | |||
|  |                     | |||
|  |                     client.deleteNode(wnode.id) ; | |||
|  |                     applyDic(); | |||
|  |                     client.Close(); | |||
|  |                      | |||
|  |                 } | |||
|  |                 catch (Exception er) | |||
|  |                 { | |||
|  |                    showErrorMsg(er,er.Message); | |||
|  |                     return; | |||
|  |                 } | |||
|  |               //  lgt.initialize(); | |||
|  |                 wnode = new wcfNode(); | |||
|  |                 lastEditId = -1; | |||
|  |                 lastParent = parentId; | |||
|  |                 query();//loadData(); | |||
|  |             } | |||
|  | 
 | |||
|  |    | |||
|  |         } | |||
|  | 
 | |||
|  |         protected void query() | |||
|  |         { | |||
|  |             buildTreelist(); //bind tree   | |||
|  |             showAdminButtons(); | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void showAdminButtons() | |||
|  |         { | |||
|  |             bool isShow = (checkPermission(WmsConstants.SPECIAL_AUTHS_DIC_DELETE)); | |||
|  | 
 | |||
|  |             btnRestDesk.Enabled = isShow; | |||
|  |             btnPrintBox.Enabled = isShow; | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void btnQuery_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             queryWithNewThread(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void queryWithNewThread() | |||
|  |         { | |||
|  |             //Thread th = new Thread(new ThreadStart(this.queryGoodType)); | |||
|  |             //th.Start(); | |||
|  |             btnQuery.Enabled = false; | |||
|  |             queryGoodType(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void queryGoodType() | |||
|  |         { | |||
|  |            | |||
|  |             showWaitForm(); | |||
|  |             try | |||
|  |             {  | |||
|  |                 query();// loadData();   | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 showErrorMsg(e,e.Message); | |||
|  |             } | |||
|  |             finally | |||
|  |             { | |||
|  |                 // WaitFormService.Close(); | |||
|  |                 closeWaitForm(); | |||
|  |                 btnQuery.Enabled = true; | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |        | |||
|  | 
 | |||
|  |   | |||
|  | 
 | |||
|  |         private void txtQuery_KeyDown(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyValue == 13) | |||
|  |             { | |||
|  |                 query(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         | |||
|  | 
 | |||
|  |         private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) | |||
|  |         { | |||
|  |             clearInputs(); | |||
|  |             DevExpress.XtraTreeList.Nodes.TreeListNode currentNode = treeList1.FocusedNode; | |||
|  |             if (currentNode == null) | |||
|  |             { | |||
|  |                 return; | |||
|  |             }  | |||
|  |             parentNode = treeList1.FocusedNode.ParentNode; | |||
|  | 
 | |||
|  |             if (parentNode == null) //set root expand | |||
|  |             { | |||
|  |                 treeList1.FocusedNode.Expanded = true; | |||
|  |             } | |||
|  |            this.txtParent.Text = parentNode == null ? "" : parentNode.GetDisplayText("name"); | |||
|  |            setParentInfo(); | |||
|  |       //     if (currentNode.Tag == null) | |||
|  |          //  { | |||
|  |                //string a = currentNode.GetValue("id").ToString(); | |||
|  |                //selectedNodeValue = Convert.ToInt32(a); | |||
|  |                //DataView dv = dt.DefaultView; | |||
|  |                //dv.Sort = "id desc"; | |||
|  | 
 | |||
|  |                //DataRowView[] drs = dv.FindRows(selectedNodeValue); | |||
|  |                //if (drs.Length > 0) | |||
|  |                //{ | |||
|  |                //    DataRow dr = drs[0].Row; | |||
|  |                //    lgt.getNode.getModel(dr); | |||
|  |                //    currentNode.Tag = lgt.getNode; | |||
|  |                //} | |||
|  | 
 | |||
|  |                | |||
|  |              // currentNode.Tag = lgt.getNode;  | |||
|  | 
 | |||
|  |           // } | |||
|  | 
 | |||
|  |            getCurrentObject(); | |||
|  |             if (isAdding) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             //txtGoodType.Text = currentNode.GetDisplayText(fieldName); | |||
|  |             //txtGoodDesc.Text = currentNode.GetDisplayText(fieldDesc); | |||
|  |             txtDicName.Text =wnode.name; | |||
|  |             txtGoodDesc.Text = wnode.description; | |||
|  |             txtFlag.Text = wnode.flag + ""; | |||
|  |             txtID.Text = wnode.id > 0 ? wnode.id + "" : ""; | |||
|  |             txtValue.Text = wnode.value; | |||
|  |             sw.IsOn = wnode.isOn; | |||
|  |             swSys.IsOn = wnode.isSystem; | |||
|  |             comType.SelectedIndex = wnode.valueType; | |||
|  |             txtDicName.Enabled = !swSys.IsOn || swSys.IsOn && isSuper(); | |||
|  |             txtGoodDesc.Enabled = txtDicName.Enabled; | |||
|  |             txtFlag.Enabled = txtDicName.Enabled; | |||
|  |             txtValue.Enabled = txtDicName.Enabled; | |||
|  |             sw.Enabled = txtDicName.Enabled; | |||
|  | 
 | |||
|  |          //   comType.SelectedIndex = wnode.valueType; | |||
|  |             btnDelete.Enabled = treeList1.FocusedNode.Nodes.Count == 0; | |||
|  |             setParentInfo(); | |||
|  |         } | |||
|  | 
 | |||
|  |          | |||
|  | 
 | |||
|  |         private void DictionaryForm_FormClosing(object sender, FormClosingEventArgs e) | |||
|  |         { | |||
|  |           //  client.Close(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void comType_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             lcBool.Visibility = comType.SelectedIndex ==(int)enumDicValueType.布尔 ?  DevExpress.XtraLayout.Utils.LayoutVisibility.Always : DevExpress.XtraLayout.Utils.LayoutVisibility.Never; | |||
|  |             lcValue.Visibility = comType.SelectedIndex == (int)enumDicValueType.布尔 ? DevExpress.XtraLayout.Utils.LayoutVisibility.Never : DevExpress.XtraLayout.Utils.LayoutVisibility.Always; | |||
|  |              | |||
|  |         } | |||
|  | 
 | |||
|  |         private void btnRestDesk_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             using (ServiceReferenceSetup.SetupClient client = new ServiceReferenceSetup.SetupClient("BasicHttpBinding_ISetup", buildSvrAddress("Setup.svc"))) | |||
|  |             { | |||
|  |                 try | |||
|  |                 { | |||
|  |                     if (client.initialDesk()) | |||
|  |                     { | |||
|  |                         MessageBox.Show("复合台初始化成功!"); | |||
|  |                     } | |||
|  |                 } | |||
|  |                 catch (Exception er) | |||
|  |                 { | |||
|  |                     showErrorMsg(er, er.Message); | |||
|  |                 } | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  |         private void loadDesks() | |||
|  |         { | |||
|  |             using (ServiceReferenceSetup.SetupClient client = new ServiceReferenceSetup.SetupClient("BasicHttpBinding_ISetup", buildSvrAddress("Setup.svc"))) | |||
|  |             { | |||
|  |                 try | |||
|  |                 { | |||
|  |                     DataTable dt = client.getDesks(); | |||
|  | 
 | |||
|  |                     List<string> desks = new List<string>(); | |||
|  | 
 | |||
|  |                     foreach (DataRow dr in dt.Rows) | |||
|  |                     {  | |||
|  |                         desks.Add(enumColors[Convert.ToInt16(dr["name"].ToString().Trim())]); | |||
|  |                     } | |||
|  | 
 | |||
|  |                     initialComboBoxs(this.comboxColors, desks.ToArray(), "全部");  | |||
|  |                 } | |||
|  |                 catch (Exception er) | |||
|  |                 { | |||
|  |                     showErrorMsg(er, er.Message); | |||
|  |                 } | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  |         private void btnPrintBox_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |         } | |||
|  |         private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             swithOperationType(); | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         private void swithOperationType() | |||
|  |         { | |||
|  |             isAdding = tabFuncs.SelectedTabPageIndex ==1; | |||
|  | 
 | |||
|  |             if (isAdding) | |||
|  |             { | |||
|  |                 clearInputs(); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 treeList1_FocusedNodeChanged(null, null); | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |             btnNew.Enabled = isAdding; | |||
|  |             btnSave.Enabled = !isAdding; | |||
|  |             btnDelete.Enabled = !isAdding; | |||
|  |             if (treeList1.FocusedNode != null) | |||
|  |             { | |||
|  |                 btnDelete.Enabled = btnDelete.Enabled && treeList1.FocusedNode.Nodes.Count == 0; | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void tabbedControlGroup3_SelectedPageChanged(object sender, DevExpress.XtraLayout.LayoutTabPageChangedEventArgs e) | |||
|  |         { | |||
|  |             swithOperationType(); | |||
|  |         } | |||
|  | 
 | |||
|  |          | |||
|  |     } | |||
|  | } |