Serán bienvenidas las mejoras del caso.
*-------------------------------------------------------* *- CASO 1 - Le paso como NODO el primer Hijo del Nodo en el que estoy posicionado. *- En este caso la rutina NO procesa el Nodo sobre el que estoy (LO EXCLUYE). o=thisform.otree o.selecteditem primerhijo=o.selecteditem.child) ver_rama(primerhijo) *-------------------------------------------------------* *- CASO 2 - Le paso como NODO áquel en el que estoy posicionado. *- En este caso la rutina SI procesa el Nodo sobre el que estoy (LO INCLUYE). o=thisform.otree o.selecteditem ver_rama2(o.selecteditem) *-------------------------------------------------------* PROCEDURE ver_rama(onodo) *--- Pasandole el Primer Hijo del Nodo que me Interesa LOCAL hnodo,next_nodo,t,nhijos IF ISNULL(onodo) RETURN ENDIF MESSAGEBOX(onodo.text) nhijos=onodo.children IF nhijos>0 hnodo=onodo.child ver_rama(hnodo) endif next_nodo=onodo.next IF ISNULL(next_nodo) RETURN ELSE ver_rama(next_nodo) ENDIF RETURN *-------------------------------------------------------* PROCEDURE ver_rama2(onodo) *--- Pasandole el NODO, lo muestra a él y todo lo que cuelga de él LOCAL hnodo,next_nodo,t,nhijos IF ISNULL(onodo) RETURN ENDIF MESSAGEBOX(onodo.text) nhijos=onodo.children IF nhijos>0 hnodo=onodo.child ver_rama(hnodo) endif RETURN *-------------------------------------------------------*Nelson Rodriguez
Salto - Uruguay
gracias, muy util
ResponderBorrar