ASP – Calendário de eventos

Um aplicativo de calendário grande, com eventos atuais que foram adicionados e editados por utilizadores registados. Vamos começar por obter o seu código e nomear a página, calendar.asp. Nós estamos simplesmente usando seu código como um ponto genérico de partida.
Você  , precisa de um lugar para armazenar os seus eventos. Eu criei um banco de dados de acesso chamado “usuários”. Eu, então, criou uma tabela dentro desse banco de dados chamado ” users “. A tabela calendar tem os seguintes campos:

Calendar
ID Auto Number (Primary Key)
Subject Texto
Message Memo
Day Numero
Month Numero
Year Numero
AddedBy Texto
DateAdded Data

Todos os registros são bastante auto-explicativo com exceção do campo ID. Vamos usá-lo para apresentar o evento desejado.
Uma vez que o banco de dados é feita, você precisa para criar suas páginas ASP. Neste exemplo, vamos usar quatro páginas; calendar.asp, display_event.asp, add_event.asp e edit_event.asp. Você poderia provavelmente começar afastado com apenas duas páginas, mas para a facilidade de uso, vamos criar quatro.
Vamos começar com a página calendar.asp.

<–#include file=”adovbs.inc”–>

Dim DB_CONNECTIONSTRING

Dim objRecordset

DB_CONNECTIONSTRING = “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & _

Server.Mappath(“users.mdb”) & “;”

Set objRecordset = Server.CreateObject(“ADODB.Recordset”)

objRecordset.Open “calendar”, DB_CONNECTIONSTRING, adOpenStatic, adLockPessimistic, adCmdTable

Essa parte do código que escreve os dias do calendário e inserir os assuntos de nosso banco de dados com um link para a página display_event.asp. Isso dará a usuários a clicar em algo para veiw todo o evento.

If Not objRecordset.BOF Then

‘– Mover para o primeiro registro

objRecordset.MoveFirst

Do Until objRecordset.EOF

If objRecordset.Fields(“Year”) = Year(dDate) Then

If objRecordset.Fields(“Month”) = Month(dDate) Then

If objRecordset.Fields(“Day”) = iCurrent Then

‘– Se tudo coincide com o dia atual, em seguida, exibir
‘o sujeito com o ID coresponding –

Response.Write(“<br><font size=2><a href=” & _

Chr(34) & “display_event.asp?ID=” & _

objRecordset.Fields(“ID”) & Chr(34) & “>” & _

objRecordset.Fields(“Subject”) & _

“</a></font><br>”)

End If

End If

End If

‘– Se nada corresponde, passar para o próximo registro e
‘começar tudo de novo –

objRecordset.MoveNext

Loop

End If

Temos agora apresentado o tema do evento correto com o ID de evento anexado na URL como uma seqüência de consulta (ex. display_event.asp? ID = 10). Quando o usuário clica sobre o tema do evento, passamos o ID de evento para a página display_event.asp.
Que nos leva à página do evento. Você precisa primeiro se conectar ao banco de dados (o mesmo que acima). Então você precisa para obter o ID de eventos a partir da seqüência de consulta e percorrer o banco de dados até encontrarmos o evento:

EventToShow = CInt(Request.QueryString(“ID”))

If Not objRecordset.EOF Then

objRecordset.MoveFirst

Do Until objRecordset.Fields(“ID”) = EventToShow

objRecordset.MoveNext

Loop

End If

Em seguida, deseja correlacionar o evento exibido com uma variável de sessão para editar e exibir o evento::

Session(“EventToEdit”) = EventToShow

Date:

<%

Response.Write objRecordset.Fields(“Month”) & “/” & _

objRecordset.Fields(“Day”) & “/” & _

objRecordset.Fields(“Year”)

%>

Subject:

<%

Response.Write objRecordset.Fields(“Subject”)

%>

Message: <%= objRecordset.Fields(“Message”) %>

Added By:

<%

Response.Write objRecordset.Fields(“AddedBy”) & _

” on ” & objRecordset.Fields(“DateAdded”)

%>

Não se esqueça de limpar a sua conexão com o banco:

objRecordset.Close
Set objRecordset = Nothing

As próximas duas páginas (edit_event.asp & add_event.asp) são muito semelhantes. A única exceção é que com o evento de edição, queremos mostrar o evento existente dentro do formulário. Como mencionei anteriormente, você poderia provavelmente começar com a combinação destas duas páginas. A única coisa que você precisa manter em mente é com a manipulação do recorset. Na página de atualização, precisamos usar objRecordset.Update, enquanto na página add_event.asp, você vai querer usar objRecordset.AddNew.
Em ambos os casos, precisamos conectar ao banco de dados de entrada e os dados do formulário para os campos, semelhante ao abaixo:

objRecordset.Fields(“Subject”) = Request.Form(“txtSubject”)
objRecordset.Fields(“Message”) = Request.Form(“Message”)
objRecordset.Fields(“Day”) = Request.Form(“txtDay”)
objRecordset.Fields(“Month”) = Request.Form(“txtMonth”)
objRecordset.Fields(“Year”) = Request.Form(“txtYear”)
objRecordset.Fields(“AddedBy”) = Request.Form(“txtAddedBy”)
objRecordset.Fields(“DateAdded”) = Now()

Há obviamente muito mais que você pode fazer com este exemplo, mas isso vai lhe proporcionar um bom ponto de partida. Você pode querer só permitem aos usuários editar / excluir eventos que eles postaram (este é onde o campo AddedBy vem no lugar). Você também pode querer inserir um tempo para o evento. Você poderia código de evento de cor os dias que têm eventos postados.Abaixo todos os códigos das págins.

add_event.asp

<%@ LANGUAGE=VBSCRIPT %>

<%Option Explicit%>

<%

Dim DB_CONNECTIONSTRING

Dim objRecordset

Dim Added

%>

<!–#include file=”adovbs.inc”–>

<%

DB_CONNECTIONSTRING = “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.Mappath(“users.mdb”) & “;”

Set objRecordset = Server.CreateObject(“ADODB.Recordset”)

objRecordset.Open “calendar”, DB_CONNECTIONSTRING, adOpenStatic, adLockPessimistic, adCmdTable

If Request.Form(“btnAdd”) = “Add Event” Then

objRecordset.AddNew

‘– Adiciona records no database do form –

objRecordset.Fields(“Subject”) = Request.Form(“txtSubject”)

objRecordset.Fields(“Message”) = Request.Form(“Message”)

objRecordset.Fields(“Day”) = Request.Form(“selDay”)

objRecordset.Fields(“Month”) = Request.Form(“selMonth”)

objRecordset.Fields(“Year”) = Request.Form(“selYear”)

objRecordset.Fields(“AddedBy”) = Request.Form(“txtAddedBy”)

objRecordset.Fields(“DateAdded”) = Now()

objRecordset.Update

Added = “True”

End If

objRecordset.Close

Set objRecordset = Nothing

If Added = “True” Then

Response.Redirect(“calendar.asp”)

End If

%>

<html>

<center>

<form method=”post” action=”add_event.asp”>

<table border=”0″ cellpadding=”0″ cellspacing=”0″>

<tr>

<td>Dia:

<select name=”selDay”>

<option value=”1″>1</option>

<option value=”2″>2</option>

<option value=”3″>3</option>

<option value=”4″>4</option>

<option value=”5″>5</option>

<option value=”6″>6</option>

<option value=”7″>7</option>

<option value=”8″>8</option>

<option value=”9″>9</option>

<option value=”10″>10</option>

<option value=”11″>11</option>

<option value=”12″>12</option>

<option value=”13″>13</option>

<option value=”14″>14</option>

<option value=”15″>15</option>

<option value=”16″>16</option>

<option value=”17″>17</option>

<option value=”18″>18</option>

<option value=”19″>19</option>

<option value=”20″>20</option>

<option value=”21″>21</option>

<option value=”22″>22</option>

<option value=”23″>23</option>

<option value=”24″>24</option>

<option value=”25″>25</option>

<option value=”26″>26</option>

<option value=”27″>27</option>

<option value=”28″>28</option>

<option value=”29″>29</option>

<option value=”30″>30</option>

<option value=”31″>31</option>

</select></td>

<td>Mês:

<select name=”selMonth”>

<OPTION VALUE=”1″>Janeiro</option>

<OPTION VALUE=”2″>Fevereiro</option>

<OPTION VALUE=”3″>Março</option>

<OPTION VALUE=”4″>Abril</option>

<OPTION VALUE=”5″>Maio</option>

<OPTION VALUE=”6″>Junho</option>

<OPTION VALUE=”7″>Julho</option>

<OPTION VALUE=”8″>Agosto</option>

<OPTION VALUE=”9″>Setembro</option>

<OPTION VALUE=”10″>Outubro</option>

<OPTION VALUE=”11″>Novembro</option>

<OPTION VALUE=”12″>Dezembro</option>

</select></td>

<td>Ano:

<select name=”selYear”>

<option value=”1999″>1999</option>

<option value=”2000″>2000</option>

<option value=”2001″>2001</option>

<option value=”2002″>2002</option>

<option value=”2003″>2003</option>

<option value=”2004″>2004</option>

</select></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”>Assunto:

<input type=”text” name=”txtSubject” size=”35″></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”><textarea name=”Message” cols=”40″ rows=”10″></textarea></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”>Adicionado por:

<input type=”text” name=”txtAddedBy” size=”35″ value=”<%= Session(“FirstName”) & ” ” & Session(“LastName”)%>”></td>

</tr>

</table>

<p>

<input type=”submit” name=”btnAdd” value=”Adiciona”>&nbsp;&nbsp;<input type=”Reset” name=”btnReset” value=”Limpar”>

</form>

</center>

</body>

</html>

Aqui a página calendar.asp

<%@ LANGUAGE=VBSCRIPT %>

<%Option Explicit%>

<!–#include file=”adovbs.inc”–>

<%

If Request.Form(“AddEvent”) = “Add Event” Then

Response.Redirect(“add_event.asp”)

End If

If Request.Form(“EditEvent”) = “Edit Event” Then

Response.Redirect(“edit_event.asp”)

End If

Dim DB_CONNECTIONSTRING

Dim objRecordset

DB_CONNECTIONSTRING = “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.Mappath(“users.mdb”) & “;”

Set objRecordset = Server.CreateObject(“ADODB.Recordset”)

objRecordset.Open “calendar”, DB_CONNECTIONSTRING, adOpenStatic, adLockPessimistic, adCmdTable

%>

<%

Function GetDaysInMonth(iMonth, iYear)

Select Case iMonth

Case 1, 3, 5, 7, 8, 10, 12

GetDaysInMonth = 31

Case 4, 6, 9, 11

GetDaysInMonth = 30

Case 2

If IsDate(“February 29, ” & iYear) Then

GetDaysInMonth = 29

Else

GetDaysInMonth = 28

End If

End Select

End Function

Function GetWeekdayMonthStartsOn(iMonth, iYear)

GetWeekdayMonthStartsOn = WeekDay(CDate(iMonth & “/1/” & iYear))

End Function

Function SubtractOneMonth(dDate)

Dim iDay, iMonth, iYear

iDay = Day(dDate)

iMonth = Month(dDate)

iYear = Year(dDate)

If iMonth = 1 Then

iMonth = 12

iYear = iYear – 1

Else

iMonth = iMonth – 1

End If

If iDay > GetDaysInMonth(iMonth, iYear) Then iDay = GetDaysInMonth(iMonth, iYear)

SubtractOneMonth = CDate(iMonth & “-” & iDay & “-” & iYear)

End Function

Function AddOneMonth(dDate)

Dim iDay, iMonth, iYear

iDay = Day(dDate)

iMonth = Month(dDate)

iYear = Year(dDate)

If iMonth = 12 Then

iMonth = 1

iYear = iYear + 1

Else

iMonth = iMonth + 1

End If

If iDay > GetDaysInMonth(iMonth, iYear) Then iDay = GetDaysInMonth(iMonth, iYear)

AddOneMonth = CDate(iMonth & “-” & iDay & “-” & iYear)

End Function

Dim dDate     ‘ Data estamos exibindo calendário para

Dim iDIM      ‘ Dias no mês

Dim iDOW      ‘ Dia da semana que começa no mês

Dim iCurrent  ‘ Variável que usamos para segurar dia atual do mês como nós escrevemos tabela

Dim iPosition ‘ Variável que usamos para manter a posição atual na tabela

If IsDate(Request.QueryString(“date”)) Then

dDate = CDate(Request.QueryString(“date”))

Else

If IsDate(Request.QueryString(“month”) & “-” & Request.QueryString(“day”) & “-” & Request.QueryString(“year”)) Then

dDate = CDate(Request.QueryString(“month”) & “-” & Request.QueryString(“day”) & “-” & Request.QueryString(“year”))

Else

dDate = Date()

If Request.QueryString.Count <> 0 Then

Response.Write “a data que você escolheu não era uma data válida. O calendário foi definido para a data de hoje.<BR><BR>”

End If

End If

End If

iDIM = GetDaysInMonth(Month(dDate), Year(dDate))

iDOW = GetWeekdayMonthStartsOn(Month(dDate), Year(dDate))

%>

<html>

<center>

<table border=”1″ cellspacing=”0″ cellpadding=”1″>

<tr>

<td bgcolor=”blue” align=”center” colspan=”7″>

<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″>

<tr>

