public void PopulaMenus() { trvCResultado.Nodes.Clear(); //Buscar Centro Resultado TList_CentroResultado lCentroResult = string.IsNullOrEmpty(Cd_centroresult) ? CamadaNegocio.Financeiro.Cadastros.TCN_CentroResultado.Buscar(string.Empty, string.Empty, string.Empty, null) : new TCD_CentroResultado().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = string.Empty, vVL_Busca = "(a.cd_centroresult = '" + Cd_centroresult.Trim() + "' or a.cd_centroresult_pai = '" + Cd_centroresult.Trim() + "')" } }, 0, string.Empty); //BUSCA TODOS OS MENUS PAIS List <TRegistro_CentroResultado> lItensPai = lCentroResult.FindAll(p => string.IsNullOrEmpty(p.Cd_centroresult_pai) && p.Nivel.Equals(1)).OrderBy(r => r.Cd_centroresult_pai).ToList(); if (lItensPai.Count > 0) { lItensPai.ForEach(p => { TreeNode no = new TreeNode(p.Ds_centroresultado.Trim()); no.Name = p.Cd_centroresult.Trim(); no.Tag = p.St_sintetico; if (p.St_sinteticobool) { no.ForeColor = Color.Red; } trvCResultado.Nodes.AddRange(new TreeNode[] { no }); //Buscar todos os registro filhos List <TRegistro_CentroResultado> lItensFilho = lCentroResult.FindAll(v => v.Cd_centroresult_pai.Trim().Equals(p.Cd_centroresult.Trim())).OrderBy(r => r.Ds_centroresultado.Trim()).ToList(); if (lItensFilho.Count > 0) { AddCamposTree(lItensFilho, trvCResultado.Nodes); VerificaExisteFilhos(lItensFilho, lCentroResult); } }); } if (cbxExpandir.SelectedIndex.Equals(0)) { trvCResultado.ExpandAll(); } trvCResultado.SelectedNode = trvCResultado.Nodes[0]; }
public void VerificaExisteFilhos(List <TRegistro_CentroResultado> ItemsFilhosMenus, TList_CentroResultado listaMenu) { for (int i = 0; i < ItemsFilhosMenus.Count; i++) { List <TRegistro_CentroResultado> ItemsFilhos = listaMenu.FindAll(c => (c.Cd_centroresult_pai.Trim().Equals(ItemsFilhosMenus[i].Cd_centroresult.Trim()))); if (ItemsFilhos.Count > 0) { AddCamposTree(ItemsFilhos, trvCResultado.Nodes); VerificaExisteFilhos(ItemsFilhos, listaMenu); } } }