Exemplo n.º 1
0
 /// <summary>
 /// 复制当前节点
 /// </summary>
 /// <param name="newNode"></param>
 public void CopyTo(LibTreeNode newNode)
 {
     if (newNode != null)
     {
         PropertyInfo[] propertys = newNode.GetType().GetProperties();
         foreach (PropertyInfo p in propertys)
         {
             PropertyInfo info = this.GetType().GetProperty(p.Name);
             if (info.GetSetMethod() != null)
             {
                 p.SetValue(newNode, info.GetValue(this, null), null);
             }
         }
         //newNode.NodeType = this.NodeType;
         //newNode.Name = this.Name;
         //newNode.Text = this.Text;
         //newNode.OriginalName = this.OriginalName;
         //newNode.Package = this.Package;
     }
     else
     {
         ExceptionManager.ThrowError("参数newNode不允许为null");
         //throw new LibExceptionBase("参数newNode不允许为null");
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 复制包括子节点
        /// </summary>
        /// <returns></returns>
        public LibTreeNode Copy()
        {
            LibTreeNode result = new LibTreeNode();
            LibTreeNode child  = null;

            CopyTo(result);
            if (this.Nodes != null)
            {
                foreach (LibTreeNode item in this.Nodes)
                {
                    child = new LibTreeNode();
                    item.CopyTo(child);
                    result.Nodes.Add(child);
                }
            }
            return(result);
        }
Exemplo n.º 3
0
 public static void GetAllFieldsByDS(LibDataSource ds, TreeView tree, List <ExistField> existfields)
 {
     #region 收集数据源字段
     foreach (LibDefineTable deftb in ds.DefTables)
     {
         LibTreeNode deftbnode = new LibTreeNode();
         deftbnode.Name = deftb.TableName;
         deftbnode.Text = string.Format("{0}({1})", deftb.DisplayName, deftb.TableName);
         tree.Nodes.Add(deftbnode);
         LibTreeNode _node;
         if (deftb.TableStruct != null)
         {
             foreach (LibDataTableStruct dtstruct in deftb.TableStruct)
             {
                 LibTreeNode dtstructnode = new LibTreeNode();
                 dtstructnode.Name   = dtstruct.Name;
                 dtstructnode.Text   = string.Format("{0}({1})", dtstruct.DisplayName, dtstruct.Name);
                 dtstructnode.NodeId = dtstruct.TableIndex.ToString();
                 deftbnode.Nodes.Add(dtstructnode);
                 if (dtstruct.Fields != null)
                 {
                     foreach (LibField fld in dtstruct.Fields)
                     {
                         if (!fld.IsActive)
                         {
                             continue;
                         }
                         _node         = new LibTreeNode();
                         _node.Name    = fld.Name;
                         _node.Text    = fld.DisplayName;
                         _node.Tag     = true;
                         _node.Checked = existfields.FirstOrDefault(i => i.Name == fld.Name && i.FromTableNm == dtstruct.Name) != null;
                         dtstructnode.Nodes.Add(_node);
                         if (fld.SourceField != null && fld.SourceField.Count > 0)
                         {
                             foreach (LibFromSourceField fromfld in fld.SourceField)
                             {
                                 if (fromfld.RelateFieldNm != null && fromfld.RelateFieldNm.Count > 0)
                                 {
                                     foreach (LibRelateField relateField in fromfld.RelateFieldNm)
                                     {
                                         if (relateField != null)
                                         {
                                             _node         = new LibTreeNode();
                                             _node.Name    = string.IsNullOrEmpty(relateField.AliasName) ? relateField.FieldNm : relateField.AliasName;
                                             _node.Text    = relateField.DisplayNm;
                                             _node.Tag     = false;
                                             _node.Checked = existfields.FirstOrDefault(i => i.Name == _node.Name && i.FromTableNm == dtstruct.Name) != null;
                                             dtstructnode.Nodes.Add(_node);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     #endregion
 }