/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
dobbelt loop
Fra : Laurits Thomsen


Dato : 27-06-06 09:40

Jeg forsøger at lave en side med opslag der anvender et dobbelt
loop. Jeg vil gerne have vist alle institutioner fra en tabel og
med alle de tilhørende ydelser (og ydelsesoplysninger) under dem:

Institution1
ydelse1.1 Norm Belæg.pct Pris
ydelse1.2 Norm Belæg.pct Pris
ydelse1.3 Norm Belæg.pct Pris

Institution2
ydelse2.1 Norm Belæg.pct Pris
ydelse2.2 Norm Belæg.pct Pris
ydelse2.3 Norm Belæg.pct Pris


Lige nu kan jeg dog kun få det til at se således ud:

Institution1
ydelse1.1 Norm Belæg.pct Pris
Institution1
ydelse1.2 Norm Belæg.pct Pris
Institution1
ydelse1.3 Norm Belæg.pct Pris osv...


Min kode ser således ud (Jeg kan desværre ikke give et link til
siden, da siden pt befinder sig på et internt netværk):

<%
Dim rs
Dim rs1
Dim koml
Dim inst


koml= session("User")

strSQL1 = "SELECT kommune.Kommune, kommune.Id,
Institut.Institution FROM (kommune INNER JOIN Institut ON
kommune.Id = Institut.kommune_ID) INNER JOIN Ydelse ON
Institut.Id = Ydelse.Institut_ID WHERE
(kommune.[kommune]='"&koml&"') ;"
Set rs1 = Conn.Execute(strSQL1)

inst= rs1("institution")
%>

<div>
<p class=MsoNormal style='text-align:center'><b
style='mso-bidi-font-weight:normal'><span
style='color:red'>Indberetning af ydelsespriser til
Rammeaftalen<o:p></o:p></span></b></p>
</div>

<% response.write "<u><i><b>" & session("User") &
"</u></b></i><br><br>"%>

<%

' Udfør forespørgsel (rs indeholder nu resultatet)

strSQL = "SELECT kommune.Kommune, kommune.Id,
Institut.Institution, Ydelse.Ydelse, Ydelse.Norm, Ydelse.Belag,
Ydelse.pris, Ydelse.B2007, Ydelse.B2008, Ydelse.B2009,
Ydelse.B2010 FROM (kommune INNER JOIN Institut ON kommune.Id =
Institut.kommune_ID) INNER JOIN Ydelse ON Institut.Id =
Ydelse.Institut_ID WHERE (Institut.[Institution]='"&inst&"') ;"
Set rs = Conn.Execute(strSQL)


