forsat fra http://www.eksperten.dk/spm/524230
Forsat fra http://www.eksperten.dk/spm/524230I går løste eagleeye mit problem med at få udskrevet et skema, der er dog et problem som kan ses på: http://www.wilweb.dk/exp/skema.png
hvis brugeren er der om mandag og så kommer brugeren ikke mere den uge. Så skrives der bare tomme felter ud.
Ville det være muligt at få udskrevet fraværende i de dage hvor der ikke er oplysninger om brugeren?
Jeg har prøvet på flere måder men intet er lykkes.
Her er koden:
<!--#include file="../conn/skema.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Uge skema</title>
<link href="../css/skema.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
Session.LCID = 1030
if request.QueryString("uge") = "" then
ugeNr = weekNr(date)
Else
ugeNr = CInt(request.QueryString("uge"))
End if
'Find dato, første mandag i den valgte uge
dato = findMandag(ugeNr,Year(Date))
'Find ugens dage navne + dato
dagMandag = WeekdayName(DatePart("W", dato, 1))
dagMandag = UCase(Left(dagMandag,1)) & Mid(dagMandag,2) & " [" & Day(dato) & "-" & Month(dato)& "]"
'trækker dato ud af dag1
dag1=Day(dato)&"-"&Month(dato)&"-"&year(dato)
'-----
dato = DateAdd("d", 1, dato)
dagTirsdag = WeekdayName(DatePart("W", dato, 1))
dagTirsdag = UCase(Left(dagTirsdag,1)) & Mid(dagTirsdag,2) & " [" & Day(dato) & "-" & Month(dato)& "]"
'trækker dato ud af dag2
dag2=Day(dato)&"-"&Month(dato)&"-"&year(dato)
'--------
dato = DateAdd("d", 1, dato)
dagOnsdag = WeekdayName(DatePart("W", dato, 1))
dagOnsdag = UCase(Left(dagOnsdag,1)) & Mid(dagOnsdag,2) & " [" & Day(dato) & "-" & Month(dato)& "]"
'trækker dato ud af dag3
dag3=Day(dato)&"-"&Month(dato)
'------
dato = DateAdd("d", 1, dato)
dagTorsdag = WeekdayName(DatePart("W", dato, 1))
dagTorsdag = UCase(Left(dagTorsdag,1)) & Mid(dagTorsdag,2) & " [" & Day(dato) & "-" & Month(dato)& "]"
'trækker dato ud af dag4
dag4=Day(dato)&"-"&Month(dato)
'----------
dato = DateAdd("d", 1, dato)
dagFredag = WeekdayName(DatePart("W", dato, 1))
dagFredag = UCase(Left(dagFredag,1)) & Mid(dagFredag,2) & " [" & Day(dato) & "-" & Month(dato)& "]"
'trækker dato ud af dag5
dag5=Day(dato)&"-"&Month(dato)&"-"&year(dato)
'------------------
'uge + / - 1
tmpDato = DateAdd("ww",1,dato)
ugeNrp= weekNr(tmpDato)
aarNrp= Year(tmpDato+3)
tmpDato = DateAdd("ww",-1,dato)
ugeNrm= weekNr(tmpDato)
aarNrm= Year(tmpDato+3)
fraDato= dag1
tilDato= dag5
SQL = "select * from loginelev where sdato >= #" & fraDato & "# and sdato <= #" & tilDato & "# and strshop='multimedie' order by strnavn, sdato"
Set rs=Conn.Execute(SQL)
%>
<form action="skema_week.asp" method="post" name="skemaform">
<table border="0" width="950" cellspacing="2" cellpadding="5">
<tr>
<td colspan="7" class="tbl_text_kal" height="20"><strong>Uge</strong> <%=ugeNr%> </td>
</tr>
<%
Response.Write "<tr><td width=''15 class='tbl_log'>Nr.</td><td class='tbl_log'>Navn</td><td class='tbl_log' align='center'>" & dagMandag & "</td><td class='tbl_log' align='center'>" & dagTirsdag & "</td><td class='tbl_log' align='center'>" & dagOnsdag & "</td><td class='tbl_log' align='center'>" & dagTorsdag & "</td><td class='tbl_log' align='center'>" & dagFredag & "</td>"
oldNavn=""
x=1
do while not rs.EOF
if oldNavn <> rs("strnavn") then
oldNavn = rs("strnavn")
oldDato=dag1
Response.Write "</tr><tr><td class='tbl_text_kal'>" & x & "</td><td class='tbl_text_kal'>" & rs("strnavn") & "</td>"
x=x+1
end if
i=0
do while CDate(oldDato) < CDate(rs("sdato")) and i < 5
oldDato=DateAdd("d",1,oldDato)
'if i
response.write "<td class='tbl_text_kal2'>fraværende</td>"
i=i+1
loop
Response.Write "<td align='center' class='tbl_text_kal'>" & left(rs("stid"),5) &"</td>"
oldDato=DateAdd("d",1,oldDato)
rs.Movenext
loop
Response.Write "</tr>"
%>
<tr class="tbl_log">
<%
Response.Write("<td align='center'></td> ")
Response.Write("<td align='center'></td> ")
Response.Write("<td align='center'><a href='skema_week.asp?uge=" & ugeNrm & "'>Forrige uge</a></td> ")
Response.Write("<td align='center'><a href='skema_week.asp?uge=" & ugeNrp & "'>Næste uge</a></td> ")
Response.Write("<td align='center' colspan='3'></td> ")
%>
</tr>
</table>
</form>
<%
Conn.Close
Set Conn = Nothing
'Den første dag i indeværende uge:
Function getDate(ByVal weekNr, ByVal startDate)
If Not isDate(startDate) Then Exit Function
dato = CDate(startDate)
Do While DatePart("ww", dato, vbMonday, vbFirstFourDays) <> weekNr
dato = DateAdd("d", 1, dato)
Loop
getDate = dato
End Function
'find uge nummer
Function weekNr (dtmDate) ' Week Of Year
weekNr = DatePart("ww", dtmDate, vbMonday, vbFirstFourDays)
If weekNr > 52 Then
If DatePart("ww", dtmDate + 7 , vbMonday, vbFirstFourDays) = 2 Then weekNr = 1
End If
End Function
'Find mandag i valgt uge,år
function findMandag(uge,aar)
d = DateSerial(aar, 1, 1) ' 1/1/i år
'find mandag i uge 1
If DatePart("ww", d, 2, 2) = 1 Then 'Hvis 1/1 er i uge 1
While(DatePart("w", d, 2, 2) <> 1) 'find sidste mandag
d = DateAdd("d", -1, d)
WEnd
Else
While(DatePart("ww", d, 2, 2) <> 1) 'find næste mandag
d = DateAdd("d", 1, d)
WEnd
End If
findMandag = DateAdd("d", 7*(uge-1), d) 'juster til ugenummer, mandag
end function
%>
</body>
</html>