<td align=”right”><b><A HREF=”calendar.asp?date=<%= SubtractOneMonth(dDate) %>” style=”color: #FFFFFF”>&lt;–</A></b></TD>

<td align=”center”><font color=”#FFFFFF”><B><%= MonthName(Month(dDate)) & “  ” & Year(dDate) %></B></font></TD>

<td align=”left”><b><A HREF=”calendar.asp?date=<%= AddOneMonth(dDate) %>” style=”color: #FFFFFF”>–&gt;</A></b></TD>

<td align=”right” valign=”top”><a href=”http://www.4guysfromrolla.com”><img src=”close.gif” border=”0″></a></td>

</tr>

</TABLE>

</td>

</tr>

<tr bgcolor=”blue”>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Dom</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Seg</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Ter</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Qua</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Qui</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Sex</font></B></TD>

<td ALIGN=”center” width=”80″><B><font color=”#FFFFFF”>Sab</font></B></TD>

</tr>

<%

If iDOW <> 1 Then

Response.Write(vbTab & “<tr>” & vbCrLf)

iPosition = 1

Do While iPosition < iDOW

Response.Write(vbTab & vbTab & “<td>&nbsp;</td>” & vbCrLf)

iPosition = iPosition + 1

Loop

End If

‘– Escreva dia do mês em slots bom dia –

iCurrent = 1

iPosition = iDOW

Do While iCurrent <= iDIM

‘– opeabre a tabela –

If iPosition = 1 Then

Response.Write(vbTab & “<tr>” & vbCrLf)

End If

‘– Write na data e assun –to

Response.Write(vbTab & vbTab & “<td align=left valign=top height=60><b>” & iCurrent & “</b>”)

If Not objRecordset.BOF Then

objRecordset.MoveFirst

Do Until objRecordset.EOF

If objRecordset.Fields(“Year”) = Year(dDate) Then

If objRecordset.Fields(“Month”) = Month(dDate) Then

If objRecordset.Fields(“Day”) = iCurrent Then

Response.Write(“<br><font size=2><a href=” & Chr(34) & “display_event.asp?ID=” & objRecordset.Fields(“ID”) & Chr(34) & “>” & objRecordset.Fields(“Subject”) & “</a></font><br>”)

End If

End If

End If

objRecordset.MoveNext

Loop

End If

Response.Write(“</td>” & vbCrLf)

‘– Fecha a tabela –

If iPosition = 7 Then

Response.Write vbTab & “</tr>” & vbCrLf

iPosition = 0

End If

‘– Incrementa as  variaveis –

iCurrent = iCurrent + 1

iPosition = iPosition + 1

Loop

If iPosition <> 1 Then

Do While iPosition <= 7

Response.Write(vbTab & vbTab & “<td>&nbsp;</td>” & vbCrLf)

iPosition = iPosition + 1

Loop

Response.Write vbTab & “</TR>” & vbCrLf

End If

%>

</table>

<%

objRecordset.Close

Set objRecordset = Nothing

%>

<%

Response.Write(“<form action=” & Chr(34) & “calendar.asp” & Chr(34) & ” method=” & Chr(34) & “post” & Chr(34) & “>” & Chr(10))

Response.Write(“<input type=” & Chr(34) & “submit” & Chr(34) & ” name=” & Chr(34) & “AddEvent” & Chr(34) & ” value=” & Chr(34) & “Add Event” & Chr(34) & “>” & “&nbsp;&nbsp;”)

Response.Write(“</form>”)

%>

</center>

</body>

</html>

Display_event.asp

<%@ LANGUAGE=VBSCRIPT %>

<%Option Explicit%>

<%

Dim MyName

Dim DB_CONNECTIONSTRING

Dim objRecordset

Dim EventToShow

%>

<!–#include file=”adovbs.inc”–>

<%

MyName = Session(“Firstname”) & ” ” & Session(“LastName”)

DB_CONNECTIONSTRING = “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.Mappath(“users.mdb”) & “;”

Set objRecordset = Server.CreateObject(“ADODB.Recordset”)

objRecordset.Open “calendar”, DB_CONNECTIONSTRING, adOpenStatic, adLockPessimistic, adCmdTable

EventToShow = CInt(Request.QueryString(“ID”))

If Not objRecordset.EOF Then

objRecordset.MoveFirst

Do Until objRecordset.Fields(“ID”) = EventToShow

objRecordset.MoveNext

Loop

End If

Session(“EventToEdit”) = EventToShow

%>

<html>

Data:</b> <%= objRecordset.Fields(“Month”) & “/” & objRecordset.Fields(“Day”) & “/” & objRecordset.Fields(“Year”) %><p>

