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.

Form de cadastroForm de cadastro

Figura 1. Form de cadastro

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.

Criando um ChosseDataSource
Figura 2. Criando um ChosseDataSource

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.

Nome da conexão
Figura 3 . Nome da conexão

Na Figura 4 selecione nosso Banco de dados.

Seleção do banco de dados
Figura 4. Seleção do banco de dados

E a tabela de onde virá as informações, que no nosso caso Escola, como mostra a Figura 5.

Tabela Escola
Figura 5. Tabela Escola

Clique em Next, e na sequência finish, como mostra a Figura 6.

Confirmação do Data Source
Figura 6. Confirmação do Data Source

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:

  1. É necessário estar com todos os dados Exatos, qualquer erro, revise passo-a-passo a sua digitação.
  2. 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.

Página rodando
Figura 7. Página rodando

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.

Página AlteraCadastro.aspx
Figura 8. 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):

Edit Collumns
Figura 9.Edit Collumns

E na tela que se abre altere todos os itens para TemplateField, como mostra a Figura 10.

TemplateField
Figura 10.TemplateField

Retorne ao GridView e selecione agora na GridView Tasks a opção Edit Templates, como mostra a Figura 11.

OpçãoEdit Templates OpçãoEdit Templates
Figura 11. OpçãoEdit Templates

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.

Opções do Template Escola
Figura 12. Opções do Template Escola

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.

Controle de atualização
Figura 13. Controle de atualização

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.

Wizard
Figura 1. Wizard

Clique em AutoFormat e selecione o Tema Professional (Figura 2).

Seleção de tema
Figura 2. Seleção de tema

Clique em Apply e em Ok, na seqüência selecione Add/Remove Wizard Steps (Figura 3).

Wizard Steps
Figura 3.Wizard Steps

E altere seu titulo, como mostra a Figura 4.

alterando o títutlo
Figura 4. Alterando o títutlo

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).

Alterando a posição
Figura 5. Alterando a posição

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:

Alterando as propriedades dos botões
Figura 6. Alterando as propriedades dos botões

Na parte de dados, inclua uma imagem (disponível na parte 1) e um Hiperlink, apontando para o Cadastro de transporte (Figura 7).

Incluindo Hiperlink
Figura 7. Incluindo Hiperlink

Para o botão finalizar, selecione o Wizard altere a opção Navigateurl, conforme a Figura 8.

Navigateurl
Figura 8.Navigateurl

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.

Área Administrativa
Figura 9. Área Administrativa

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.

Adicionando página
Figura 10. Adicionando página

Adicione a página um hiperlink, e o caminho iremos criar pelo GoogleMaps, como mostra a Figura 11.

Roteiro
Figura 11. Roteiro

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.

Seleção dos mapas
Figura 12. Seleção dos mapas

E clicando em Criar Novo Mapa, clique em pronto e logo em seguida Editar, como mostra a Figura 13.

Editando confifurações
Figura 13. Editando confifurações

Localize o local de sua Escola, e com a Caixa de ferramentas inclua um Marcador de lugar (Figura 14).

Marcador de lugar
Figura 14.Marcador de lugar

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.

.
Criando trajeto
Figura 15. Criando trajeto

Feito todo o trajeto, clique em Link, copie e cole esse endereço na nossa página Roteiro.aspx, como mostra a Figura 16.

Trajeto incluso
Figura 16.Trajeto incluso

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).

Mapa incorporado
Figura 17. Mapa incorporado

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.

Site Somee
Figura 18. Site Somee

Com o mapa terminado, acabamos de criar nosso site de transporte Escolar, os pequenos detalhes de preenchimento fica a cargo de vocês.