mi problema surge cuando pongo dos eventos en el mismo dia...
en principio tengo este codigo:
Código:
<link rel="stylesheet" type="text/css" href="estilo.css" /> <% Function NombreMes (mes) select case mes case 1 NombreMes = "Enero" case 2 NombreMes = "Febrero" case 3 NombreMes = "Marzo" case 4 NombreMes = "Abril" case 5 NombreMes = "Mayo" case 6 NombreMes = "Junio" case 7 NombreMes = "Julio" case 8 NombreMes = "Agosto" case 9 NombreMes = "Septiembre" case 10 NombreMes = "Octubre" case 11 NombreMes = "Noviembre" case 12 NombreMes = "Diciembre" end select End Function 'NombreMes '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 'Utilizaba esta variable para depurar 'Dim sOrigen 'iDia, iMes, iAno --> la fecha seleccionada Dim iDia, iMes, iAno, sEnviado 'iDiasDelMes: numero de días del mes 'iDiaSemana: día de la semana en que cae la fecha 'iPrimerDiaSemanaMes: el día de la semana en que empieza el mes Dim iDiasDelMes, iDiaSemana, iPrimerDiaSemanaMes Dim dFecha 'la fecha enterita 'Para pintar la tabla necesito Dim iActual, iPosicion 'Recojo los valores del form iDia = Request.Form("Dia") iMes = Request.Form("Mes") iAno = Request.Form("Ano") sEnviado = Request.Form("Enviado") 'sOrigen = "form" 'Establezco la fecha según lo enviado if sEnviado <> "" then iDia = CInt(iDia) iMes = CInt(iMes) iAno = CInt(iAno) else '¿La he enviado desde un link? if Request.QueryString("Dia") <> "" then iDia = CInt(Request.QueryString("Dia")) iMes = CInt(Request.QueryString("Mes")) iAno = CInt(Request.QueryString("Ano")) 'sOrigen = "qrs" else 'La pongo a la fecha de hoy iDia = Day(Now) iMes = Month(Now) iAno = Year(Now) 'sOrigen = "auto" end if end if if not IsDate(DateSerial(iAno, iMes, iDia)) then 'Avisamos y utilizamos la de hoy Response.Write("<b>No es una fecha válida. Se utilizará la fecha de hoy.</b><br>") dFecha = Date iMes = Month(dFecha) iDia = Day(dFecha) iAno = Year(dFecha) else 'Formamos la expresión de fecha dFecha = DateSerial(iAno, iMes, iDia) end if 'Hallo los días del mes select case iMes case 1,3,5,7,8,10,12 iDiasDelMes = 31 case 2 if iAno mod 4 = 0 then 'Año bisiesto! iDiasDelMes = 29 else iDiasDelMes = 28 end if case else iDiasDelMes = 30 end select 'Hallo el día de la semana iDiaSemana = DatePart("w", DateSerial(iAno, iMes, iDia)) 'Y el día de la semana en que empieza el mes iPrimerDiaSemanaMes = DatePart("w", DateAdd("d", - iDia+1, DateSerial(iAno, iMes, iDia)), 2) 'Las siguientes líneas las utilizo para depurar. ;-) 'Response.Write(dFecha) 'Response.Write("<br>") 'Response.Write( iDia & "/" & iMes & "/" & iAno & "<br>") 'Response.Write "Dia: " & iDia & ", Mes: " & iMes &", Año: " & iAno & "<br>" 'Response.Write "Días del mes: " & iDiasDelMes & "<br>" 'Response.Write "El mes empieza en: " & iPrimerDiaSemanaMes & "<br>" 'Vamos a pintar la tabla %> <style type="text/css"> <!-- .Estilo1 {font-size: 10px} --> </style> <div align="center"> <TABLE BORDER="5" CELLPADDING="1" CELLSPACING="0" class="calendario"> <TR> <TD bgcolor=#FF6600><center><A HREF="calendario.asp?Dia=<%=iDia%>&Mes=<%=DatePart("m", DateAdd("m", -1, dFecha))%>&Ano=<%=Year(DateAdd("m", -1, dFecha))%>"><<</A></center></TD> <TD COLSPAN="5" bgcolor=#CC3300> <CENTER> <font color="#FFFFFF"><b><%=NombreMes(iMes)& " " & Year(dFecha)%></b></font> </CENTER> </TD> <TD bgcolor=#FF6600><center><A HREF="calendario.asp?Dia=<%=iDia%>&Mes=<%=DatePart("m", DateAdd("m", 1, dFecha))%>&Ano=<%=Year(DateAdd("m", 1, dFecha))%>">>></A></center></TD> </TR> <TR> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>L</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>M</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>X</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>J</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>V</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>S</b> </CENTER> </TD> <TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br> </span> <CENTER class="Estilo1"> <b>D</b> </CENTER> </TD> </TR> <% 'Relleno con blancos si el mes no empieza en Lunes! if iPrimerDiaSemanaMes <> 1 then iPosicion = 1 Response.Write vbTab & "<TR> " & VbCrLf do while iPosicion < iPrimerDiaSemanaMes Response.Write vbTab & vbTab & "<TD> </TD>" & vbcrlf iPosicion = iPosicion + 1 loop end if ' preparo fecha para conexion a base de datos if len(imes) = 1 then xmes = 0&imes end if 'conexion a base de datos dim con2,rs2,sql2,xdia,diaLink set con2 = server.CreateObject("ADODB.Connection") con2.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\agenda\agenda.mdb;User Id=;Password=;" set rs2 = server.CreateObject("ADODB.Recordset") sql2 = "SELECT * FROM EVENTOS WHERE MONTH(FECHA) = " & xmes & " order by FECHA " rs2.open sql2,con2,1,2 if not rs2.eof = true then rs2.MoveFirst end if 'Pintamos el calendario iActual = 1 iPosicion = iPrimerDiaSemanaMes do while iActual <= iDiasDelMes if iPosicion = 1 then 'Empezamos nueva semana, es decir nueva fila Response.Write vbTab & "<TR>" & VbCrLf end if 'Pintamos los días If Not rs2.eof = true then diaLink = Cint(Trim(day(rs2.Fields("FECHA")))) end if if iActual = iDia and iActual = (diaLink) then 'Resaltamos la fecha del día CON LINK Response.Write (vbTab & vbTab & "<TD CLASS='diaActual'ALIGN='center'><B><A HREF='diax.asp?dia="&diaLink&"'>"& iActual & "</A></B><br></TD>" & vbCrLf) if not rs2.eof = true then while (Cint(Trim(day(rs2.Fields("FECHA")))) = diaLink) rs2.MoveNext wend end if elseif iActual = iDia then 'Resaltamos la fecha del dia SIN LINK Response.Write vbTab & vbTab & "<TD CLASS='diaActual' ALIGN='CENTER' ><B>"& iActual & "</B><br></TD>" & vbCrLf elseif iActual = (diaLink) then 'Días CON LINKS Response.Write (vbTab & vbTab & "<TD ALIGN='CENTER'><A HREF='diax.asp?dia="&diaLink&"'>" & iActual & "</A><br></TD>" & vbCrLf) If Not (rs2.EOF = TRUE) Then If (Cint(Trim(day(rs2.Fields("FECHA")))) = diaLink) Then rs2.MoveNext End if End if else 'Dias SIN LINKS Response.Write vbTab & vbTab & "<TD ALIGN='CENTER' >" & iActual & "<br></TD>" & vbCrLf end if if iPosicion = 7 then 'Estamos en domingo, cerramos la semana :) Response.Write vbTab & "</TR>" & vbCrLf 'Pongo iPosicion a cero pq voy a sumarle uno ahorita mismo iPosicion = 0 end if 'Incrementamos! iActual = iActual + 1 iPosicion = iPosicion + 1 loop 'Relleno con blancos si no termino en domingo 'Primero compruebo que no sea uno, pues si terminamos en 7 (domingo) 'al incrementar por ultima vez se queda en 1. Típico en los bucles :-) if iPosicion <> 1 then while iPosicion <= 7 'Las celdas blancas... Response.Write vbTab & vbTab & "<TD> </TD>" & vbCrLf iPosicion = iPosicion + 1 wend '... y el fin de fila! Response.Write vbTab & "</TR>" & vbCrLf end if %> </TABLE> </div>
la parte que esta en negrita es la que modifiqué para hacer funcionar mi idea
como otra alternativa empecé a hacer esto:
Código:
hasta ahi voy bien, ahora quiero comparar los elementos del array y si hay elementos iguales quiero eliminar y dejar un único elemento... pero no sé como:'conexion a base de datos dim con2,rs2,sql2,xdia,diaLink set con2 = server.CreateObject("ADODB.Connection") con2.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\agenda\agenda.mdb;User Id=;Password=;" set rs2 = server.CreateObject("ADODB.Recordset") sql2 = "SELECT * FROM EVENTOS WHERE MONTH(FECHA) = " & 02 & " order by FECHA " rs2.open sql2,con2,1,2 iRegistros = rs2.RecordCount Dim registro(),contador Redim registro(iRegistros) contador = 0 While not rs2.eof registro(contador) = day(rs2.Fields("FECHA")) rs2.moveNext contador = contador + 1 wend
logrando esto dejaría una única lista de días y solucionaría el inconveniente que tengo al principio
GRACIAS POR CUALQUIER AYUDA!...
Ale!
