Ejemplo n.º 1
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }
Ejemplo n.º 3
0
        /// <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();
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        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);
        }