' Gennemløb Recordset (rs) med en løkke
'Sikre at der er data for afdelingen
if rs.BOF and rs.EOF then
' Recordsettet er tomt
Response.write("<h1><p align=center><span style='color:blue'>Der
skal vælges en overtagende myndighed for
valgboksen</span></h1></p><br><br><br>")
else

Do
' årstal
strNavn = rs("ydelse")
' lav et link til opslag.asp med Id-værdien i URL
strLink = "<a href='ydelse.asp?id=" & rs("ID") & "'>" &
strNavn & "</a>"



<!-- Overskrift -->
'Tabeloverskrifter
   
   Response.write "<table border=0 cellspacing=13 cellpadding=0>"
   Response.write "<tr ><td>"& rs("institution") & "</td></tr>"
   Response.write " <tr><td valign=top >"
   Response.write " <p ><b><i>" &strLink& "</i></b></p></td>"
   Response.write " <td><p><b><i>Norm</i></b></p></td>"
   Response.write " <td><p><b><i>Belæg.pct</i></b></p></td>"
   Response.write "<td><p><b><i>Pris</i></b></p></td>"
   Response.write " <td><p><b><i> </i></b></p></td>"
   Response.write " </tr>"
<!-- Overskrift Slut-->

Response.Write "<tr><td><b>" & rs("ydelse") & "</td>"
Response.Write "<td><b>" & rs("norm") & "</td>"
Response.Write "<td><b>" & rs("belag") & "</td>"
Response.Write "   <td><b>" & rs("pris") & "</td></tr>"


' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
end if
Response.write "</table>"
%>


Hvad gør jeg galt??



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (27-06-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-06-06 22:41

Laurits Thomsen skrev:

> Jeg forsøger at lave en side med opslag der anvender et
> dobbelt loop.

Hvad er årsagen til at du vil have en dobbelt løkke? Så vidt jeg
kan se, kan du klare dig med en enkelt (hint: du behøver ikke at
udskrive alle poster ens).

Prøv at samle de to forespørgsler til én (med alle
detailoplysninger), og udskriv dem i første omgang som en normal
tabel:


Institution1 ydelse1.1 Norm Belæg.pct Pris
Institution1 ydelse1.2 Norm Belæg.pct Pris
....

Når det fungerer, kan du rette koden så overskriften kun kommer én
gang pr. gruppe. Spørg hvis du har brug for hjælp til det.


> Do

[snip]

> <!-- Overskrift -->
> 'Tabeloverskrifter
>
> Response.write "<table border=0 cellspacing=13
> cellpadding=0>"

Her starter du en tabel inde i løkken.


> ' Gå til næste Record i rs
> rs.MoveNext
>
> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF

Her slutter løkken, uden at tabellen er afsluttet. Resultatet er at
du får begyndt en tabel for hver post i løkken, uden at afslutte
andet end den sidste:


> Response.write "</table>"

Hvis den html-kode du genererer indeholder fejl, kan du ikke vide
hvordan siden bliver vist.
--
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

Laurits Thomsen (28-06-2006)
Kommentar
Fra : Laurits Thomsen


Dato : 28-06-06 07:17

> Når det fungerer, kan du rette koden så overskriften kun kommer én
> gang pr. gruppe. Spørg hvis du har brug for hjælp til det.

Hej Jens Gyldenkærne Clausen

Mange tak for svaret. Kan du forklare (eller evt. henvise til en side
om) hvordan jeg kan få overskriften til kun at komme med én gang?

Mvh
Laurits

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (28-06-2006)
Kommentar
Fra : Jørn Andersen


Dato : 28-06-06 09:24

On 28 Jun 2006 06:17:17 GMT, Laurits Thomsen
<laurits_vibjerg@hotmail.com> wrote:

>Mange tak for svaret. Kan du forklare (eller evt. henvise til en side
>om) hvordan jeg kan få overskriften til kun at komme med én gang?

strOverskriftGammel = ""
Do While ....
strOverskriftAktuel = objRs("Overskrift")
If strOverskriftAktuel <> strOverskriftGammel Then
' Udskriv med overskrift
strOverskriftGammel = strOverskriftAktuel
Else
' Udskriv uden overskrift
End If

...

objRs.Next
Loop

Altså: Sammnlign med sdiste gang, du udskrev. Hvis det er en ny
overskrift, så udskriv den, ellers ikke.
Indsæt selv dine egne variabel-navne.


Good luck!

--
Jørn Andersen,
Brønshøj

Laurits Thomsen (28-06-2006)
Kommentar
Fra : Laurits Thomsen


Dato : 28-06-06 09:40

> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj

Kanon! Tusinde tak for hjælpen! Du er ret pædagogisk anlagt.

Mvh
Laurits


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (28-06-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-06-06 09:50

Jørn Andersen skrev:

> strOverskriftGammel = ""
> Do While ....
> strOverskriftAktuel = objRs("Overskrift")

Det er ikke strengt nødvendigt at lægge den aktuelle overskrift i
en variabel, men det kan være praktisk hvis den skal benyttes flere
gange.

> If strOverskriftAktuel <> strOverskriftGammel Then
> ' Udskriv med overskrift
> strOverskriftGammel = strOverskriftAktuel

I denne del af if-sætningen skal man så også sætte
strOverskriftGammel = strOverskriftAktuel (eller
objRs("overskrift") hvis man ikke bruger en variabel til den
aktuelle overskrift).

Alt efter hvilken type udskrift man vil have, kan man enten have
hele udskriften af posten inde i if-sætningen eller nøjes med at
udskrive overskriften i if-sætningen, og så lade koden efter if-
sætningen udskrive resten uanset om det er en overskrift eller ej.
--
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

Jørn Andersen (28-06-2006)
Kommentar
Fra : Jørn Andersen


Dato : 28-06-06 10:19

On Wed, 28 Jun 2006 10:49:33 +0200, Jens Gyldenkærne Clausen
<jens@gyros.invalid> wrote:

>Jørn Andersen skrev:
>
>> strOverskriftGammel = ""
>> Do While ....
>> strOverskriftAktuel = objRs("Overskrift")
>
>Det er ikke strengt nødvendigt at lægge den aktuelle overskrift i
>en variabel, men det kan være praktisk hvis den skal benyttes flere
>gange.

Hvilket den jo ofte skal, da den ind imellem også skal udskrives.
(Og i dette tilfælde hjælper det måske også lidt på forståelsen af
hvad der sker, hvis man bruger et forståeligt navn.)

>> If strOverskriftAktuel <> strOverskriftGammel Then
>> ' Udskriv med overskrift
>> strOverskriftGammel = strOverskriftAktuel
>
>I denne del af if-sætningen skal man så også sætte
>strOverskriftGammel = strOverskriftAktuel (eller
>objRs("overskrift") hvis man ikke bruger en variabel til den
>aktuelle overskrift).

Mener du noget andet, end det jeg skrev?


--
Jørn Andersen,
Brønshøj

Jens Gyldenkærne Cla~ (28-06-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-06-06 10:35

Jørn Andersen skrev:

>> Det er ikke strengt nødvendigt at lægge den aktuelle
>> overskrift i en variabel, men det kan være praktisk hvis den
>> skal benyttes flere gange.
>
> Hvilket den jo ofte skal, da den ind imellem også skal
> udskrives.

Jo. Men hvis overskriften kun skal udskrives for fx hver 10. post,
sparer man en del variabeltildelinger.
I praksis er der nok ikke nogen stor forskel.


> (Og i dette tilfælde hjælper det måske også lidt på
> forståelsen af hvad der sker, hvis man bruger et forståeligt
> navn.)

Afgjort.


>>> strOverskriftGammel = strOverskriftAktuel

>> I denne del af if-sætningen skal man så også sætte
>> strOverskriftGammel = strOverskriftAktuel

> Mener du noget andet, end det jeg skrev?

Argh! - jeg overså totalt at opdateringen af strOverskriftGammel
var med i dit eksempel. Beklager.
--
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste