Avatar billede mini-me Nybegynder
13. juli 2008 - 12:23 Der er 15 kommentarer og
1 løsning

Hjælp til rekursiv funktion

Med henvisning til http://www.eksperten.dk/spm/837221

håber jeg der er nogen der kan hjælpe.
Avatar billede soerenlyn Nybegynder
13. juli 2008 - 21:28 #1
Skal det kun være en 2-niveaus menu? For så er det jo ikke nødvendigt at lave det rekursivt ..
Avatar billede mini-me Nybegynder
14. juli 2008 - 12:16 #2
Nej
Avatar billede mini-me Nybegynder
14. juli 2008 - 23:38 #3
Hmmm, det lader til at være en vanskelig opgave?
Avatar billede mini-me Nybegynder
15. juli 2008 - 10:38 #4
Nogen der kan hjalpe mig paa vej i den rigtige retning?
Avatar billede fennec Nybegynder
15. juli 2008 - 13:37 #5
Noget i denne stil:

function menu(fParent, byVal fLevel)
dim fRS, ff
  set fRS = conn.execute("select * from internetgroup where ParentGroupName='"& fParent &"'")
  while not fRS.eof
    for ff=1 to fLevel
      response.write " "
    next
    response.write fRS("GroupingName")
    call menu(fRS("GroupingName"), fLevel+1)
    fRS.MoveNext
  wend
end function

call menu("", 0)
Avatar billede fennec Nybegynder
15. juli 2008 - 13:38 #6
Havde lige glemt en <br>:
response.write fRS("GroupingName") &"<br>"
Avatar billede fennec Nybegynder
15. juli 2008 - 13:42 #7
Ser ud til at dine kolonner ID og RID i stedet for ParentGroupName og GroupingName, men det kan du vel godt selv rette til i koden :o)
Avatar billede mini-me Nybegynder
15. juli 2008 - 13:50 #8
Se det var nemt :) Og det har jeg brugt mange timer på!

Det virker som en charm... du fortjener point og lidt mere til :P
Avatar billede fennec Nybegynder
15. juli 2008 - 13:58 #9
Jeg arbejder meget med rekursivt funktioner, også er det ikke så svært :o)

.o) <-- One Eyed Jack
Avatar billede mini-me Nybegynder
17. juli 2008 - 14:24 #10
Vil jeg på nogen måde kunne sortere dem??

Jeg tænker hvis nu kalder mine menuer og indsætter værdi for rækkefølge først.:

1. Fyr
2. Gas
3. El
4. Bruse
5. DillerDong

osv. ?
Avatar billede fennec Nybegynder
17. juli 2008 - 14:31 #11
Det kan du sagtens. Det er bare at smide en order by på selecten. Du kunne også gemme den værdi i en helt anden kolonne så du er fri for at have talene med på menuerne:

set fRS = conn.execute("select * from internetgroup where ParentGroupName='"& fParent &"' order by sortKolonne")
Avatar billede mini-me Nybegynder
17. juli 2008 - 15:36 #12
Havde egentlig prøvet med order by men det virkede ikke men det virker åbenbart nu ;)

Jeg tror jeg laver en form for funktion til at fjerne "1." etc.
Avatar billede fennec Nybegynder
17. juli 2008 - 16:07 #13
Hvis du bruge det, skal du være opmærksom på at "10. tekst" kommer før "2. tekst" når det er en tekst sortering:

"1. tekst"
"10. tekst"
"11. tekst"
"2. tekst"
"3. tekst"

Skal tekst sortering fungere skal du skrive "01. tekst".
Avatar billede mini-me Nybegynder
17. juli 2008 - 16:11 #14
rammer vel samme problem igen ved 100 så..
Avatar billede fennec Nybegynder
17. juli 2008 - 16:31 #15
Yep, men nu gik jeg ikke ud fra at du ville overskride den grænse :o)
Men så er det bare at navngive "001", "002".

ps. Alt dette ville ikke være et problem, hvis du lavede en ny kolonne tli sortering. Hvilket også ville være mest rigtigt og hensigtsmæssig, da det ikke forstyre de aktuelle data, og derfor nemt kan migreres til en ny platform i fremtiden... En ny ansat udvikler er måske heller ikke lige opmærksom på at han skal fjerne de første tegn.
Avatar billede mini-me Nybegynder
17. juli 2008 - 16:38 #16
Jeg kan desværre ikke bare tilføje en ekstra kolonne, det bliver hentet ud fra økonomisystem, og der har de ikke mulighed for at lave sortering. Dvs. jeg bliver nød til at lave en slags workaround :) Hvis de vil kunne styre sorteringen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester