DEFINE tree_t DYNAMIC ARRAY OF RECORD nombre VARCHAR(70), imagen VARCHAR(30), valor SMALLINT, nodo VARCHAR(10), hijos VARCHAR(10) END RECORD, k,p SMALLINT MAIN CONNECT TO "smarmotech" USER 'JSOTO' USING 'lmmjvsd2014' OPEN WINDOW w WITH FORM "nuevotree" CALL condatos() #CALL fetch_tree() CLOSE WINDOW w END MAIN FUNCTION condatos() DEFINE pdescrip VARCHAR(100), pcodigo,i,x INT DECLARE busca CURSOR FOR SELECT a.descripcion,a.codigo_Grupo FROM vetb00054 a WHERE a.status_t IS NULL ORDER BY a.descripcion LET i = 1 FOREACH busca INTO pdescrip,pcodigo LET tree_t[i].nombre = pdescrip," PAPA ",i USING "<<" LET tree_t[i].valor=pcodigo LET tree_t[i].nodo = ' ' LET tree_t[i].hijos = i LET tree_t[i].imagen='about.png' CALL llenahijos(tree_t[i].hijos,pcodigo) RETURNING x LET i = x + 1 END FOREACH FOR i = 1 TO tree_t.getLength() DISPLAY "DATA ",tree_t[i].nombre," nodo ",tree_t[i].nodo," hijo ",tree_t[i].hijos END FOR DISPLAY ARRAY tree_t TO record1.* END FUNCTION FUNCTION llenahijos(j,kcodigo) DEFINE j, kcodigo INT, pnombre VARCHAR(100) DECLARE busca_h CURSOR FOR SELECT a.nombre FROM vetb00004 a,vetb00052 b WHERE b.codigo_grupo = kcodigo AND a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente LET k = j + 1 # IF p IS NULL OR p = 0 THEN LET p = j+1 # END IF FOREACH busca_h INTO pnombre LET tree_t[p].hijos = j USING "<<",".",k USING "<<" LET tree_t[p].nombre = pnombre LET tree_t[p].nodo = j USING "<<" LET p = p+1 END FOREACH RETURN p -1 END FUNCTION FUNCTION fetch_tree() DEFINE pid, i, j, n INTEGER FOR i = 1 TO 1 LET tree_t[i].nombre = "DATO" LET tree_t[i].valor=1 LET tree_t[i].nodo = ' ' LET tree_t[i].hijos = '1' END FOR FOR j = 2 TO 4 LET tree_t[j].nombre = "HIJO DEL DATO ",i-1 USING "<<" LET tree_t[j].valor=1 LET tree_t[j].nodo = i -1#i USING "<<" LET tree_t[j].hijos = '1',".",i END FOR DISPLAY ARRAY tree_t TO record1.* FOR i = 1 TO tree_t.getLength() DISPLAY "DATA ",tree_t[i].nombre," nodo ",tree_t[i].nodo," hijo ",tree_t[i].hijos END FOR END FUNCTION