Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Aggiornamento calendario [ASP]

    Eccomi ancora qui...

    Ho uno script ASP che registra degli eventi in un calendario; ho previsto che se l'evento ha una durata di più giorni, per l'inserimento è sufficiente scrivere la data d'inizio evento e la data fine evento, ed il sistema registra lo stesso record per i giorni compresi da... a...

    Mi sono accorto però che se l'utente vuole aggiungere un giorno in più rispetto alla durata, nonostante la modifica sulla data fine evento venga correttamente registrata, il calendario non la visualizza.

    Questa è la query di UPDATE:
    codice:
      strSQL = "Update TabEventi set DataInizioEvento = #"&strDataInizioEvento&"#, DataFineEvento = #"&strDataFineEvento&"# where ID = " &Request.Form("ID")
      objCONN.execute strSQL
    Avete suggerimenti per risolvere il problema???

    Ciao.

  2. #2
    se il db viene aggiornato correttamente, il problema sta nello script di visualizzazione, non credi?

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    se il db viene aggiornato correttamente, il problema sta nello script di visualizzazione, non credi?
    Sicurametne è come dici tu... però nella query di estrazione non mi pare ci siano errori:
    codice:
    strSQL = "select idUtente, DataInizioEvento, DataFineEvento, Count(*) as Total,MAX(LastModified) as Latest from message where Month(DataInizioEvento)= " _
    	    &Month(dtSelected) &" and Year(DataInizioEvento) = " &Year(dtSelected) _

  4. #4
    sei sicuro che la tabella venga aggiornata correttamente?

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    sei sicuro che la tabella venga aggiornata correttamente?
    Si, sono sicuro... la data fine assume il nuovo valore... non è che contestualmente alla update devo prevedere una insert into con le nuove date di inizio e fine evento? :master:

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Ho provato così:
    codice:
    strSQL = "Update TabEventi set DataInizioEvento = #"&strDataInizioEvento&"#, DataFineEvento = #"&strDataFineEvento&"# where ID = " &Request.Form("ID")
    objCONN.execute strSQL
    
    for i = 0 to datediff("d",cDate(strDataInizioEvento),cDate(strDataFineEvento)) step 1
      sSql = "INSERT INTO TabEventi (DueDate, DueDate2) values (#"&dataShort(dateadd("d",cDate(strDataInizioEvento),i))&"#, #"&strDataFineEvento&"#)"
      objCONN.execute sSQL
    next
    Il record viene aggiunto e visualizzato sul calendario. ma mi ritrovo i primi records inseriti "raddoppiati"...

    Ad esempio:

    DataInizioEvento = 24/08/2005
    DataFineEvento = 26/08/2005

    Nel calendario avrò:

    24/08/2005 = 1 evento
    25/08/2005 = 1 evento
    26/08/2005 = 1 evento

    Modifico il record ed inserisco una nuova DataFineEvento = 27/08/2005

    Nuovo calendario:

    24/08/2005 = 2 eventi
    25/08/2005 = 2 eventi
    26/08/2005 = 2 eventi
    27/08/2005 = 1 evento


  7. #7
    scusa, ma se la dtaa di fine la modifica correttamente, perchè devi fare un nuovo update?

    se il dfatabase viene aggiornato corretamente il problema deve risiedere nello script della visualizzazione

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    codice:
    <%
    
    session.lcid=1040
         
         set objconn = server.createobject("ADODB.connection")
         strconn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath("mdb-database/db.mdb")
         objconn.open strconn
    
    
      if Len(Request.Querystring("MONTH")) then 
    		  dtSelected = Request.querystring("YEAR") &"/" &Request.querystring("MONTH") &"/1"
    		  strMonth   = MONTHNAME(Request.QueryString("MONTH"))
    		  strYear    = Request.Querystring("YEAR")
    		  strNewDate = Request.querystring("YEAR") &"/" &Request.querystring("MONTH") &"/"
    	   elseif Len(Request.Form("MONTH")) then
    	   	  dtSelected = Request.form("YEAR") &"/" &Request.form("MONTH") &"/1"
    		  strMonth   = MONTHNAME(Request.form("MONTH"))
    		  strYear    = Request.form("YEAR")
    		  strNewDate = Request.form("YEAR") &"/" &Request.form("MONTH") &"/"
    	    
               else
               	  dtSelected = CDAte(NOW-DAY(NOW)+1)
    		  strMonth   = MONTHNAME(MONTH(NOW))
    		  strYear    = YEAR(NOW)
    		  strNewDate = YEAR(NOW) &"/" &MONTH(NOW) &"/"
    		  
              end if
    
    
    strSQL = "select idUtente, DataInizioEvento, DataFineEvento, Count(*) as Total,MAX(LastModified) as Latest from message where Month(DataInizioEvento)= " _
    	    &Month(dtSelected) &" and Year(DataInizioEvento) = " &Year(dtSelected) _
    &" group by DataInizioEvento, idUtente, DataFineEvento order by DataInizioEvento DESC"
    
    set objREC = objCONN.Execute(strSQL)
    	    
    	    	    
    	    Redim aMessages(0)
    	    Redim aMessageDate(0)
    	    Redim aMessageDate2(0)
    	    Redim aMessageStatus(0)
    	    arrIndex = 0 
    	    
    	    Do While NOT objREC.EOF 
    	       aMessages(arrIndex)    = objREC("Total")
    	       aMessageDate(arrIndex) = objREC("DataInizioEvento")
    	       aMessageStatus(arrIndex) = objREC("Latest")
    	       
    	       arrIndex = arrIndex + 1 
    	       Redim Preserve aMessages(arrIndex)
    	       Redim Preserve aMessageDate(arrIndex)
    	       Redim Preserve aMessageStatus(arrIndex)
    	      objREC.MoveNext
    	    Loop
    	  
    	     objconn.close
    	     set objconn = nothing 
    
    blnAbbr     = Day_Abbr
                	
    	
    	prevMonth  = MONTH(DATEADD("M",-1,dtSelected))
    	nextMonth  = MONTH(DATEADD("M",1,dtSelected))
    	prevYear   = YEAR(DATEADD("M",-1,dtSelected))
    	nextYear   = YEAR(DATEADD("M",1,dtSelected))
    	
    	datetime   = dateadd("d", -datepart("d",dtSelected)+1,dtSelected)
    	datetime   = dateadd("m", 1, datetime)
    	datetime   = dateadd("d", -1, datetime)
    	intDays    = datepart("d",datetime)
    
    
    For I = 1 to 7 
    	  Response.Write "<TD ALIGN=CENTER CLASS=MONTHNAME>" &WeekdayName(I,blnAbbr) &"</TD>"
    	  Next
    
    For  I = 1 to Weekday(dtSelected)-1
              Response.Write "<TD VALIGN=TOP ALIGN=RIGHT WIDTH="&CELL_WIDTH &" HEIGHT="&CELL_HEIGHT&"></TD>"
              intCounter = intCounter + 1
            Next   
    
            If intCounter-1  >= 7 then 
               intCounter = 0 
               Response.Write "</TR><TR>"
            End if
    
            For I = 1 to intDays
    
              blnISPublic = FALSE
              intCounter = intCounter + 1
    
    	
              newdate =  strNewDate &I
    
              If HighlightPublic then    
              For J = 0 to UBOUND(arrPublic) 
               If CDate(NewDate) = CDate(arrPublic(J)) then
                 blnIsPublic = TRUE 
               End if 
              Next
              end if
    
              
              If CDate(NewDate) = DATE then 
                If highlighttoday then 
               strCLASS = "TODAY" 
                end if
              elseif blnIsPublic  then
               strCLASS = "PUBLIC" 
               else  
               strCLASS = "DAYS" 
               end if  
    
    	For J= 0 to UBOUND(aMessageDate)-1 
            
            DatePlus7 = CDate(dateadd("d", -7,NOW))
            DatePlus14 = CDate(dateadd("d", -14,NOW))
            
            If CDate(aMessageStatus(J)) >= DatePlus7 then 
              strDateIMG = ""
             elseif CDate(aMessageStatus(J)) >= DatePlus14  and CDate(aMessageStatus(J)) < DatePlus7 then 
              strDateIMG = "seven"
             else
              strDateIMG = "fourteen"  
            
           end if 
            
    	If CDate(aMessagedate(J)) = CDate(NEWDATE) then 
    	strIMG = "<CENTER><A HREF='pr_messages.asp?idutente=" &idutente &"&date=" &datashort(aMessagedate(J)) _
    	&"'>[img]./images/" &aMessages(J) &strDateIMG &".gif[/img]</A>"                
    	exit For
    	else strIMG = ""
    	End if
    	Next
    
    	  if intCounter mod 7 <> 0 then  
    	     Response.Write "<TD CLASS=" &strCLASS &" VALIGN=TOP ALIGN=RIGHT WIDTH="&CELL_WIDTH _
    	     &" HEIGHT="&CELL_HEIGHT &" BGCOLOR=" &strBGCOLOR   &">"   &"" &I &"
    " _
    	     &strIMG &"</TD>" 
    	   else
    	     Response.Write "<TD CLASS=" &strCLASS &" VALIGN=TOP ALIGN=RIGHT WIDTH=" _
    	     &CELL_WIDTH &" HEIGHT="&CELL_HEIGHT &" BGCOLOR=" _ 
    	     &strBGCOLOR &">" &"" &I &"
    " &strIMG &"</TD></TR><TR>" 
    	  end if   
    	Next  
    	
    	
             
             %>

  9. #9
    bello script, ma preferisco quello che uso io

  10. #10
    fammi capire. hai due tabelle: in una segni l'evento (con inizio e fine), in un altra (calendario) segni che quel dato giorno si verifica quel certo evento.

    quindi ti inserisci l'evento e poi con un ciclo for...next occupi i giorni.

    se invece sei in modifica, aggiorni l'evento e *prima* di occupare i giorni col ciclo, dovrai cancellare i giorni gia' occupati da quell'evento, altrimenti duplicheresti gli eventi a calendario.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.