Avatar billede andersasp Nybegynder
04. november 2004 - 09:34 Der er 1 kommentar og
1 løsning

Kalender script viser dato 2 gange!

Hej!

Jeg har et kalender script som virker rigtig godt! Jeg har dog ændret det således at man kan få vist flere events på samme dato via en MoveNext.

Der sker dog det at hvis der er en event i dag og én i morgen, bliver den i dag vist korrekt, men dagen efter bliver der vist både den fra i dag og den rigtige. jeg fatter det simpelthen ikke??

koden er her forneden, håber der er nogen der kan se logikken!!

<%

Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open MM_website_STRING

    For iWeek = 1 To iRows
      Response.Write "<TR VALIGN=TOP>"
      For iDay = 1 To iColumns
    ' Checks to see if there is a day this month on the date being written
    If aCalendarDays((iWeek-1)*7 + iDay) > 0 then
      dtOnDay = DateSerial(Year(dtCurrentDate), Month(dtCurrentDate), aCalendarDays((iWeek-1)*7 + iDay))

      ' Checks to see if the day being printed is today
      If dtOnDay = dtToday Then
        Response.Write "<TD HEIGHT=55 CLASS='calCurrentDay'>"
      Else
          Response.Write "<TD HEIGHT=55 CLASS='calOtherDay'>"
      End If

      ' Checks to see the type of calendar (editable or non-editable)
      If (bolEditable) then
          strPage = "kalender/currentdate.asp?Tdato=" & dtOnDay
      Else
          strPage = "kalender/currentdate.asp?Tdato=" & dtOnDay
      End If

      ' Checks for a message on the day being written
      strSQL = "SELECT * FROM tourplan WHERE Tdato = #" & dtOnDay & "#"
  Set objRS = objConn.Execute(strSQL)
  If NOT objRS.EOF Then
    While objRS.EOF = False
        dailyMsg = dailyMsg & objRS("Tband") & " (" & objRS("Tsted") & ")<br>"
        objRS.MoveNext
    Wend
  Else
    dailyMsg = ""
  End If
  Set objRS = Nothing

      ' Checks to see if the message is too long to be displayed in the mini date box
          If (Trim(dailyMsg) = Trim(Left(dailyMsg, intCharToShow))) Then
      Else
        dailyMsg = dailyMsg
          End If

      Response.Write ("<A HREF=""" & strPage & """>&nbsp;" & aCalendarDays((iWeek-1)*7 + iDay) & "<BR>" & FormatStr(dailyMsg) & "</A>")
    Else
      Response.Write ("<TD HEIGHT=50 CLASS='calNotDay'>&nbsp;")
    End IF

    Response.Write "</TD>"
      Next
      Response.Write "</TR>"
    Next

    objConn.Close
    set objConn = Nothing
%>
Avatar billede hiks Nybegynder
04. november 2004 - 17:04 #1
inden den næste dag skal du huske at

dailyMsg = ""

ellers bliver den ved med at gemme værdien i næste loop - da du bruger

dailyMsg = dailyMsg & ...

i dit loop! så den ser sådan her ud:

<%

Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open MM_website_STRING

    For iWeek = 1 To iRows
      Response.Write "<TR VALIGN=TOP>"
      For iDay = 1 To iColumns
            ' Checks to see if there is a day this month on the date being written
            If aCalendarDays((iWeek-1)*7 + iDay) > 0 then

                dtOnDay = DateSerial(Year(dtCurrentDate), Month(dtCurrentDate), aCalendarDays((iWeek-1)*7 + iDay))

                ' Checks to see if the day being printed is today
                If dtOnDay = dtToday Then
                    Response.Write "<TD HEIGHT=55 CLASS='calCurrentDay'>"
                Else
                    Response.Write "<TD HEIGHT=55 CLASS='calOtherDay'>"
                End If

                ' Checks to see the type of calendar (editable or non-editable)
                If (bolEditable) then
                    strPage = "kalender/currentdate.asp?Tdato=" & dtOnDay
                Else
                    strPage = "kalender/currentdate.asp?Tdato=" & dtOnDay
                End If

                    ' Checks for a message on the day being written
                strSQL = "SELECT * FROM tourplan WHERE Tdato = #" & dtOnDay & "#"
                Set objRS = objConn.Execute(strSQL)

                If NOT objRS.EOF Then
                  While objRS.EOF = False
                      dailyMsg = dailyMsg & objRS("Tband") & " (" & objRS("Tsted") & ")<br>"
                      objRS.MoveNext
                  Wend

                Else
                  dailyMsg = ""
                End If

                Set objRS = Nothing

                ' Checks to see if the message is too long to be displayed in the mini date box
                If (Trim(dailyMsg) = Trim(Left(dailyMsg, intCharToShow))) Then
                   
                Else
                  dailyMsg = dailyMsg
                End If

                Response.Write ("<A HREF=""" & strPage & """>&nbsp;" & aCalendarDays((iWeek-1)*7 + iDay) & "<BR>" & FormatStr(dailyMsg) & "</A>")
                dailyMsg = ""

            Else
                    Response.Write ("<TD HEIGHT=50 CLASS='calNotDay'>&nbsp;")
            End IF

            Response.Write "</TD>"
        Next
    Response.Write "</TR>"
Next

    objConn.Close
    set objConn = Nothing
%>

/hiks
Avatar billede andersasp Nybegynder
05. november 2004 - 09:19 #2
helt perfekt! nu virker det som det skal!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester