# agregar multiples niveles a un treeWidget

**URL:** <https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382>\
**Category:** Velneo\
**Created:** [14 Octubre, 2015 14:27 UTC](https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382 "2015-10-14T14:27:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![boda040909](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/boda040909/32/4205_2.png) [@boda040909](https://foros.velneo.com/u/boda040909)\
**Post date:** [14 Octubre, 2015 14:27 UTC](https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382/1 "2015-10-14T14:27:34Z")

</div>

Buenos dias, Si alguien me puede ayudar con alguna funcion especifica que me permita mostrar una tabla arbolada de 4 niveles en un treeWidget. Solo logro hacer esto para el nivel 1  
item=menu.addTopLevelItem();  
item.setText(0, opcionId);  
item.setText(1, opcionTexto);  
Y luego no se como agregar niveles dentro de el. Solo se agregarle items con esta funcion:  
opcion=item.addChild();   
opcion.setText(0, opcionId);  
opcion.setText(1, opcionTexto);

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [14 Octubre, 2015 16:43 UTC](https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382/2 "2015-10-14T16:43:16Z")

</div>

Si la tabla es arbolada se te mostrará directamente los niveles que disponga.

Si lo que quieres es crear directamente una vista arbolada, tienes que añadir hijos por items, es decir…  
item=menu.addTopLevelItem(); -\> añades un item de nivel superior, 1  
opcion=item.addChild(); -\> añades un item al nivel superior, de ahí item.

Si quieres añadir un hijo a ese, tendrás que usar, opcion.addChild() para ir añadiendo hijos a la rama, nivel 2, y así sucesivamente.

---

<div class="post-metadata">

**Author:** ![juanjo1](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/juanjo1/32/5114_2.png) [@juanjo1](https://foros.velneo.com/u/juanjo1)\
**Post date:** [15 Octubre, 2015 04:33 UTC](https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382/3 "2015-10-15T04:33:41Z")

</div>

Espero te ayude esto, va a 3 niveles:  
DOC\_TYPE\_M : tabla de tipos de documentos  
DOC\_H: tabla cuya maestra es la anterior pero es la maestra de documentos por paciente  
DOC\_ATACH\_H: tabla cuya maestra es la anterior pero aqui se guardan los adjuntos

// ----------------------------  
// Cargar el menú dinámico  
// ----------------------------  
var cargarMenu = function()  
{  
importClass (“VImage” );  
var tree = theRoot.dataView().control(“TREE” );  
tree.setHeaderLabel(0, “Name”);  
tree.setHeaderLabel(1, “ID”);  
tree.setHeaderLabel(2, “OFF”); //FALTA USAR ESTE RECURSO PARA Q SI NO TIENE LO ELIMINAMOS  
//YA ESTA LO DEL OFF PERO DEBERIA PODER IDENTIFICARLO  
tree.setHeaderLabel(3, “Nivel”); //T(Type) D(Document) S(Scan) “A”(Atach)  
tree.setHeaderLabel(4, “Filename”); // En Atach el nombre del Archivo  
tree.setHeaderLabel(5, “Date”);  
tree.hideColumn(1);  
tree.hideColumn(2);  
tree.hideColumn(3);  
tree.hideColumn(4);  
tree.setIconSize(16, 16);  
tree.headerHidden = true;  
tree.clear();  
var icoType = new VImage();  
icoType.loadResource(“51v9lri4.vca/TYPE\_DOC\_ICO”);  
var icoDoc = new VImage();  
icoDoc.loadResource(“51v9lri4.vca/DOCS\_ICO”);  
var icoAtach = new VImage();  
icoAtach.loadResource(“51v9lri4.vca/ATACH\_ICO”);   
var icoScan = new VImage();  
icoScan.loadResource(“51v9lri4.vca/SCAN\_ICO”);  
// --------------------------------------------------------------------------------  
// Preparamos el patrón de DocTypes  
// --------------------------------------------------------------------------------  
var patternType = tree.createItemRegPattern();  
[//patternType.addChildPattern](https://patternType.addChildPattern)(patternDocs);  
patternType.setTable(“ez\_bd/DOC\_TYPE\_M”);  
patternType.setIdFieldText(0, “NAME”);  
patternType.setIdFieldText(1, “ID”);  
patternType.setIdFieldText(2, “OFF”);  
patternType.setTextAlignment(0,0x0080);  
[//patternType.setText](https://patternType.setText)(3, “T”);  
patternType.setIcon(0, icoType);   
// --------------------------------------------------------------------------------  
// Preparamos el patrón de PatientDocs  
// --------------------------------------------------------------------------------  
var patternDocs = tree.createItemRegPattern();  
patternDocs.setTable(“ez\_bd/DOC\_H”);  
patternDocs.setIdFieldText(0, “TITLE\_FORM”); //NUEVO  
patternDocs.setIdFieldText(1, “ID”);  
patternDocs.setIdFieldText(4, “FILENAME\_SDV”);//NUEVO  
patternDocs.setIdFieldText(5, “DATE”);//NUEVO  
patternDocs.setTextAlignment(0,0x0080);  
[//patternDocs.setText](https://patternDocs.setText)(3, “D”);  
[//patternDocs.setIcon](https://patternDocs.setIcon)(0, icoDoc);  
// --------------------------------------------------------------------------------  
// Preparamos el patrón de DocAtach  
// --------------------------------------------------------------------------------  
var patternAtach = tree.createItemRegPattern();  
patternAtach.setTable(“ez\_bd/DOC\_ATACH\_H”);  
patternAtach.setIdFieldText(0, “FILENAME”);  
patternAtach.setIdFieldText(1, “ID”);  
patternAtach.setIdFieldText(4, “FILENAME\_SDV”);//NUEVO  
patternAtach.setTextAlignment(0,0x0080);  
[//patternAtach.setText](https://patternAtach.setText)(3, “A”);  
patternAtach.setIcon(0, icoAtach);  
// --------------------------------------------------------------------------------  
// Leemos la lista de DOC\_TYPE\_M a cargar en el treewidget  
// --------------------------------------------------------------------------------  
var lstTypes = new VRegisterList(theRoot);  
lstTypes.setTable(“ez\_bd/DOC\_TYPE\_M”);  
var a = new Array;  
lstTypes.load(“ORDEN\_ALL”, a);  
// --------------------------------------------------------------------------------  
// Cargamos la lista de películas al treewidget aplicando el patrón  
// --------------------------------------------------------------------------------  
tree.addTopLevelItemRegisterList(lstTypes ,patternType);  
// --------------------------------------------------------------------------------  
// Recorremos los Types del treewidget para incluir los Documents  
// --------------------------------------------------------------------------------  
for(var x = 0 ; x \< tree.topLevelItemCount; ++x)  
{  
var itemType = tree.topLevelItem(x);  
itemType.setText(3,“T”);  
var curType = lstTypes.readAt(x);  
//var lstDocs = curType.loadPlurals(“DOC\_H\_DOC\_TYPE\_M”);  
var lstDocs = new VRegisterList(theRoot);  
lstDocs.setTable(“ez\_bd/DOC\_H”);  
var a = new Array(curType.fieldToInt(“ID”),theRoot.varToInt(“ID\_CERT”));  
lstDocs.load(“DOC\_TYPE”, a);  
itemType.addChildRegisterList(lstDocs, patternDocs);  
if ((itemType.text(2)==1)&&(itemType.childCount()==0))//Validacion del OFF  
tree.deleteTopLevelItem(x)  
else  
{   
for(var y = 0 ; y \< itemType.childCount(); ++y)  
{  
var itemDoc = itemType.child(y);  
var curDoc = lstDocs.readAt(y);  
if (curDoc.fieldToInt(“DOC\_MST”))  
{  
itemDoc.setIcon(0, icoDoc);  
itemDoc.setText(3,“D”);  
}  
else {  
itemDoc.setIcon(0, icoScan);  
itemDoc.setText(3,“S”);  
}   
var lstAtachs = curDoc.loadPlurals(“DOC\_ATACH\_H\_DOC\_H”);  
itemDoc.addChildRegisterList(lstAtachs, patternAtach);  
for(var z = 0 ; z \< itemDoc.childCount(); ++z)  
{  
var itemAtach = itemDoc.child(z);  
var curAtach = lstAtachs.readAt(z);   
itemAtach.setText(3,“A”);  
[//itemAtach.setText](https://itemAtach.setText)(4,curAtach.fieldToString(“FILENAME”));  
}   
}  
}   
};  
[//tree.resizeColumnToContents](https://tree.resizeColumnToContents)(0);  
tree.setColumnWidth(0,350)  
[//tree.expandAll](https://tree.expandAll)()  
};

---

<div class="post-metadata">

**Author:** ![boda040909](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/boda040909/32/4205_2.png) [@boda040909](https://foros.velneo.com/u/boda040909)\
**Post date:** [16 Octubre, 2015 13:13 UTC](https://foros.velneo.com/t/agregar-multiples-niveles-a-un-treewidget/8382/4 "2015-10-16T13:13:45Z")

</div>

Gracias por su aportes, he solucionado mi problema!!!
