plis, yo se que alguien puede ayudarme, una manito por favor...

04/03/2005 - 15:31 por The Keymaker | Informe spam
Perdón por reiterar el post, solo que estoy complicado sin poderlo
solucionar en ASP y sé que alguien de buena voluntad podrá ayudarme...
quizas no con el codigo, pero sin con una orientacion de como hacerlo...


Tengo una tabla jerarquizada de categorias y subcategorias LA CUAL NO PUEDO
CAMBIAR...

id_Categoria titulo depende_de
0 raiz 1
1 categ1 1
2 categ2 1
3 categ3 1
4 categ4 1
5 categ5 1
6 categ1.1 1
7 categ1.2 1
8 categ2.1 2
9 categ2.2 2
10 categ2.2.1 9


Cada categoria (salvo las raíces) depende de una anterior en la misma
tabla...
¿como puedo hacer a partir de esta tabla un arbol de categorias asi?

Categ1
Categ2
-Categ2.2.1
Categ3
Categ4
Categ5
Categ6
Categ7
Categ8
Categ9
Categ10

¡¡¡Mucho les agradecere su ayuda!!!

KM, desde Chile

Preguntas similare

Leer las respuestas

#1 Matias Iacono
04/03/2005 - 15:31 | Informe spam
Solo con una funcion recursiva... es lo ideal.

Te envio el codigo de la misma... posiblemente tengas que adaptarlo un
poco... pero el concepto es el mismo:

<select name="Id_Depend" size="15" multiple>
<option value="0" <%If (Id_Depend=0) Then
Response.Write("Selected")%>>
No Depend </option>
<%
Call showTreeCategory(0,0,Id_Depend) 'level , space count , Selected
%>
</select>

Function showTreeCategory(id, sc, sel)
SQL = "Select * From tblCategory Where Id_Depend=" & id & " And
Id_Company=" & Id_Company
Set rstCat = cnx.Execute (SQL)

While (Not rstCat.EOF)
strCad = ""
For i=1 To sc
strCad = strCad & "&nbsp;&nbsp;&nbsp;&nbsp;"
Next

If (rstCat("Active") = true) Then
strCad = strCad & rstCat("Name_Category")
Else
strCad = strCad & rstCat("Name_Category") & " (No Active)"
End If

strSelected = ""
If (rstCat("Id_Category")=sel) Then
strSelected = " Selected"
End If

Response.Write ("<option value='" & rstCat("Id_Category") & "'" &
strSelected & ">" & strCad & "</option>" & vbcrlf)

Call showTreeCategory (rstCat("Id_Category"), (CInt(sc)+1), sel)

rstCat.MoveNext
Wend
End Function

En mi caso, necesitaba mostrarlo en un combo... asi que genera tags para el
combo.

Saludos,

Matias Iacono
Microsoft MVP



"The Keymaker" wrote in message
news:
Perdón por reiterar el post, solo que estoy complicado sin poderlo
solucionar en ASP y sé que alguien de buena voluntad podrá ayudarme...
quizas no con el codigo, pero sin con una orientacion de como hacerlo...


Tengo una tabla jerarquizada de categorias y subcategorias LA CUAL NO


PUEDO
CAMBIAR...

id_Categoria titulo depende_de
0 raiz 1
1 categ1 1
2 categ2 1
3 categ3 1
4 categ4 1
5 categ5 1
6 categ1.1 1
7 categ1.2 1
8 categ2.1 2
9 categ2.2 2
10 categ2.2.1 9


Cada categoria (salvo las raíces) depende de una anterior en la misma
tabla...
¿como puedo hacer a partir de esta tabla un arbol de categorias asi?

Categ1
Categ2
-Categ2.2.1
Categ3
Categ4
Categ5
Categ6
Categ7
Categ8
Categ9
Categ10

¡¡¡Mucho les agradecere su ayuda!!!

KM, desde Chile


Respuesta Responder a este mensaje
#2 Nuno Santos
04/03/2005 - 15:54 | Informe spam
Lo puedes hacer con una función recursiva, tenta con esto, es lo máximo que
te puedo enviar!!!! Sino ainda me despiden del trabajo, por estar a divulgar
código de la empresa...

<%
dim oFamilia, Res, bRes, i, j, cod, x, a,CodFam,b
dim nome,desc, pai,mycod,mynome,mydesc,mypai,myterm, term

'buscar recordset con los datos
'atención los datos tienen que estar ordenados pelo campo depende_de (en tu
caso)
set RS = .

cod = ""
nome = ""
desc = ""
pai = ""
i = 0
while not rs.eof
cod = cod & RS(" id_Categoria ") & "[@]"
nome = nome & RS("titulo") & "[@]"
desc = desc & RS("totulo") & "[@]"
pai = pai & RS("depende_de") & "[@]"
term = term & RS("Terminal")& "[@]" ' se é terminal significa que pode ter
filhos 0/1
i = i + 1
rs.movenext
wend

