private void tlWBS_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e) { if (tlWBS.FocusedNode.Id < 0) { return; } if (String.IsNullOrWhiteSpace(e.Value.ToString())) { e.Valid = false; e.ErrorText = "名称不可以为空"; return; } if (e.Value.ToString().Contains("_")) { e.Valid = false; e.ErrorText = "名称中不可包含以下字符\n \t_"; return; } if (tlWBS.FocusedNode.ParentNode != null) { foreach (TreeListNode node in tlWBS.FocusedNode.ParentNode.Nodes) { if (node == tlWBS.FocusedNode) { continue; } WBSLineNode wbsLineNode = (WBSLineNode)tlWBS.GetDataRecordByNode(node); if (wbsLineNode != null && wbsLineNode.WbsLineName == e.Value.ToString()) { e.Valid = false; e.ErrorText = "父节点存在同名WBS子项"; return; } } } else { foreach (TreeListNode node in tlWBS.Nodes) { if (node == tlWBS.FocusedNode) { continue; } if (node.GetValue(colWbsLineName) == null) { continue; } if (node.GetValue(colWbsLineName).ToString() == e.Value.ToString()) { e.Valid = false; e.ErrorText = "存在同名WBS子项"; return; } } } }
/// <summary> /// TreeList的样式处理方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tlBoi_NodeCellStyle(object sender, DevExpress.XtraTreeList.GetCustomNodeCellStyleEventArgs e) { WBSLineNode boiNode = tlWBS.GetDataRecordByNode(e.Node) as WBSLineNode; if (boiNode != null && !String.IsNullOrEmpty(boiNode.WbsLineNo) && boiNode.StatId == 0) { e.Appearance.Font = new Font(e.Appearance.Font, FontStyle.Italic); e.Appearance.ForeColor = Color.Gray; } }
/// <summary> /// 所选择的WBS清单项改变时,加载相应的WBS清单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tlWBS_FocusedNodeChanged(object sender, FocusedNodeChangedEventArgs e) { WBSLineNode focusedNode = tlWBS.GetDataRecordByNode(tlWBS.FocusedNode) as WBSLineNode; if (focusedNode != null) { viewModel.CurrentSelectedNode = focusedNode; RefreshStat(); } }
private List <WBSLineNode> GetPath(WBSLineNode node) { List <WBSLineNode> resultNodes = new List <WBSLineNode>(); while (node.ParentBoiNode != null) { resultNodes.Insert(0, node.ParentBoiNode); node = node.ParentBoiNode; } return(resultNodes); }
/// <summary> /// 新增WBS子项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BarWBSNewChild_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { tlWBS.PostEditor(); WBSLineNode nodeNew; WBSLineNode nodeSelected = tlWBS.GetDataRecordByNode(tlWBS.FocusedNode) as WBSLineNode; if (nodeSelected == null) { XtraMessageBox.Show("请选中项!"); return; } if (nodeSelected != null && nodeSelected.RelationList != null && nodeSelected.RelationList.Count > 0) { XtraMessageBox.Show("选中的节点中存在合同清单关联项,请删除关联项后再新增该节点的合同清单关联项。"); return; } nodeNew = viewModel.InsertNode(nodeSelected); TreeListNode tlnNode = tlWBS.FindNodeByKeyID(nodeNew.WbsSysCode); tlWBS.MakeNodeVisible(tlnNode); tlWBS.SetFocusedNode(tlnNode); }
public DataTable GetExportTable() { DataTable exportTable = new DataTable(); exportTable.Columns.Add("单位工程"); exportTable.Columns.Add("单位工程单元"); exportTable.Columns.Add("分部"); exportTable.Columns.Add("分项"); DataColumn dcPart = exportTable.Columns.Add("部位"); exportTable.Columns.Add("清单编号"); exportTable.Columns.Add("清单项目"); exportTable.Columns.Add("单位"); exportTable.Columns.Add("数量"); exportTable.Columns.Add("系统编号1"); exportTable.Columns.Add("系统编号2"); exportTable.Columns.Add("单位工程Code"); exportTable.Columns.Add("单位工程单元Code"); exportTable.Columns.Add("分项Code"); exportTable.Columns.Add("分部Code"); exportTable.Columns.Add("部位Code"); for (int i = 0; i < BoiList.Count; i++) { DataRow dr = exportTable.NewRow(); exportTable.Rows.Add(dr); WBSLineNode node = AllList.Find(m => m.WbsLineNo == BoiList[i].WBSLineNo); if (node == null) { continue; } dr["部位"] = node.WbsLineName; dr["部位Code"] = node.WbsSysCode; List <WBSLineNode> result = GetPath(node); for (int j = 0; j < result.Count; j++) { String columnName = null; if (j < columns.Count) { columnName = columns[j]; } else { int nameIndex = 1; if (newColumns.Count > 0) { nameIndex = newColumns.Count + 1; newColumns.Add("分部分项/部位" + nameIndex); } columnName = "分部分项/部位" + nameIndex; columns.Add(columnName); DataColumn colTemp = exportTable.Columns.Add(columnName); exportTable.Columns.Add(columnName + "Code"); colTemp.SetOrdinal(dcPart.Ordinal); } dr[columnName] = result[j].WbsLineName; dr[columnName + "Code"] = result[j].WbsSysCode; } dr["清单编号"] = BoiList[i].IItemCoe; dr["清单项目"] = BoiList[i].ItemName; dr["数量"] = BoiList[i].Qty.HasValue ? BoiList[i].Qty.Value.ToString("0.00") : ""; dr["单位"] = BoiList[i].Uom; dr["系统编号1"] = BoiList[i].WBSLineNo; dr["系统编号2"] = BoiList[i].ItemNo; } return(exportTable); }