public List<CommonTreeItem> GetCommonTreeItemsFromRegs(int rschId) { List<CommonTreeItem> res = new List<CommonTreeItem>(); var rRegs = ReportManager.GetRowRegs(rschId); foreach (var r in rRegs) { var item = new CommonTreeItem() { ID = r.KeyIndex, ParentID = r.Parent != null ? (int)r.Parent : -1, Text = String.Format("{0} (Индекс ключа={1})",r.KeyName, r.KeyIndex) }; res.Add(item); } return res; }
public List<CommonTreeItem> GetRawCommonTreeItemsFromRegs(int rschId) { List<CommonTreeItem> res = new List<CommonTreeItem>(); var rRegs = ReportManager.GetRowRegs(rschId); foreach (var r in rRegs) { var item = new CommonTreeItem() { ID = r.KeyIndex, ParentID = r.Parent != null ? (int)r.Parent : -1, Text = r.KeyName }; res.Add(item); } return res; }
//pid2 идентификатор родительского процесса public List<CommonTreeItem> GetCommonTreeItemsFromProcs(int rschId) { List<CommonTreeItem> res = new List<CommonTreeItem>(); var rProcs = ReportManager.GetRowProcesses(rschId); foreach (var p in rProcs) { var item = new CommonTreeItem() { ID = p.Pid1, ParentID = p.Pid2!=null? (int)p.Pid2: -1, Text = String.Format("{0} (pid={1}; число потоков={2})", p.Name, p.Pid1,p.Count) }; res.Add(item); } return res; }
private void ObxodDereva(TreeNode a, CommonTreeItem item) { if (a.Text == item.ParentText) { a.ChildNodes.Add(new TreeNode(item.Text)); item.IsInTree = true; return; } if (a.ChildNodes.Count>0)//a.ChildNodes != null) //дочерние элементы есть { foreach (TreeNode childNode in a.ChildNodes) //не зацикливаеться ли от родителя к 1 ребенку и обратно? { a = childNode; //посетить ребенка ObxodDereva(a, item); } } }