cod = mid(cod,1,len(cod)-1)
mycod = split(cod,"[@]",-1,1)

nome = mid(nome,1,len(nome)-1)
mynome = split(nome,"[@]",-1,1)

desc = mid(desc,1,len(desc)-1)
mydesc = split(desc,"[@]",-1,1)

pai = mid(pai,1,len(pai)-1)
mypai = split(pai,"[@]",-1,1)

term = mid(term,1,len(term)-1)
myterm = split(term,"[@]",-1,1)

rs.close
set ors = nothing

'*****************************************************

' b = a para poder utilizar na função len(b)...
a = "<img src='/images/transp.gif' border=0 width height=1>"
b = a
%>

<div align="center">
<table border="0" cellpadding="0" cellspacing="5"><%
arvoremover 0,"","",a,0,0%>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="../design/images/transp.gif" height="20"></td>
</tr>
</table>
</div>
<%
end function

function arvoremover(cod,nome,desc,a,pai,term)
dim y, x
if cod <> 0 then%>
<tr>
<td align="left"><nobr><img src="../design/images/transp.gif" border="0"
width="15" height="1"><%=a%><%if cint(pai) <> 0 then%><img
src="../design/images/im_seta01.gif" border="0" hspace="5"><%end if%><a
class="texton" href="urlto.asp?Cod=<%=cod%>"><%=(nome)%></a><%if desc <> ""
then%>&nbsp;&nbsp;<a class="text">(<%=(desc)%>)</a><%end
if%>&nbsp;&nbsp;<%if cint(term)=1 then%>&nbsp;&nbsp;<a class="text"
href="urlto_asp?prc=8&amp;cod=<%=cod%>">ver produtos...</a><%end if%><img
src="../design/images/transp.gif" border="0" width="15"
height="1"></nobr></td>
</tr><%
end if
for y = 0 to i-1
if cint(mypai(y)) = cint(cod) then
a = a & "<img src='/images/transp.gif' border=0 width height=1>"
arvoremover mycod(y), mynome(y),mydesc(y),a,mypai(y),myterm(y)
end if
next
' len(b) é o comprimento que se debe subtraer variavel a
a = mid(a,1,(len(a))-(len(b)))
end function
%>


Nuno Santos
nunos7[REMOVER]@hotmail.com

"The Keymaker" wrote in message
news:
Perdón por reiterar el post, solo que estoy complicado sin poderlo
solucionar en ASP y sé que alguien de buena voluntad podrá ayudarme...
quizas no con el codigo, pero sin con una orientacion de como hacerlo...


Tengo una tabla jerarquizada de categorias y subcategorias LA CUAL NO
PUEDO
CAMBIAR...

id_Categoria titulo depende_de
0 raiz 1
1 categ1 1
2 categ2 1
3 categ3 1
4 categ4 1
5 categ5 1
6 categ1.1 1
7 categ1.2 1
8 categ2.1 2
9 categ2.2 2
10 categ2.2.1 9


Cada categoria (salvo las raíces) depende de una anterior en la misma
tabla...
¿como puedo hacer a partir de esta tabla un arbol de categorias asi?

Categ1
Categ2
-Categ2.2.1
Categ3
Categ4
Categ5
Categ6
Categ7
Categ8
Categ9
Categ10

¡¡¡Mucho les agradecere su ayuda!!!

KM, desde Chile


Respuesta Responder a este mensaje
#3 Carlos Bladinieres
07/03/2005 - 21:39 | Informe spam
Checa el codigo que viene en la siguientes paginas y lo puedes descargar de
ahi.
Viene opcion para listas desplegables dobles, triples o estructura de arbol.

http://test.mobmol.com/combo

O directamente a la de estructura de arbol que quieres.

http://test.mobmol.com/combo/arbol_tigra.asp

Saludos,

Carlos

"The Keymaker" escribió en el mensaje
news:
Perdón por reiterar el post, solo que estoy complicado sin poderlo
solucionar en ASP y sé que alguien de buena voluntad podrá ayudarme...
quizas no con el codigo, pero sin con una orientacion de como hacerlo...


Tengo una tabla jerarquizada de categorias y subcategorias LA CUAL NO


PUEDO
CAMBIAR...

id_Categoria titulo depende_de
0 raiz 1
1 categ1 1
2 categ2 1
3 categ3 1
4 categ4 1
5 categ5 1
6 categ1.1 1
7 categ1.2 1
8 categ2.1 2
9 categ2.2 2
10 categ2.2.1 9


Cada categoria (salvo las raíces) depende de una anterior en la misma
tabla...
¿como puedo hacer a partir de esta tabla un arbol de categorias asi?

Categ1
Categ2
-Categ2.2.1
Categ3
Categ4
Categ5
Categ6
Categ7
Categ8
Categ9
Categ10

¡¡¡Mucho les agradecere su ayuda!!!

KM, desde Chile


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida