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: PrincipalTutoriaisLanodecastro : Xml001
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


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

 

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2020 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI