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″> </td>
</tr>
<tr>
<td colspan=”3″ align=”center”>Assunto:
<input type=”text” name=”txtSubject” size=”35″></td>
</tr>
<tr>
<td colspan=”3″> </td>
</tr>
<tr>
<td colspan=”3″ align=”center”><textarea name=”Message” cols=”40″ rows=”10″></textarea></td>
</tr>
<tr>
<td colspan=”3″> </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”> <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”><–</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”>–></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> </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> </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) & “>” & “ ”)
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> </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″> </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″> </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″> </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”>
<input type=”submit” name=”btnDelete” value=”Excluir”>
<input type=”Reset” name=”btnReset” value=”Limpar”>
<input type=”submit” name=”btnCalendar” value=”Voltar Calendario”>
</form>
</center>
</body>
</html>
<%
objRecordset.Close
Set objRecordset = Nothing
%>
Últimos Comentários