<b>Assunto:</b> <%= objRecordset.Fields(“Subject”) %><p>

<b>Mensagem:</b> <%= objRecordset.Fields(“Message”) %><p>

<b>Adicionado por:</b> <%= objRecordset.Fields(“AddedBy”) & ” on ” & objRecordset.Fields(“DateAdded”)%>

<p>&nbsp;</p>

<form method=”post” action=”edit_event.asp”>

<input type=”submit” name=”btnEditEvent” value=”Edita/Exclui Evento”>

</form>

</body>

</html>

<%

objRecordset.Close

Set objRecordset = Nothing

%>

Edit_event.asp

<%@ LANGUAGE=VBSCRIPT %>

<%Option Explicit%>

<%

Dim DB_CONNECTIONSTRING

Dim objRecordset

Dim Updated

%>

<!–#include file=”adovbs.inc”–>

<%

If Request.Form(“btnCalendar”) = “Back To Calendar” Then

Response.Redirect(“calendar.asp”)

End If

DB_CONNECTIONSTRING = “DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.Mappath(“users.mdb”) & “;”

Set objRecordset = Server.CreateObject(“ADODB.Recordset”)

objRecordset.Open “calendar”, DB_CONNECTIONSTRING, adOpenStatic, adLockPessimistic, adCmdTable

If Session(“EventToEdit”) <> 0 Then

If Not objRecordset.EOF Then

objRecordset.MoveFirst

Do Until objRecordset.Fields(“ID”) = Session(“EventToEdit”)

objRecordset.MoveNext

Loop

End If

End If

If Request.Form(“btnEdit”) = “Update” Then

‘– Adiciona records no database do form –

objRecordset.Fields(“Subject”) = Request.Form(“txtSubject”)

objRecordset.Fields(“Message”) = Request.Form(“Message”)

objRecordset.Fields(“Day”) = Request.Form(“txtDay”)

objRecordset.Fields(“Month”) = Request.Form(“txtMonth”)

objRecordset.Fields(“Year”) = Request.Form(“txtYear”)

objRecordset.Fields(“AddedBy”) = Request.Form(“txtAddedBy”)

objRecordset.Fields(“DateAdded”) = Now()

objRecordset.Update

Updated = “True”

End If

If Request.Form(“btnDelete”) = “Delete” Then

‘–Delete o evento no database –

objRecordset.Delete adAffectCurrent

Response.Redirect(“calendar.asp”)

End If

%>

<html>

<center>

<%

If Updated = “True” Then

Response.Write(“<font size=4><b><font color=” & Chr(34) & “red” & Chr(34) & “>” & objRecordset.Fields(“Subject”) & “</font> has been updated</b></font><p>”)

End If

%>

<form method=”post” action=”edit_event.asp”>

<table border=”0″ cellpadding=”0″ cellspacing=”0″>

<tr>

<td>Dia:

<input type=”text” name=”txtDay” size=”4″ value=”<%= objRecordset.Fields(“Day”)%>”></td>

<td>Mês:

<input type=”text” name=”txtMonth” size=”10″ value=”<%= objRecordset.Fields(“Month”)%>”></td>

<td>Ano:

<input type=”text” name=”txtYear” size=”5″ value=”<%= objRecordset.Fields(“Year”)%>”></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”>Assunto:

<input type=”text” name=”txtSubject” size=”35″ value=”<%= objRecordset.Fields(“Subject”)%>”></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”><textarea name=”Message” cols=”40″ rows=”10″><%= objRecordset.Fields(“Message”)%></textarea></td>

</tr>

<tr>

<td colspan=”3″>&nbsp;</td>

</tr>

<tr>

<td colspan=”3″ align=”center”>Adicionado por:

<input type=”text” name=”txtAddedBy” size=”35″ value=”<%= objRecordset.Fields(“AddedBy”)%>”></td>

</tr>

</table>

<p>

<input type=”submit” name=”btnEdit” value=”Atualizar”>&nbsp;&nbsp;

<input type=”submit” name=”btnDelete” value=”Excluir”>&nbsp;&nbsp;

<input type=”Reset” name=”btnReset” value=”Limpar”>&nbsp;&nbsp;

<input type=”submit” name=”btnCalendar” value=”Voltar Calendario”>

</form>

</center>

</body>

</html>

<%

objRecordset.Close

Set objRecordset = Nothing

%>

Escrito por X@nBuRzUm on dezembro 23, 2011. Arquivado em ASP.net, Dreamweaver, Programação, Usabilidade. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>