NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosNet : Xml001
Quer receber novidades e e-books gratuitos?

Agendando Datas no Calendar com XML

Olá pessoal,

Hoje vamos interromper nossa seqüência de tutoriais sobre o Sistema de Notícias para tratar de um assunto bem interessante e muito produtivo, o uso do objeto Calendar.

Você pode até estar questionando, por que tão produtivo? Simples, o objeto Calendar, já traz consigo toda a estrutura visual de comportamental de um calendário interativo, isso de fato simplificou muito a vida dos programadores e prova mais uma vez que o ambiente .Net sem dúvidas, é o mais produtivo do mercado.

Certa vez, quando ainda programava em ASP, surgiu a necessidade de implementar um calendário com datas agendadas, isto é, datas destacadas no calendário, de forma que o usuário em questão pudesse distinguí-las. Imagine o trabalhão que deu, pior é que não ficou como eu pretendia sem contar as muitas vezes em que acontecia uma exceção.

Pois bem, agora estamos em outra era, e com ASP.Net vamos implementar um calendário que carrega as datas a serem marcadas de um arquivo XML.

Você pode usar o VS.Net 2003, VS.Net 2005 ou WebMatrix

Características do Projeto

Objetos: File; Calendar; Dataset

Linguagem: VB.Net (mas quem quiser o código em C# é só me mandar um e-mail)

Arquivos: Agenda.aspx e Agenda.xml

Crie um novo projeto e dê a ele o nome de AgendaXML

Lembrando que é uma ASP.Net Web Application.

Exclua o arquivo WebForm1.aspx do seu projeto e adicione um novo chamado Agenda.aspx

Abra o arquivo Agenda.aspx e adicione o controle Calendar que está na ToolBox.

Coloque o na posição que desejar, e ainda mantendo-o selecionado, clique em AutoFormat  na caixa de propriedades, e selecione uma auto-formatação que lhe agrade.

Ainda na caixa de propriedades, dê a ele o nome de Calendario.

Agora, o próximo passo é criar o arquivo XML que irá conter as datas a serem agendadas no calendário.

Você pode criar este arquivo no próprio VS.Net ou em outro editor qualquer. O arquivo deverá conter a seguinte estrutura:

<?xml version="1.0" standalone="yes"?>

<Agenda_de_Compromissos>

  <Compromissos>

    <Descricao>Pagamento das Despesas Gerais</Descricao>

    <Data>4/8/2006</Data>

  </Compromissos>

</Agenda_de_Compromissos>

Você pode até copiar este modelo acima. Para cada data que você quiser agendar é necessário inserir uma nova descrição e uma nova data dentro dos Tags  <Agenda_de_Compromissos></Agenda_de_Compromissos>. Este modelo acima possui apenas uma data agendada.

Salve este arquivo em qualquer lugar do seu disco rígido, de preferência no C:\Agenda.xml

Agora vamos ao código que irá carregar este arquivo e exibir as datas selecionadas no calendário.

Importe os seguintes Namespaces

Imports System.Data

Imports System.IO

Usaremos System.Data para poder manipular o arquivo XMl, e o System.IO apenas para verificar a existência do arquivo a ser carregado.

Agora iremos criar duas rotinas, uma para verificar a existência do arquivo, e outra para carregar as datas, caso o arquivo exista, é claro.

Primeira Rotina

Private Sub ObterArquivoXML()

        'Cria o objeto File, para manipular arquivos

        Dim arqXML As File

        'Verifica a existência do arquivo no path C:\Agenda.XML

        If arqXML.Exists("C:\Agenda.XML") Then

            'Caso o arquivo esteja prensente, chama a rotina para carregar as datas

            CarregarDatasAgendadas()

        Else

            'Caso contrário, informa que o arquivo não foi encontrado e impede a visualização do calendário

            Response.Write("O arquivo não foi localizado!")

            Calendario.Visible = False

        End If

    End Sub

Note que usamos o objeto File apenas para verificar se o arquivo existe no caminho especificado.

Agora vamos para a segunda Rotina

Private Sub CarregarDatasAgendadas()

        'Cria o dataset que irá obter a tabela compromissos

        Dim dsAgenda As New DataSet

        'Abre o arquivo Agenda.xml e carrega para o dataset

        dsAgenda.ReadXml("C:\Agenda.xml")

        'variável de controle de repetição

        Dim x As Integer

        'Cria a repetição interagindo com o número de linhas dentro da tabela compromissos

        For x = 0 To dsAgenda.Tables("Compromissos").Rows.Count - 1

            'A cada linha encontrada, uma nova data é adicionada no calendário.

Calendario.SelectedDates.Add(dsAgenda.Tables("Compromissos").Rows(x).Item(1))

        Next

    End Sub

Reparem que o código é muito simples.

Primeiramente se cria o DataSet e depois usa a função ReadXML() para carregar o arquivo. De acordo com a estrutura do arquivo Agenda.xml, uma tabela passará a existir chamada Compromissos.

Usamos a propriedade Rows.Count para saber quantas linhas foram inseridas, ou seja, quantas datas agendadas existem.

E por último, utilizamos a função SelectDates.Add() do calendário, para adicionar todas as linhas Rows(x) da tabela compromissos, adicionando as datas que estão na coluna dois Rows(x).Item(1). O número 1 indica a segunda coluna, sendo Rows.Item(0) a primeira coluna.

Vamos testar, não esqueça de configurar o StartPage.

Veja que o dia 04/08/2006 foi selecionado.

Agora insira mais datas no arquivo Agenda.XML para vermos o funcionamento completo.

Testamos novamente:

Estão aí, todas as datas selecionadas.

Aqui terminamos nosso tutorial.

Espero que tenham gostado

Um Abraço,

Lano de Castro

lanodecastro@hotmail.com

1 Visão geral do .NET Framework e do CLR
1 Comunicação .NET e VB 6.0 (com Visual Studio.NET 2005) - Parte I
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 1
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 2
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 3
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 4
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 5
1 VB: Menu Principal, Menu PopUp e Arquivos Texto
Visual Studio
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control
1 Visual Web Developer - 2005 - Beta 2 - Introdução
1 ASP.NET 2.0 - Conhecendo o GridView
1 ASP.NET 2.0 - Utilizando o GridView e DetailsView
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control - Parte 2
1 ASP.NET 2.0 - Utilizando o XmlDataSource
1 Envio de e-mail através de formulário web
1 ADO.NET 2.0 - Conhecendo as novidades parte 1
1 Série Visual Source Safe - Parte 1
1 Série Visual Source Safe - Parte 3
1 URL Indexável – Reescrever URL de uma forma amigável
1 Permissão de Página Utilizando Web.Config
1 Usando public interface
1 Trabalhando com o componente TabContainer
1 Adicionando Menu no DataGridView
ASP.NET
1 Conhecendo o ambiente integrado do WebMatrix
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte I
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte II
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte III
1 Acessando um banco de dados facilmente com ADO.Net e Datagrid
1 Desvendando os segredos do Dataset- Parte I
1 Construindo um Sistema de Publicação de Notícias – Parte 1
1 Construindo um Sistema de Publicação de Notícias – Parte 2
1 Construindo um Sistema de Publicação de Notícias – Parte 3
1 Construindo um Sistema de Publicação de Notícias – Parte 4
1 Construindo um Sistema de Publicação de Notícias – Parte 5
1 Login com Perfil de Acesso
1 Guest Book com XML - Parte 1
1 Guest Book com XML - Parte 2
1 Agendando Datas no Calendário com XML
1 Filtrando e Organizando Dados com o Controle DataView
1 Lista de Dados com Subitens – Parte 1
1 Lista de Dados com Subitens – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 1
1 Trabalhando com Arquivos e Diretórios – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 3
1 Sistema de Enquetes baseado em WebServices – Parte 1
1 Sistema de Enquetes baseado em WebServices – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 3
1 Upload de Arquivos
1 Crie seu próprio código de verificação
1 Login e Senha com FormsAuthentication – Parte 1
1 Login e Senha com FormsAuthentication – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 4
1 Sistema de Enquetes baseado em WebServices – Parte 5
1 Sistema de Enquetes baseado em WebServices – Parte 6