webForumDet fria alternativet

Veckoschema

1 svar · 757 visningar · startad av corona

coronaMedlem sedan feb. 200470 inlägg
#1

Hej!
Jag har lite problem med ett veckoschema. Har tittat runt i WF men inte kunnat lösa mitt problem. Min önskan är att visa ett veckoschema (måndag-söndag) där man kan se om olika personers eventuella möten, ledigheter mm.
För detta skapade jag två tabeller en för personer och en för eventuella händelser.

Min två tabeller:
Personal
ID
Namn

Veckoschema
ID
Vecka
Datum
NamnID
Orsak

Så här skulle jag vilja att det såg ut:
Veckoschema exempel

Min kod som jag håller på med:

<%
dtmDate = Request.QueryString("dtmDate")

if dtmDate="" Then
 dtmDate = date()
end if	

weekno = DatePart("WW",	dtmDate, 2,2)
y =	DatePart("YYYY", dtmDate)

startdate= y & "-01-01"
Do Until DatePart("ww", startdate, 2, 2) = weekno
	startdate = DateAdd("d", 1, startdate)
Loop

if weekday(startdate, vbMonday) > 1 then  startdate = dateadd("d", -(weekday(startdate)-2), startdate)

Response.Write "<table border='0' cellspacing='0' cellpadding='0' width='100%'><tr>"
Response.write "<td colspan='8'><b>v." & weekno & "</b></td></tr><tr><td>Namn</td>"

For d = startdate To DateAdd("d", 6, startdate)

Response.write "<td>" & day(d) & " " & weekdayname(weekday(d)) & "</td>"

startdate = DateAdd("d", 1, startdate)
next
Response.Write "</tr>"

'VISA PERSONER - OPPNA DATABAS

Dim Hamta
				
Set RecSet = Server.CreateObject("ADODB.Recordset")
Hamta = "SELECT * FROM Personal ORDER BY Namn ASC"
RecSet.Open Hamta, DB, adOpenForwardOnly, adLockReadOnly

Do Until RecSet.EOF

Response.Write "<tr><td>" & RecSet("Namn") & "</td>"

For d = startdate To DateAdd("d", 6, startdate)

Set RecSet2 = Server.CreateObject("ADODB.Recordset")
Hamta = "SELECT * FROM VeckoSchema WHERE Vecka = " & weekno & " "
RecSet2.Open Hamta, DB, adOpenForwardOnly, adLockReadOnly

If CInt(Right(RecSet2("Datum"),2)) = day(d) Then
Response.write "<td>" & RecSet2("Orsak") & "</td>"
Else
Response.write "<td></td>"
End If

startdate = DateAdd("d", 1, startdate)
next
RecSet2.Close
Set RecSet2 = Nothing
Response.Write "</tr>"

RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = Nothing

Response.Write "</table>"

pw = DateAdd("d", -8, startdate)

Response.Write "<br><br><a href=?dtmDate=" & pw & ">« Föregånde Vecka</a>"
Response.Write "&nbsp;&nbsp;"
Response.Write "<a href=?dtmDate=" & startdate & ">Nästa Vecka »</a>"

%>

Jag får den att skriva ut veckodagarna högst upp, men vad jag sedan upptäcker är att den plusar på med dagar för varje rad. Hur ska jag göra för att den inte ska göra detta???
Blir jätteglad om någon kan ge lite tips/hjälp så här i juletid!! :)

//Annette

coronaMedlem sedan feb. 200470 inlägg
#2

Fixat

Hej alla!

Jag har nog fått till det, men mina koder kanske inte är de bästa.
Tyck gärna till!
Här är koden (sidan):

<%@ Language=VBScript %>
<!--#include file = "../include/adovbs.inc"-->
<!--#include file = "../include/db.asp"-->

<% 	Session.LCID = 1053 

	dtmDate = Request.QueryString("dtmDate")

	if dtmDate="" Then
 	dtmDate = date()
	end if	

	weekno = DatePart("WW",	dtmDate, 2,2)
	y =	DatePart("YYYY", dtmDate)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Veckoschema</title>
<link rel='stylesheet' type='text/css' href='../formatmall/formatmall.css'>
<body>
<table width="100%" cellpadding="4" cellspacing="0" border="0" id="kalendarium">
<tr><td class="dagar" align="left" valign="top">Vecka: <%=weekno%></td>
<%
	startdate= y & "-01-01"
	Do Until DatePart("ww", startdate, 2, 2) = weekno
	startdate = DateAdd("d", 1, startdate)
	Loop

	if weekday(startdate, vbMonday) > 1 then  startdate = dateadd("d", -(weekday(startdate)-2), startdate)
	
	For d = startdate To DateAdd("d", 6, startdate)
	
	Select Case weekdayname(weekday(d))
    Case "söndag" 
      sClass = "dagarred"
    Case "lördag"
      sClass = "dagarred"
    Case Else
      sClass = "dagar"
    End Select

	Response.Write "<td class='" & sClass & "'>" & Ucase(weekdayname(weekday(d))) & "<br>" & day(d) & " " & MonthName(Month(d)) & "</td>"
	startdate = DateAdd("d", 1, startdate)
	next

%>
<tr></tr>
<%
	Dim Hamta
				
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Hamta = "SELECT * FROM Personal ORDER BY Namn ASC"
	RecSet.Open Hamta, DB, adOpenForwardOnly, adLockReadOnly

	Do Until RecSet.EOF

	Dim bgcol
		 
	If bgcol = "#F0F0F0" then
	bgcol = "#FFFFFF"
	Else
	bgcol = "#F0F0F0"
	End If

	startdate= y & "-01-01"
	Do Until DatePart("ww", startdate, 2, 2) = weekno
	startdate = DateAdd("d", 1, startdate)
	Loop

	if weekday(startdate, vbMonday) > 1 then  startdate = dateadd("d", -(weekday(startdate)-2), startdate)
%>

<tr><td align="left" valign="top" class="visanamn" bgcolor="<%=bgcol%>"><%=Ucase(RecSet("Namn"))%></td>
<%
	For d = startdate To DateAdd("d", 6, startdate)
%>
<td align="left" valign="top" class="visakal" bgcolor="<%=bgcol%>">
<%	' Checka av om det finns en händelse
	
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	Hamta = "SELECT * FROM VeckoSchema WHERE NamnID = " & RecSet("ID") & " AND Datum = #" & d & "#"
	RecSet2.Open Hamta, DB, adOpenForwardOnly, adLockReadOnly
		
	If RecSet2.EOF Then
	Response.Write "<span class='liten'>" & day(d) & "</span>"
	RecSet2.Close
	Set Recset2 = Nothing
	Else
	
	Dim Orsak, Datum
	Orsak = RecSet2("Orsak")
	Datum = RecSet2("Datum")

	If CInt(Right(Datum,2)) = day(d) Then
	Response.write day(d) & "<br>" & Orsak
	End If
%>
</td>
<% 	startdate = DateAdd("d", 1, startdate)
	RecSet2.Close
	Set Recset2 = Nothing
	End If
	next
%>
</tr>
<% 	RecSet.MoveNext
	Loop
	Recset.Close
	set RecSet = Nothing
%>

</table>
<%	pw = DateAdd("d", -7, startdate)

	Response.Write "<br><br><a href=?dtmDate=" & pw & ">« Föregånde Vecka</a>"
	Response.Write "&nbsp;&nbsp;"
	Response.Write "<a href=?dtmDate=" & d & ">Nästa Vecka »</a>"
%>
</body>
<% DB.Close %>
</html>

Ha en trevlig Jul alla på WF !! ;)

//Annette

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)