Acesse a parte anterior: Controle de Transporte Escolar On-Line - Parte 1
Neste tutorial irei, darei uma importância maior a criação da página de Cadastro de transporte, pelo fato dela conter vários DropDowList. E como fazer uma Consulta em um GridView utilizando o DropDowList.
Inicie o Visual Web Developer, e adicione ao site um Form de nome CadTransporte.aspx. Visualize na Figura 1 a quantidade de DropDowlist nesta página.
Todos apresentam dados de alguma outra tabela. Então vamos criar o acesso a tabela Escola do 1º DropDowList e o Restante será idêntico.
Na página, recém criada adicione uma tabela com 20 linhas e 02 colunas, nela adicione os labels necessários e os TextBox, adicione um DropDowList para os itens Escolas,Série,Período,Tipo de Transporte e empresa Transportadora.
Selecione o DropDowList Escola e crie um ChosseDataSource, como mostra a Figura 2.
Na próxima tela que se abre selecione New Data Source, e a seguir selecione o tipo de Conexão, dando um nome sugestivo a nossa Consulta, como mostra a Figura 3.
Na Figura 4 selecione nosso Banco de dados.
E a tabela de onde virá as informações, que no nosso caso Escola, como mostra a Figura 5.
Clique em Next, e na sequência finish, como mostra a Figura 6.
Nesta parte selecione o nome da Escola, para aparecer no Display, e CodEscola que é o valor do DropDowList. Clique em Ok e altere o nome do seu DropDowList para DDLEscola.
Está pronta a nossa consulta para o DropDowList.
Faça o mesmo para os outros, não esquecendo de alterar seus nomes conforme mostrado na Tabela 1.
Escola (DropDowList) | ddlEscola |
Serie (DropDowList) | ddlSerie |
Aluno | txtAluno |
RA | txtRA |
Endereco | txtEndereco |
Bairro | txtBairro |
Cidade | txtCidade |
Estado | txtEstado |
CEP | txtCEp |
Telefone | txtTelefone |
Celular | txtCelular |
Responsável | txtResponsavel |
Obs | txtObs TextMode=Multiline |
Kilometragem | txtKM |
Periodo (DropDowList) | ddlPeriodo |
TipoTransporte (DropDowList) | ddlTipo |
Empresa Transportadora (DropDowList) | ddlEmpresa |
Tabela 1. Tabela com os nomes dos demais itens
Adicione dois Buttom e altere os nomes para btnInserir e btnAlterar.
Dando um duplo-Clique no btnInserir digite :
Protected Sub btnInserir_Click(ByVal sender As Object,
ByVal e As System.EventArgs)
Handles btnInserir.Click 'verifica se foi informado
If ddlEscola.Text <> String.Empty And ddlSerie.Text <> String.Empty And
txtAluno.Text <> String.Empty And txtRA.Text <>
String.Empty And txtEndereco.Text <>
String.Empty _ And txtBairro.Text <> String.Empty And txtCidade.Text <>
String.Empty And txtUF.Text <> String.Empty And txtCEP.Text <>
String.Empty And txtTelefone.Text <> String.Empty _And txtCelular.Text <>
String.Empty And txtResponsavel.Text <> String.Empty And txtObs.Text <>
String.Empty And ddlPeriodo.Text <> String.Empty And ddlTipo.Text <>
String.Empty And ddlEmpresa.Text <> String.Empty Then
'define a conexao com o banco de dados na pasta app data
Dim strconn As String = "provider=microsoft.jet.oledb.4.0;data source =" &
Server.MapPath("app_data/Transporte.mdb") & ";"
'monta a instrução sql que vai incluir os dados na tabela.
Dim mysql As String = "insert into Transporte(CodEscola,Serie,Aluno,RA,Endereco,
Bairro,Cidade,UF,CEP,telefone,Celular,Responsavel,obs,
kilometragem,Periodo,TipoTransporte,EmpresadoTransporte)
values(@CodEscola,@Serie,@Aluno,@RA,@Endereco,
@Bairro,@Cidade,@UF,@CEP,@telefone,@Celular,
@Responsavel,@Obs,@kilometragem,@Periodo,@TipoTransporte,
@EmpresadoTransporte)"
Dim myconn As New OleDbConnection(strconn)
Dim cmd As New OleDbCommand(mysql, myconn)
'preenche os parametros obtidos no formulario
cmd.Parameters.Add(New OleDbParameter("@CodEscola", ddlEscola.Text))
cmd.Parameters.Add(New OleDbParameter("@Serie", ddlSerie.Text))
cmd.Parameters.Add(New OleDbParameter("@Aluno", txtAluno.Text))
cmd.Parameters.Add(New OleDbParameter("@RA", txtRA.Text))
cmd.Parameters.Add(New OleDbParameter("@Endereco", txtEndereco.Text))
cmd.Parameters.Add(New OleDbParameter("@Bairro", txtBairro.Text))
cmd.Parameters.Add(New OleDbParameter("@Cidade", txtCidade.Text))
cmd.Parameters.Add(New OleDbParameter("@UF", txtUF.Text))
cmd.Parameters.Add(New OleDbParameter("@CEP", txtCEP.Text))
cmd.Parameters.Add(New OleDbParameter("@Telefone", txtTelefone.Text))
cmd.Parameters.Add(New OleDbParameter("@Celular", txtCelular.Text))
cmd.Parameters.Add(New OleDbParameter("@responsavel", txtResponsavel.Text))
cmd.Parameters.Add(New OleDbParameter("@Obs", txtObs.Text))
cmd.Parameters.Add(New OleDbParameter("@Kilometragem", txtKm.Text))
cmd.Parameters.Add(New OleDbParameter("@Periodo", ddlPeriodo.Text))
cmd.Parameters.Add(New OleDbParameter("@TipoTransporte", ddlTipo.Text))
cmd.Parameters.Add(New OleDbParameter("@EmpresadoTransporte", ddlEmpresa.Text))
'abre a conexao e executa o comando
Try
' Coloca um indice Inicial no dropdowlist
ddlEscola.Items.Insert(0, "Selecione sua Escola")
ddlEscola.SelectedIndex = 0
'lblmsg.Text = "Dados Gravados com Sucesso!!!"
myconn.Open()
cmd.ExecuteNonQuery()
lblMsg.Text = "Dados Gravados com Sucesso!!!"
Response.Redirect("cadTransporte.aspx")
Catch
lblMsg.Text = "Erro ao gravar os dados, consulte o administrador do site"
Finally
'fecha a tabela e a conexão se der erro
myconn.Close()
End Try
End If
End Sub
Salve e teste a página. Obs:
- É necessário estar com todos os dados Exatos, qualquer erro, revise passo-a-passo a sua digitação.
- No preenchimento não pode conter nenhum campo em branco, ou seja, é necessário a digitação de todos os campos.
Na Figura 7 temos a página rodando no localhost.
As alterações e exclusões seguem o mesmo padrão da página Serie.aspx (Tutorial III). Veja na Figura 8 a página AlteraCadastro.aspx.
Trabalhando com DropDowList em um GridView
Para que possa aparecer o nome da Escola ou de quaisquer outro dados em um gridView na hora de fazer as alterações, após criar o GridView, selecione a opção Edit Collumns (Figura 9):
E na tela que se abre altere todos os itens para TemplateField, como mostra a Figura 10.
Retorne ao GridView e selecione agora na GridView Tasks a opção Edit Templates, como mostra a Figura 11.
Note que nosso GridView transformou-se em um coluna contendo apenas um Label, e ao seu lado temosa opção de finalizar a edição ou selecionar nossas templates clicando no Display.
Selecione a Template Escola e verifique que abrirá várias opções, como mostra a Figura 12.
Pontos a analisar:
- O primeiro ItemTemplateé o que será mostrado no GridView;
- Como estamos trabalhando com o CodEscola, é o que será visualizado;
- A opção EditItemTemplateserá o campo que teremos que fazer a edição ou exclusão. É nesse campo que apagaremos o Textbox e colocaremos um DropDowList para que na hora de fazer as alterações o programa possa ir buscar o nome da Escola e não seu código.
- Note que no Displayaparece todos os itens que você indicou como TemplateField, então, para se alterar qualquer formato de campo você deverá selecioná-lo na caixa de display e fazer as alterações (tamanho, backColor,ForeColor, Font, bordas, etc.).
Após fazer as alterações e criar nossos DropDowList clique em Endtemplate, e faça os testes.
Neste GridView estou fazendo a busca pelo nome do aluno. Já na edição e alteração note que aparece o nome da Escola somente na edição e alteração e logo abaixo seu código, poderíamos resolver esse problema utilizando uma Consulta, mas preferi deixar no modo padrão, como mostra a Figura 13.
Dando continuidade ao nosso site, vamos desenvolver as páginas Intranet, de acesso das unidades escolares e a página Área Restrita acessada pelo desenvolvedor, que já foi desenvolvida na parte 2.Então vamos lá:
A Página de Intranet
Abra a pasta Intranet, e selecione a página Intranet. aspx. Nela adicione na guia Standard um controle Wizard, como mostra a Figura 1.
Clique em AutoFormat e selecione o Tema Professional (Figura 2).
Clique em Apply e em Ok, na seqüência selecione Add/Remove Wizard Steps (Figura 3).
E altere seu titulo, como mostra a Figura 4.
Com o titulo alterado, vamos criar nossa página de boas Vindas. Note que o cursor já se encontra no meio da página, basta digitarmos e dando Enter fará com que a imagem e os textos se movimente (Figura 5).
Note que para abrir a próxima página, teremos que clicar em Next.
Vamos alterar o nome desse botão selecionando Properties e alterando as propriedades dos botões conforme a Figura 6:
Na parte de dados, inclua uma imagem (disponível na parte 1) e um Hiperlink, apontando para o Cadastro de transporte (Figura 7).
Para o botão finalizar, selecione o Wizard altere a opção Navigateurl, conforme a Figura 8.
Faça os testes e verifique, se está tudo ok. Aqui você poderá criar Consultas e disponibilizar para as escolas, fica a seu critério.
A página Administrativa
É nessa página onde ficará o Cadastro de Usuários, Relatórios diversos e Consultas especiais. Com base no item anterior crie a página adm.aspx, conforme a Figura 9.
Desenvolvendo a Página de Roteiros
Para se desenvolver essa página, é necessário ser cadastrado no Google, pois utilizarem o GoogleMaps. Adicione uma nova pasta em nosso site de nome Roteiros, e dentro dela adicione uma nova página de nome Roteiro.aspx, como mostra a Figura 10.
Adicione a página um hiperlink, e o caminho iremos criar pelo GoogleMaps, como mostra a Figura 11.
Note o caminho criado pelo Google e o local onde foi digitado.
Criando o Roteirizador no GoogleMaps
Abra o Google Maps e crie um novo Mapa de nome (nome da Escola), que no meu caso será Escola teste. Selecione meus Mapas, como mostra a Figura 12.
E clicando em Criar Novo Mapa, clique em pronto e logo em seguida Editar, como mostra a Figura 13.
Localize o local de sua Escola, e com a Caixa de ferramentas inclua um Marcador de lugar (Figura 14).
Selecione na sequência o objeto Desenhar linha, posicione no início do trajeto, e vá clicando até formar seu roteiro, como mostra a Figura 15.
.Feito todo o trajeto, clique em Link, copie e cole esse endereço na nossa página Roteiro.aspx, como mostra a Figura 16.
Podemos personalizar o que nossos visitantes irão visualizar, bastando, clicar em Personalizar e visualizar mapa incorporado, e criar o layout. Note que à medida que alteramos o tamanho do mapa, posição, etc., o endereço de link se altera (Figura 17).
A hospedagem
Uma das vantagens de se trabalhar com Access, é a grande gama de hospedagens gratuitas pela Internet. No meu caso escolhi o site www.somee.com, bastando fazer seu cadastro, e o manuseio é bastante simples (Figura 18). Não estou fazendo propaganda, indicação somente para fins didáticos, a escolha fica a seu critério.
Com o mapa terminado, acabamos de criar nosso site de transporte Escolar, os pequenos detalhes de preenchimento fica a cargo de vocês.