26. august 2003 - 16:07Der er
6 kommentarer og 1 løsning
hente output af flere gange
Jeg er igang med at lave et vagtplan-system, hvor der er en kalender og når man trykker på en af datoerne i kalenderen, så kommer der et skema frem med de timer hvor der er åbent også kan man sætte sig selv til at tage en eller flere vagter og man kan slette sine vagter.
Jeg vil gerne have sådan at når man trykker på et navn i den vagtplan, så kommer der en plan over de vagter som den person man har trykket på har. Det er der jo ikke nogle ben i, men vagterne skal vælges og udskrives på følgende måde, hvis det kan lade sig gøre:
Det kommer nok ikke til at stå på helt samme måde, men det er bare præncippet i det. Hvis det kan lade sig gøre, så vil jeg gerne høre hvordan jeg skulle kunne klarer den.
Set rs = Conn.Execute("Select dte, tme From Tabel Where vagt = 'Jesper Jensen' Order By dte, tme") tme_temp = rs("dte") " " & rs("tme") Hours = 0 While Not rs.EOF tme_this = rs("dte") " " & rs("tme") If DateDiff("h", tme_temp, tme_this) = 1 Then Hours = Hours + 1 Else Response.Write DateAdd("h", -Hours, tme_temp) & " - " & tme_temp & "<br>" Hours = 0 End If tme_temp = rs("dte") " " & rs("tme") rs.MoveNext Wend
Du bør i øvrigt have en seperat tabel til navnene, så du undgår alle de gentagelser. F.eks. vil navnet Casper Jensen kun ligge ét sted, mens han ID-nummer vil stå flere steder i din ovenstående tabel.
Har lavet lidt om i scriptet, så den ikke skriver f.eks. 12:00:00 - 12:00:00 når der kun er en dato.
Set rsPlan = conntemp.Execute("SELECT dte, tme FROM vagtplan WHERE vagt = '"& rsNavn("navn") &"' ORDER BY dte, tme") tme_temp = rsPlan("dte") &" "& rsPlan("tme") Hours = 0 While Not rsPlan.EOF tme_this = rsPlan("dte") &" "& rsPlan("tme") If DateDiff("h", tme_temp, tme_this) = 1 Then Hours = Hours + 1 Else If Hours > 0 Then Response.Write DateAdd("h", -Hours, tme_temp) &" - "& tme_temp &"<br>" Else Response.Write tme_temp &"<br>" End If Hours = 0 End If tme_temp = rsPlan("dte") &" "& rsPlan("tme") rsPlan.MoveNext Wend rsPlan.Close Set rsPlan = Nothing
Der er en lille fejl i det, den skriver den første dato den finder 2 gange også skriver den ikke den sidste dato ud f.eks. nu har jeg dette i tabellen:
Set rsPlan = conntemp.Execute("SELECT dte, tme FROM vagtplan WHERE vagt = '"& rsNavn("navn") &"' ORDER BY dte, tme") tme_temp = rsPlan("dte") & " "& rsPlan("tme") Hours = 0 While Not rsPlan.EOF tme_this = rsPlan("dte") & " "& rsPlan("tme") If DateDiff("h", tme_temp, tme_this) = 1 Then Hours = Hours + 1 ElseIf DateDiff("h", tme_temp, tme_this) > 1 Then If Hours > 0 Then Response.Write DateAdd("h", -Hours, tme_temp) &" - "& tme_temp &"<br>" Else Response.Write tme_temp &"<br>" End If Hours = 0 End If tme_temp = rsPlan("dte") & " "& rsPlan("tme") rsPlan.MoveNext Wend
If Hours > 0 Then Response.Write DateAdd("h", -Hours, tme_temp) &" - "& tme_temp &"<br>" Else Response.Write tme_temp &"<br>" End If
=============================================
For at forhindre den første post i at blive udskrevet, tjekker den nu, om forskellen mellem tme_temp og tme_this er større end 1. For at få den sidste udskrevet, har jeg tilføjet de 5 sidste linier, der er identiske med dem inde i løkken.
jamen så virker det jo, så skal du bare lige svarer så du kan få nogle point.
Så skal jeg nok huske at skrive den "god title" første gang, næste gang...kan godt forstå at det er irriterende, men jeg havde helt ærligt ikke nogen ide om hvad jeg skulle skrive. Det er også første gang at jeg har fået en "påmindelse" om det :D
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.