Thread View: dk.edb.internet.webdesign.serverside.asp
8 messages
8 total messages
Started by Michael
Wed, 11 Jan 2012 19:09
Side skift ved udskrift af recordset med Do Loop
Author: Michael
Date: Wed, 11 Jan 2012 19:09
Date: Wed, 11 Jan 2012 19:09
69 lines
2890 bytes
2890 bytes
Jeg har en Access database hvor jeg gerne vil have et sideskift
ind n�r der udskrives en r�kke poster. Det skal gerne komme til
at se s�dan ud:
<div style="page-break-before:always">
Elevnavn 1 - Opgave 1 - Score
Elevnavn 1 - Opgave 2 - Score
Elevnavn 1 - Opgave 3 - Score
</div>
<div style="page-break-before:always">
Elevnavn 2 - Opgave 1 - Score
Elevnavn 2 - Opgave 2 - Score
Elevnavn 2 - Opgave 3 - Score
</div>
<div style="page-break-before:always">
Elevnavn 3 - Opgave 1 - Score
etc....
Jeg bruger f�lgende til at f� udskrevet alle poster med. Men
hvordan f�r jeg lige sideskiftet ind.
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("minedata.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM Elevbruger LEFT JOIN Elevresultat ON
Elevbruger.ElevID = Elevresultat.ElevresultatElevID WHERE
ElevklasseID = 5 AND RMainopgaveID = 16"
Set rs = Conn.Execute(strSQL)
IF rs.eof THEN
response.write "Ingen poster"
Conn.close
set Conn=nothing
Else
Do While Not rs.EOF
Response.Write rs("Elevnavn") & "- Opgave " & rs("ROpgaveID") & "
- Score " & rs("Score") & "<br />"
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
end if
%>
Her kommer de jo bare ud s�dan her:
Elevnavn 1 - Opgave 1 - Score
Elevnavn 1 - Opgave 2 - Score
Elevnavn 1 - Opgave 3 - Score
Elevnavn 2 - Opgave 1 - Score
Elevnavn 2 - Opgave 2 - Score
Elevnavn 2 - Opgave 3 - Score
Elevnavn 3 - Opgave 1 - Score
etc....
--
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
Re: Side skift ved udskrift af recordset med Do Loop
Author: Leif Neland
Date: Wed, 11 Jan 2012 21:29
Date: Wed, 11 Jan 2012 21:29
46 lines
2265 bytes
2265 bytes
Den 11-01-2012 20:09, Michael skrev:
> Jeg har en Access database hvor jeg gerne vil have et sideskift
> ind n�r der udskrives en r�kke poster. Det skal gerne komme til
> at se s�dan ud:
>
BeginDiv="<div....
EndDiv="</div>"
LastId=-1
>
> Do While Not rs.EOF
IF LastID <> Rs("ElevId") then 'Hvis ny elev
IF LastID <> -1 then 'Hvis ikke den f�rste
Response.Write EndDiv EndIf 'Afslut forrige blok
Response.Write BeginDiv 'Start ny blok
LastID = Rs("ElevId") 'Husk elevnr
End If
>
> Response.Write rs("Elevnavn")& "- Opgave "& rs("ROpgaveID")& "
> - Score "& rs("Score")& "<br />"
>
> rs.MoveNext
> Loop
>
Response.Write EndDiv 'Afslut sidste blok
>
> Conn.Close
> Set Conn = Nothing
> end if
> %>
>
> Her kommer de jo bare ud s�dan her:
>
> Elevnavn 1 - Opgave 1 - Score
> Elevnavn 1 - Opgave 2 - Score
> Elevnavn 1 - Opgave 3 - Score
> Elevnavn 2 - Opgave 1 - Score
> Elevnavn 2 - Opgave 2 - Score
> Elevnavn 2 - Opgave 3 - Score
> Elevnavn 3 - Opgave 1 - Score
> etc....
>
Re: Side skift ved udskrift af recordset med Do Loop
Author: Michael
Date: Thu, 12 Jan 2012 06:38
Date: Thu, 12 Jan 2012 06:38
61 lines
2769 bytes
2769 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> BeginDiv="<div....
> EndDiv="</div>"
>
> LastId=-1
> >
> > Do While Not rs.EOF
>
> IF LastID <> Rs("ElevId") then 'Hvis ny elev
> IF LastID <> -1 then 'Hvis ikke den f�rste
> Response.Write EndDiv EndIf 'Afslut forrige blok
> Response.Write BeginDiv 'Start ny blok
> LastID = Rs("ElevId") 'Husk elevnr
> End If
>
>
> >
> > Response.Write rs("Elevnavn")& "- Opgave "& rs("ROpgaveID")&
"
> > - Score "& rs("Score")& "<br />"
> >
> > rs.MoveNext
> > Loop
> >
> Response.Write EndDiv 'Afslut sidste blok
>
K�re Leif tak for din respons
Jeg har fors�gt mig med f�lgende ud fra dit:
Dim BeginDiv, EndDiv, LastId
BeginDiv="<div style=" & "page-break-before:always" & ">"
EndDiv="</div>"
LastId=-1
Do While Not rs.EOF
IF LastID <> Rs("ElevId") then Response.Write rs("Elevnavn") & "-
Opgave " & rs("ROpgaveID") & " - Score " & rs("Score") & "</p>"
'Hvis ny elev
IF LastID <>-1 then
Response.Write EndDiv 'Afslut forrige blok
Response.Write BeginDiv 'Start ny blok
LastID = Rs("ElevId") 'Husk elevnr
End If
rs.MoveNext
Loop
Response.Write EndDiv 'Afslut sidste blok
Det giver ikke �nskede resultat der kommer ingen page-break ind i
kildekoden.
Hvad g�r jeg forkert?
--
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
Re: Side skift ved udskrift af recordset med Do Loop
Author: Leif Neland
Date: Thu, 12 Jan 2012 08:34
Date: Thu, 12 Jan 2012 08:34
77 lines
3782 bytes
3782 bytes
"Michael" <mail@opgavekassen.dk> skrev i en meddelelse
news:4f0e7ff2$0$285$14726298@news.sunsite.dk...
> Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
>
>> BeginDiv="<div....
>> EndDiv="</div>"
>>
>> LastId=-1
>> >
>> > Do While Not rs.EOF
>>
>> IF LastID <> Rs("ElevId") then 'Hvis ny elev
>> IF LastID <> -1 then 'Hvis ikke den f�rste
>> Response.Write EndDiv EndIf 'Afslut forrige blok
Her skulle "End If "nok p� en ny linie.
>> Response.Write BeginDiv 'Start ny blok
>> LastID = Rs("ElevId") 'Husk elevnr
>> End If
>>
>>
>> >
>> > Response.Write rs("Elevnavn")& "- Opgave "& rs("ROpgaveID")&
> "
>> > - Score "& rs("Score")& "<br />"
>> >
>> > rs.MoveNext
>> > Loop
>> >
>> Response.Write EndDiv 'Afslut sidste blok
>>
> K�re Leif tak for din respons
>
> Jeg har fors�gt mig med f�lgende ud fra dit:
>
> Dim BeginDiv, EndDiv, LastId
> BeginDiv="<div style=" & "page-break-before:always" & ">"
> EndDiv="</div>"
> LastId=-1
>
> Do While Not rs.EOF
>
> IF LastID <> Rs("ElevId") then Response.Write rs("Elevnavn") & "-
> Opgave " & rs("ROpgaveID") & " - Score " & rs("Score") & "</p>"
> 'Hvis ny elev
> IF LastID <>-1 then
> Response.Write EndDiv 'Afslut forrige blok
> Response.Write BeginDiv 'Start ny blok
> LastID = Rs("ElevId") 'Husk elevnr
> End If
>
> rs.MoveNext
> Loop
>
> Response.Write EndDiv 'Afslut sidste blok
>
> Det giver ikke �nskede resultat der kommer ingen page-break ind i
> kildekoden.
Der mangler en end if, medmindre "IF LastID <> Rs("ElevId") then
Response.Write ...." fungerer uden en end if
Og s� vil du kun f� udskrevet det f�rste resultat for hver elev.
> Hvad g�r jeg forkert?
Pr�v f�rst at lave den som jeg viste, og gerne med
startdiv="<p>Start p� elev</p>"
slutdiv="<p>Slut p� elev</p>"
S� er det lettere at se i resultatet at opdelingen fungerer., s� kan man
sl�s med selve html'en bagefter.
Hvis du skal g�re andet i slutningen af en elevblok end en "</div>" s� lav
det som en funktion, ellers er det for let at glemme at duplikere koden; der
skal jo ske det samme n�r man skifter fra en elev til den n�ste, som n�r man
er f�rdig med den sidste.
Leif
Re: Side skift ved udskrift af recordset med Do Loop
Author: Michael
Date: Thu, 12 Jan 2012 14:56
Date: Thu, 12 Jan 2012 14:56
35 lines
2386 bytes
2386 bytes
K�re Leif tak for din respons og hj�lp. Nu er jeg ikke en asp-haj som du nok har
fundet ud af, men det lykkedes at finde l�sningen ud fra din hj�lp. Jeg flyttede
lidt rundt og �ndrede p� LastID, s� k�rte det.
Dim BeginDiv, EndDiv, LastId
BeginDiv="<p>Start p� elev</p>"
EndDiv="<p>Slut p� elev</p>"
LastId= rs("ElevID")
Do While Not rs.EOF
IF LastID = rs("ElevId") then Response.Write rs("ElevId") & " - " &
rs("Elevnavn") & "- Opgave " & rs("ROpgaveID") & " - Score " & rs("Score") &
"</p>" 'Hvis ny elev
IF LastID <> rs("ElevID") then
Response.Write EndDiv 'Afslut forrige blok
Response.Write BeginDiv 'Start ny blok
LastID = rs("ElevId") 'Husk elevnr
End if
rs.MoveNext
Loop
Response.Write EndDiv 'Afslut sidste blok
--
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
Re: Side skift ved udskrift af recordset med Do Loop
Author: Leif Neland
Date: Fri, 13 Jan 2012 09:58
Date: Fri, 13 Jan 2012 09:58
38 lines
2624 bytes
2624 bytes
Den Thu, 12 Jan 2012 14:56:17 +0000 skrev Michael:
> Kære Leif tak for din respons og hjælp. Nu er jeg ikke en asp-haj som du
> nok har fundet ud af, men det lykkedes at finde løsningen ud fra din
> hjælp. Jeg flyttede lidt rundt og ændrede på LastID, så kørte det.
Du får så vidt jeg kan se ikke skrevet BeginDiv ud før første elev.
Hvis jeg retter tilbage (Og fjerner citattegnene)
'-----------------------------
Dim BeginDiv, EndDiv, LastId
BeginDiv="<p>Start på elev</p>"
EndDiv="<p>Slut på elev</p>"
LastId= -1 'Det antages at -1 ikke er et gyldigt ID
Do While Not rs.EOF
IF LastID <> rs("ElevID") THEN 'Hvis ny elev
IF LastID <> -1 THEN 'Hvis ikke første elev
Response.Write EndDiv 'Afslut forrige blok
END IF
Response.Write BeginDiv 'Start ny blok
LastID = rs("ElevId") 'Husk elevnr
End if
Response.Write rs("ElevId") & " - " & rs("Elevnavn") & _
"- Opgave " & rs("ROpgaveID") & " - Score " &rs("Score") & "<br>"
rs.MoveNext
Loop
Response.Write EndDiv 'Afslut sidste blok
'--------------------------------
Rent designmæssigt ville jeg nok vælge at lave et i en tabel i stedet for
at resultatet flyder frem og tilbage afhængig af elevnavnets længde, men
smag og behag.
Leif
Re: Side skift ved udskrift af recordset med Do Loop
Author: Michael
Date: Sat, 14 Jan 2012 14:08
Date: Sat, 14 Jan 2012 14:08
79 lines
4178 bytes
4178 bytes
On 13 Jan., 10:58, Leif Neland <l...@neland.dk> wrote:
>
> Du får så vidt jeg kan se ikke skrevet BeginDiv ud før første elev.
> Hvis jeg retter tilbage (Og fjerner citattegnene)
>
> '-----------------------------
> Dim BeginDiv, EndDiv, LastId
>
> BeginDiv="<p>Start på elev</p>"
> EndDiv="<p>Slut på elev</p>"
> LastId= -1 'Det antages at -1 ikke er et gyldigt ID
>
> Do While Not rs.EOF
> IF LastID <> rs("ElevID") THEN 'Hvis ny elev
> IF LastID <> -1 THEN 'Hvis ikke første elev
> Response.Write EndDiv 'Afslut forrige blok
> END IF
> Response.Write BeginDiv 'Start ny blok
> LastID = rs("ElevId") 'Husk elevnr
> End if
> Response.Write rs("ElevId") & " - " & rs("Elevnavn") & _
> "- Opgave " & rs("ROpgaveID") & " - Score " &rs("Score") & "<br>"
>
> rs.MoveNext
> Loop
>
> Response.Write EndDiv 'Afslut sidste blok
> '--------------------------------
>
> Rent designmæssigt ville jeg nok vælge at lave et i en tabel i stedet for
> at resultatet flyder frem og tilbage afhængig af elevnavnets længde, men
> smag og behag.
>
> Leif
Du har helt ret.
Det var jeg ikke lige opmærksom på. En anden ting der også smutter er
ét resultat fra alle elever med undtagelse af den første elev der får
alle sine med.
Det fik jeg dog rettet. Du har ret i at designet ser forfærdeligt ud,
det skal jeg arbejde lidt med.
Igen 1000 tak for hjælpen!
Michael
Dim BeginDiv, EndDiv, LastId
BeginDiv="<div style=" & "page-break-before:always" & ">Hovedopgave "
& rs("Mainopgavenavn") & "<p><table border=1><tr><td>Navn</
td><td>Opgave</td><td>Dato</td><td>Score</td></tr>"
EndDiv="</table></div><p><p><hr>"
LastId= rs("ElevID")
Do While Not rs.EOF
IF LastID = rs("ElevId") then Response.Write "<tr><td>" &
rs("Elevnavn") & "</td><td>Opgave: " & rs("Opgaveoverskrift") & "</
TD><td>Besvaret d. " & rs("Resultatdato") & "</td><td>Point:" &
rs("Score") & "</td></TR><p>" 'Hvis ny elev
IF LastID <> rs("ElevID") then
Response.Write EndDiv 'Afslut forrige blok
Response.Write BeginDiv 'Start ny blok
Response.Write "<tr><td>" & rs("Elevnavn") & "</td><td>Opgave: " &
rs("Opgaveoverskrift") & "</TD><td>Besvaret d. " & rs("Resultatdato")
& "</td><td>Point:" & rs("Score") & "</td></TR><p>" 'Hvis ny elev
End if
LastID = rs("ElevId") 'Husk elevnr
rs.MoveNext
Loop
Re: Side skift ved udskrift af recordset med Do Loop
Author: Leif Neland
Date: Mon, 16 Jan 2012 09:01
Date: Mon, 16 Jan 2012 09:01
61 lines
3609 bytes
3609 bytes
"Michael" <bogkassen@gmail.com> skrev i en meddelelse
news:e28609e5-3baa-404e-bf19-debc61cc60ac@q8g2000yqa.googlegroups.com...
On 13 Jan., 10:58, Leif Neland <l...@neland.dk> wrote:
>
>> Du f�r s� vidt jeg kan se ikke skrevet BeginDiv ud f�r f�rste elev.
>> Hvis jeg retter tilbage (Og fjerner citattegnene)
>>
>Du har helt ret.
>Det var jeg ikke lige opm�rksom p�. En anden ting der ogs� smutter er
>�t resultat fra alle elever med undtagelse af den f�rste elev der f�r
>alle sine med.
Ja, s� pr�v dog at bruge det, jeg skriver!!! :-)
> Dim BeginDiv, EndDiv, LastId
> BeginDiv="<div style=" & "page-break-before:always" & ">Hovedopgave "
> & rs("Mainopgavenavn") & "<p><table border=1><tr><td>Navn</
> td><td>Opgave</td><td>Dato</td><td>Score</td></tr>"
> EndDiv="</table></div><p><p><hr>"
> LastId= rs("ElevID")
Nej!! brug -1
> Do While Not rs.EOF
> IF LastID = rs("ElevId") then Response.Write "<tr><td>" &
Denne test er forkert. Du vil skrive alle linier ud.
> rs("Elevnavn") & "</td><td>Opgave: " & rs("Opgaveoverskrift") & "</
> TD><td>Besvaret d. " & rs("Resultatdato") & "</td><td>Point:" &
> rs("Score") & "</td></TR><p>" 'Hvis ny elev
Kommentaren h�rer til denne linie:
> IF LastID <> rs("ElevID") then
Mangler "if LastID <> -1" ellers f�r du lavet en slutblok i starten af
f�rste elev
>Response.Write EndDiv 'Afslut forrige blok
end if
> Response.Write BeginDiv 'Start ny blok
> Response.Write "<tr><td>" & rs("Elevnavn") & "</td><td>Opgave: " &
> rs("Opgaveoverskrift") & "</TD><td>Besvaret d. " & rs("Resultatdato")
> & "</td><td>Point:" & rs("Score") & "</td></TR><p>" 'Hvis ny elev
Overfl�dig, n�r du fjerner den f�rste IF
> End if
> LastID = rs("ElevId") 'Husk elevnr
> rs.MoveNext
> Loop
Mangler "Response.write EndDiv
Og der skal ikke v�re "<p>" efter "</TR>", de havner effektivt efter
tabellen, eller f�r(?), det er ihvertfald "ulovligt".
Leif
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads