Jakob Andersen skrev:
> Jeg går udfra at det du ønsker er en slags træstruktur, har
> jeg ret?
Som jeg læser spørgsmålet er der kun to niveauer - præcis som din
eksempelopstilling herunder.
> hovedemne1
> - emne1
> hovedemne2
> - emne1
> - emne2
[snip]
> 2. Ét sorteret udtræk der blot løbes igenne og tager højde for
> indrykning
>
> Den mest optimale vil være nr. 2, men den kan godt blive lidt
> indviklet.
Hvis den skal fungere som en ægte træstruktur med mange niveauer er
den nok lidt indviklet. Men en simpel udgave der blot arbejder i to
niveauer er nem at lave.
Jeg antager at der er en tabel til hovedemner og en tabel til
underemner. Et select (inner join) på de to tabeller kunne fx give
følgende uddata:
hovedID | underID | hovedemne | underemne
1 1 Biler Ny kassevogn fra Ford
1 4 Biler Test af Volvo V70
1 5 Biler Bilstereotest
2 7 Både Flying vinbjergsnegl fra Team K
3 12 Huse Nyt køkken for 25.000
3 15 Huse Designerbolig i hvidt
Postsættet skal sorteres så alle underemner inden for samme
hovedemner står sammen - fx som ovenfor sorteret efter hovedID,
underID.
For ikke at gentage hovedoverskrifterne i udskriften skal man blot
gemme den sidst udskrevne værdi for hovedoverskriften.
Eksempel:
Dim oldHovedID
oldHovedID = 0 ' Hvis hovedID er et autonummer vil 0 ikke
' forekomme
Do While Not rs.EOF
If rs("hovedID") <> oldHovedID Then
' Udskriv overskriften
Response.write rs("hovedemne")
' Udskift værdien i oldHovedID
oldHovedID = rs("hovedID")
End If
' Udskriv underemnet
Response.write "- " & rs("underemne")
' Fortsæt løkken
rs.movenext
Loop
Selve formateringen af indrykket kan naturligvis tilpasses.
Ovenstående metode kan godt modificeres til at virke på mere end 2
niveauer - men jo flere niveauer man tager med desto sværere bliver
det at overskue de indlejrede løkker.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html