freddy1787
Messages postés60Date d'inscriptionmardi 24 juin 2003StatutMembreDernière intervention19 avril 2009
-
25 juil. 2006 à 15:52
azmah_1
Messages postés2Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention22 novembre 2006
-
22 nov. 2006 à 18:26
Bonjour,
Je dois réaliser un organigramme pour ma boite et je suis bloqué !!
Il doit se construire à partir d'une base de donnée (SQLServer2005) qui est mise a jour continuellement avec l'active directory. Je n'ai que deux champs pour élaborer l'arbre:
"Manager" = > Toute personne ayant quelqu'un en dessous de lui
et
"NTName" => Tout les utilisateurs, managers compris.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Exemple :
NTName | Manager
Boss |
null
sousboss1 | boss
sousboss2 | boss
soussousboss1| sousboss1
sousousboss2 | sousboss2
employé1 | soussousboss1
employé2 | soussousboss1
employé3 | soussousboss1
employé4 | soussousboss2
employé5 | boss
Les deux champs sont sous la forme "domaine\utilisateur"
Voici mon code de construction de l'arbre:
Call arbre(pdg(0))
//pdg(0) trouvé plus haut ...
Function espace(rang)
Fonction de décallage
End Function
Function arbre(manager,rang)
Set rs = server.CreateObject("adoDb.recordset")
sql = "SELECT NTName FROM UserProfile WHERE manager='" & manager & "'" rs.
Open sql, conn
do while not rs.eof
if not isnull(rs.Fields(0).value) then
For i = 0 to rs.Fields.Count -1
enfant = rs.Fields(i).value
Call espace(rang)
Response.Write enfant
rang2 = rang + 1
Call arbre (enfant,rang2)
next
end if
loop
End Function
Ici il ne m'affiche que le premier bras avec qu'une seule personne à chaque fois!
Au lieu de faire:
BOSS
|--sousboss1
| |--soussousboss1
| |--employé1
| |--employé2
| |--employé3
|--sousboss2
| |--soussousboss2
| |--employé4
|--employé5
Il dessine seulement:
|--sousboss1
|--soussousboss1
|--employé1
Si quelqu'un peut m'aider ce serait le TOP !!
Ou si quelqu'un a un lien qui pourrait m'aider ça serait trop cool !!
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 26 juil. 2006 à 10:06
salut,
essaies
Function arbre(manager,rang)
Set rs = server.CreateObject("adoDb.recordset")
sql = "SELECT NTName FROM UserProfile WHERE manager='" & manager & "'" rs.
Open sql, conn
do while not rs.eof
if not isnull(rs.Fields(0).value) then
enfant = rs.Fields(0).value
Call espace(rang)
Response.Write enfant
rang2 = rang + 1
Call arbre (enfant,rang2)
end if
rs.movenext
loop
End Function