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: PrincipalArtigos › ASP 3.0 › Capítulo 04 : 06
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 032 - Capítulo 04 - Alguns exemplos práticos de aplicação

Neste item veremos alguns exemplos práticos de aplicação do conteúdo visto até o momento. Serão propostos alguns problemas práticos. Para resolvê-los utilizaremos o conhecimento aprendido até o momento, com a utilização dos Objetos ASP já apresentados, além de elementos da linguagem VBScript. Também precisaremos dos conhecimentos de HTML introduzidos no Capítulo 2.

Exemplo 1: Validação dos dados de um formulário

Descrição do problema: Vamos supor que tenhamos um formulário para cadastro dos nossos Clientes em um Banco de Dados. Alguns campos deste formulário são de preenchimento obrigatório, isto é, não podem ficar em branco ou conter valores nulos. Caso o usuário deixe um ou mais destes campos sem preencher, devemos retornar o formulário para o Cliente, indicando qual ou quais campos de preenchimento obrigatório não foram preenchidos. Ao voltar o formulário para o Cliente, não devemos fazer com que o mesmo tenha que preencher todos os campos novamente, mas somente os campos que estiverem faltando. Por isso o formulário voltará para o Cliente, mantendo os valores que o mesmo já preencheu, apenas indicando quais campos obrigatórios não foram preenchidos.

Na prática os valores preenchidos no formulário deveriam ser armazenados em um Banco de Dados como o Microsoft SQL Server 7.0 ou o Microsoft Access 2000. Como ainda não aprendemos a trabalhar com Banco de Dados, vamos apenas validar os dados digitados. Caso o usuário tenha digitado todos os dados corretamente, apenas informaremos que os dados foram digitados com sucesso e exibiremos os valores digitados. No próximo capítulo estaremos tratando sobre a conexão de páginas ASP com Bancos de Dados.

Na Listagem 4.29 temos o formulário que o usuário deverá preencher. Neste formulário, são de preenchimento obrigatório os seguintes campos:

  • nome
  • rua
  • cidade
  • bairro
  • email
  • cpf

Listagem 4.29 – Formulário para cadastro do Cliente – exemplo-1.htm.

1          <HTML>
2          <HEAD>
3          <TITLE>Formulário para Cadastro  de Clientes !!</TITLE>
4          </HEAD>
5          <BODY>
 
6          <P><STRONG>Formulário para  Cadastro de Clientes:</STRONG></P>
7          <P>Digite os dados solicitados e  clique no botão Enviar.</P>
 
8          <FORM  action="exemplo-1.asp" method="post">
 
9          <P>Nome: <INPUT id=nome  maxLength=50 name=nome>(*)</P>
10        <P>Rua: <INPUT id=rua  maxLength=35 name=rua >(*)</P>
11        <P>Cidade:  <INPUT id=cidade maxLength=30 name=cidade>(*)
12        Bairro: <INPUT id=Bairro maxLength=20  name=Bairro></P>
13        <P>e-mail:  <INPUT id=email maxLength=50 name=email>(*)
14        Fone:<INPUT id=fone maxLength=15  name=fone></P>
15        <P>CPF: <INPUT id=cpf  maxLength=11 name=cpf>(*) 
16        <FONT size=2><STRONG>(Digite  sem o ponto e sem o traço)
17        </STRONG></FONT></P>
18        <P>Cartão Crédito: 
19        <INPUT id=cartao name=cartao  type=radio value=Visa>Visa&nbsp; 
20        <INPUT id=cartao name=cartao  type=radio value="Master Card">&nbsp;Master Card 
21        <INPUT id=cartao name=cartao  type=radio value=Outros>&nbsp;Outros
22        </P>
23        <P><INPUT id=enviar name=enviar  type=submit value=Enviar> 
24        <INPUT id=limpar name=limpar  type=reset value=Reset>
25        <BR>
26        (*)->Campos de digitação  obrigatória.<BR></P>
 
27        </FORM>
 
28        </BODY>
29        </HTML>

Ao visualizarmos este formulário no Internet Explorer, obtemos o resultado mostrado na Figura 4.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.23 O Formulário para Cadastro de Clientes.

Observe, na linha 8, que o atributo action, da tag FORM é definido como exemplo-1.asp. Agora precisamos criar a página exemplo-1.asp, a qual vai processar os dados digitados no formulário quando o usuário clicar no botão Enviar. A página exemplo-1.asp deve verificar se todos os campos obrigatórios foram digitados, em caso afirmativo a página apenas informará os valores digitados pelo usuário, caso contrário, o formulário será enviado de volta para o usuário, indicando quais os campos obrigatórios que não foram preenchidos. Além disso ao enviar o formulário de volta para o usuário, os valores digitados pelo usuário serão preservados, evitando que o mesmo precise digitar todos os campos novamente.

Existem diversas maneiras e algoritmos diferentes para solucionar este problema. Na Listagem 4.30 apresentamos uma solução para o problema proposto: 

Listagem 4.30 – Fazendo a validação dos dados obrigatórios – exemplo-1.asp.

1          <%@ Language=VBScript %>
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
 
6          <%
7          ' Inicia a verificação para saber se  todos
8          ' os campos obrigatórios foram  preenchidos.
 
9          ' Atribui os campos obrigatórios à  variáveis.
 
10        nome = Request.Form("nome")
11        rua = Request.Form("rua")
12        cidade =  Request.Form("cidade")
13        email = Request.Form("email")
14        cpf = Request.Form("cpf")
 
15        'Verifica se os campos obrigatório foram  preenchidos.
16        'Qualquer dado obrigatório que não tenha  sido preenchido,
17        'definirá a variável faltou_dado em Sim.
 
18        If (nome="")Then
19             mensagem_nome="Preencha o campo Nome:"
20             faltou_dado="Sim"
21             faltou_nome="Sim"
22        End If
 
23        If (rua="")Then
24             mensagem_rua="Preencha o campo Rua:"
25             faltou_dado="Sim"
26             faltou_rua="Sim"
27        End If
 
28        If (cidade="")Then
29             mensagem_cidade="Preencha o campo Cidade:"
30             faltou_dado="Sim"
31             faltou_cidade="Sim"
32        End If
 
33        If (email="")Then
34        mensagem_email="Preencha o campo  Email:"
35             faltou_dado="Sim"
36             faltou_email="Sim"
37        End If
 
38        If (cpf="")Then
39             mensagem_cpf="Preencha o campo CPF:"
40             faltou_dado="Sim"
41             faltou_cpf="Sim"
42        End If
 
43        'Caso todos os campos obrigatórios  tenham sido
44        'preenchidos, apenas informo os valores  digitados.
 
45        If faltou_dado<>"Sim"  Then
46            Response.Write "<P>Você digitou os seguintes dados  !</P>"
47            Response.Write "<HR>"
 
48                     For Each Dado in  Request.Form %>
49                         <P>
50                         <% =Dado %> 
51                         =
52                          <%=Request.Form(Dado)%>
53                          </P> 
54                     <%Next
55         End If
 
56         'Caso algum dado obrigatório não tenha  sido digitado
57         'Envia o formulário de  volta para o Cliente,
58         'preservando os valores que o mesmo já  digitou.
59         'Observe que utilizamos Response.Write  para ir
60         'recriando todo o formulário.
61         'Também observe que o formulário é  enviado de volta
62         'na página exemplo-1.asp e que o  atributo action
63         'da tag FORM é definido como  exemplo-1.asp, ou seja
64         'a página exemplo-1.asp chama a si  mesma após o
65         'usuário clicar no botão Enviar.
66         'Esta é uma técnica bastante  interessante.
67         'Antes de enviar o formulário,  informamos quais
68         'os campos obrigatório que não foram  preenchidos.
             
69         If faltou_nome="Sim" Then
70             Response.Write "O campo Nome deve ser preenchido. <br>"
71         End If
 
72         If faltou_rua="Sim" Then
73             Response.Write "O campo Rua deve ser preenchido. <br>"
74         End If 
 
75         If faltou_cidade="Sim" Then
76             Response.Write "O campo Cidade deve ser preenchido.  <br>"
77         End If
 
78         If faltou_email="Sim" Then
79             Response.Write "O campo Email deve ser preenchido. <br>"
80         End If
 
81         If faltou_cpf="Sim" Then
82             Response.Write "O campo CPF deve ser preenchido. <br>"
83         End If
 
84         'Começo a reenviar o formulário para o  usuário.
85         %>
 
86         <P><B>Formulário para  Cadastro de Clientes:</B></P>
87         <P>Digite os dados solicitados e  clique no botão Enviar.</P>
88         <FORM  action="exemplo-1.asp" method="post" id=form1  name=form1> 
 
89        <% Response.Write “Caso queira  alterar algum dado, digite no formulário abaixo.”
 
90             If faltou_nome="Sim" Then
91                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome              
                        size=50>(*)</P>"
92             Else 
93                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome size=50
                      value=" & Chr(34)& Request.Form("nome") & Chr(34) & ">(*)</P>"      
94             End If
 
95             If faltou_rua="Sim" Then
96                    Response.Write  "<P>Rua: <INPUT id=rua maxLength=35 name=rua size=35>
                        (*)</P>"
97             Else 
98                    Response.Write  "<P>Rua: <INPUT id=rua maxLength=35 name=rua size=35 
                        value=" &  Chr(34)& Request.Form("rua") & Chr(34) &  ">(*)</P>"       
99             End If
 
100           If faltou_cidade="Sim" Then
101                   Response.Write  "<P>Cidade: <INPUT id=cidade maxLength=30
                         name=cidade size=18>(*)"
102           Else 
103                  Response.Write  "<P>Cidade: <INPUT id=cidade maxLength=30
                         name=cidade size=18 value=" & Chr(34)  & 
                        Request.Form("cidade")  & Chr(34) & ">(*)"       
104           End If
    
105           Response.Write "Bairro:<INPUT id=bairro maxLength=25 name=bairro
                 value=" & Chr(34) & Request.Form("bairro") &  Chr(34) & "></P>"
    
106           If faltou_email="Sim" Then
107                  Response.Write  "<P>Email: <INPUT id=email maxLength=35
                        name=email  size=19>(*)</P>"
108           Else 
109                  Response.Write  "<P>Email: <INPUT id=email maxLength=30
                        name=email size=19  value=" & Chr(34)& Request.Form("email")
                        & Chr(34) &  ">(*)"       
110           End If
 
111      Response.Write "Fone:<INPUT  id=fone maxLength=15 name=fone 
            value=" & Chr(34) &  Request.Form("fone") & Chr(34) & "></P>"
 
112        If faltou_cpf="Sim" Then
                 Response.Write "<P>CPF: <INPUT id=cpf maxLength=11  name=cpf size=11>(*)"
113        Else 
114           Response.Write "<P>CPF: <INPUT id=cpf maxLength=11  name=cpf 
                 size=11 value=" & Chr(34)& Request.Form("cpf")  & Chr(34) & ">(*)"       
115        End If
 
116      Response.Write "<FONT  size=2><B>(Digite sem o ponto e sem o traço)
            </B></FONT></P>"
117       Response.Write "<P>Cartão  Crédito: "
       
118           If Request.Form("cartao")="Visa" Then
119                  Response.Write "<INPUT  id=cartao name=cartao type=radio
                         value=Visa checked>Visa"
120           Else
121                  Response.Write "<INPUT  id=cartao name=cartao type=radio value=Visa>Visa"
122           End If
 
121           If Request.Form("cartao")="Master Card" Then
122                  Response.Write "<INPUT  id=cartao name=cartao type=radio value=" 
                        & Chr(34) &  "Master Card" & Chr(34)& " checked>Master Card"
123           Else
124                  Response.Write "<INPUT  id=cartao name=cartao type=radio value=" 
                        & Chr(34) &  "Master Card" & Chr(34)& " checked>Master Card"
125           End If
 
126           If Request.Form("cartao")="Outros" Then
127                  Response.Write "<INPUT  id=cartao name=cartao type=radio 
                        value=Outros  checked>Outros"
128           Else
129                  Response.Write "<INPUT  id=cartao name=cartao type=radio value=
                        Outros>Outros</P>"
130           End If
 
131           Response.Write "<P><INPUT id=enviar name=enviar  type=submit value=Enviar>         "
132           Response.Write "<INPUT id=limpar name=limpar type=reset  value=Reset>"
133           Response.Write "<BR>"
134           Response.Write "(*)->Campos de digitação  obrigatória.</P>"
 
135           'Neste ponto encerro a montagem do formulário
136           %>
137           </FORM>
138          </BODY>
139           </HTML>
Algumas  observações sobre a Listagem 4.30:
  • Linhas de código como a do seguinte exemplo:
111      Response.Write "Fone:<INPUT  id=fone maxLength=15 name=fone 
            value=" & Chr(34) &  Request.Form("fone") & Chr(34) & "></P>"

devem ser digitadas em uma única linha. A linha aparece dividida por questões de espaço para exibição, quando for digitar esta linha, digite como uma linha única.

  • O exemplo foi desenvolvido de maneira que o código fosse de fácil compreensão, além disso foram inseridas diversas linhas de comentário para facilitar o acompanhamento do exemplo proposto. Cabe lembrar que para criarmos uma linha de comentário devemos iniciar a mesma com o sinal de apóstrofe.
  • Observe o seguinte fragmento de código:
18        If (nome="")Then
19             mensagem_nome="Preencha o campo Nome:"
20             faltou_dado="Sim"
21             faltou_nome="Sim"
22        End If

Neste fragmento, estamos testando se o campo obrigatório “nome” foi preenchido. Caso o mesmo não tenha sido preenchido, definimos a variável faltou_dado como sendo igual a Sim. Também definimos a variável faltou_nome como sendo igual a Sim. Este procedimento é repetido para os demais campos obrigatórios. Desta forma, qualquer campo obrigatório que esteja faltando, irá definir a variável faltou_dado como sendo igual a Sim. Estas variáveis serão utilizadas mais adiante para informar quais campos obrigatórios estão faltando, e caso nenhum esteja faltando, para informar os valores digitados pelo usuário.

  • Observe o seguinte fragmento de código:
            If  faltou_dado<>"Sim" Then
46            Response.Write "<P>Você digitou os seguintes dados  !</P>"
47            Response.Write "<HR>"
 
48                     For Each Dado in  Request.Form %>
49                         <P>
50                         <% =Dado %> 
51                         =
52                          <%=Request.Form(Dado)%>
53                          </P> 
54                     <%Next
55         End If

Neste fragmento, verificamos se não faltou nenhum dado (faltou_dado<>”Sim”), em caso afirmativo, simplesmente exibimos os dados digitados pelo usuário. Veja que utilizamos a estrutura For Each...Next para percorrer todos os valores do formulário.

  • A partir da linha 69 começo a enviar mensagens, informando os campos de preenchimento obrigatório que não foram digitados. Considere o fragmento abaixo:
69         If faltou_nome="Sim" Then
70             Response.Write "O campo Nome deve ser preenchido. <br>"
71         End If

Neste caso, se o campo nome não foi digitado, envio a seguinte mensagem: “O campo Nome deve ser preenchido.”

  • A partir da linha 90:
90             If faltou_nome="Sim" Then

 verifico um a um os campos obrigatórios para ver qual ou quais estão faltando. Caso o campo esteja faltando, emito uma mensagem dizendo que o mesmo deve ser digitado, caso contrário crio o campo do formulário e defino o seu valor conforme o valor digitado pelo usuário. Observe o fragmento de código abaixo:

90             If faltou_nome="Sim" Then
91                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome              
                        size=50>(*)</P>"
92             Else 
93                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome
                     size=50 value=" & Chr(34)& Request.Form("nome") & Chr(34) & ">(*)</P>"      
94             End If

Primeiro (linha 90), testamos se o nome não foi digitado. Em caso afirmativo criamos o campo nome, em branco. Isto é feito pela linha 91:

91                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome              
                        size=50>(*)</P>"

esta linha envia o texto entre aspas para o Navegador do Cliente:

<P>Nome: <INPUT id=nome maxLength=50 name=nome  size=50>(*)</P>

este é justamente o código HTML que cria o campo nome e define os seus atributos. Veja que estamos utilizando Response.Write para recriar o formulário HTML original.

Caso o campo tenha sido preenchido, criamos o campo novamente com o cuidado de já preencher o campo com o valor digitado previamente pelo usuário. Isto é feito pelo código abaixo:

93                    Response.Write  "<P>Nome: <INPUT id=nome maxLength=50 name=nome
                      size=50 value=" & Chr(34)&  Request.Form("nome") & Chr(34) &  ">(*)</P>"      

Veja que esta instrução Response.Write é um pouco mais complexa. A instrução é formada de diversas partes, sendo que cada parte é concatenada pelo operador &. Na primeira parte é enviado o texto:

"<P>Nome:  <INPUT id=nome maxLength=50 name=nome size=50 value=

A segunda parte Chr(34) envia um sinal de aspas (“). Depois do sinal de aspas, usamos Request.Form(“nome”) para capturar o nome digitado pelo usuário. Vamos supor que o usuário tenha digitado José da Silva no campo nome. Neste ponto a nosso comando estaria assim:

"<P>Nome:  <INPUT id=nome maxLength=50 name=nome size=50 value=”José da Silva

Depois enviamos mais um sinal de aspas – Chr(34) e finalmente a parte final “>(*)</P>”. Com isso o código enviado por este comando é o seguinte:

"<P>Nome:  <INPUT id=nome maxLength=50 name=nome size=50 value=”José da  Silva”>(*)</P>

que é justamente o código HTML necessário para criar o campo Nome e definir o seu valor conforme o valor digitado pelo usuário. Um detalhe importante a salientar é a utilização do Chr(34) antes e depois do nome do usuário. Precisamos envolver o nome digitado entre aspas, pois caso contrário o nome seria truncado no primeiro espaço em branco, isto é, se o usuário digitasse José da Silva, sem as aspas seriar retornado apenas José. Tudo o que vier depois do primeiro espaço em branco será ignorado, por isso que utilizamos uma sinal de aspas antes e outro depois.

Veja que com a utilização de código ASP vamos recriando o formulário original. Além disso mesclamos diversos trechos de código ASP com código HTML. Veja que dentro do código ASP podemos utilizar todos os recursos da Linguagem VBScript, ou seja, as possibilidades são muitas.

Agora vamos a alguns exemplos de utilização da nossa aplicação. Na figura 4.24, temos um exemplo onde o formulário original foi aberto no Internet Explorer e o usuário preencheu todos os campos, isto é, não deixou de preencher nenhum campo obrigatório:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.24 O usuário preencheu todos os campos.

Ao clicar no botão Enviar os dados são enviados para a página exemplo-1.asp. Como todos os campos obrigatórios foram preenchidos, a página simplesmente exibe os valores digitados pelo usuário, conforme mostrado na Figura 4.25 

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.25 A página ASP informa os valores digitados.

Além de informar os valores digitados, a página retorna o formulário com os dados digitados pelo usuário. Caso o usuário queira alterar algum valor digitado é só fazer as alterações necessárias e clicar no botão Enviar. O formulário aparece logo após a informação dos valores digitados, mais no final da página, conforme indicado na Figura 4.26:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.26 O usuário pode alterar os valores digitados.

Vamos testar uma outra situação do nosso aplicativo. Vamos para a situação em que o usuário deixa de preencher um dos campos obrigatórios. No exemplo da Figura 4.27, o usuário deixa de preencher o campo Cidade.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.27 O usuário não preencheu um campo obrigatório.

Neste caso, ao clicar no botão Enviar, o usuário recebe uma página com a mensagem avisando que o campo Cidade é de preenchimento obrigatório, e com um formulário com os valores já digitados, com o campo Cidade em branco para que o campo seja preenchido, conforme indicado pela Figura 4.28:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.28 Formulário informando que o campo Cidade é obrigatório.

Exemplo 2: Formulário para cálculo de Imposto

Descrição do problema:  Vamos supor que tenhamos um formulário para pedido de mercadorias. O Usuário preenche o formulário com os produtos desejados e clica em um botão Calcular. Este botão chama uma página ASP que retorna o formulário de pedidos mais o valor do Frete e do Imposto, bem como o valor Total do Pedido. Vamos supor, por motivos de simplicidade, que somente são possíveis entregas para os estados do RS, PR, SC, SP e RJ. Sendo que o imposto e a taxa de frete é diferente para cada um destes estados.

Tabela 4.3 Valores de frete e imposto para cada estado.

Estado Frete (R$) Imposto (%)
RS 3,50 12
PR 4,50 11
SC 4,20 13
SP 5,50 17
RJ 5,50 14

O frete é único para o Pedido, independente do número de itens. O imposto será calculado sobre o total da Nota, sem contar o valor do frete, isto é, sobre o valor total das mercadorias. O nosso pedido permitirá a entrada de até 3 produtos. Também faremos uso de tabelas para facilitar o Layout da página.

Na Listagem 4.31 temos o formulário de pedidos.

Listagem 4.31 – Formulário de pedidos – exemplo-2.htm.

1          <HTML>
2          <HEAD>
3          <TITLE>Pedido de  mercadorias.</TITLE>
4          </HEAD>
5          <BODY>
 
6          <P><B>FORMULÁRIO DE  PEDIDOS:</B></P>
 
7          <P>Digite até três produtos a  serem entregues.</P>
8          <P>
 
9          <FORM  action="exemplo-2.asp" method=post>
10        <TABLE align=left bgColor=gray  border=1 cellPadding=1 cellSpacing=1 width="75%">
 
11            <TR>
12               <TD>Descrição</TD>
13               <TD>Pr. Unit.</TD>
14               <TD>Quan.</TD>
15               <TD>Subtotal</TD>
16           </TR>
 
17           <TR>
18              <TD><INPUT id=prod1 name=prod1></TD>
19              <TD><INPUT id=unit1 name=unit1 style="HEIGHT: 22px; WIDTH:  37px"></TD>
20               <TD><INPUT id=quant1 name=quant1 style="HEIGHT: 22px;  WIDTH: 37px"></TD>
21               <TD><INPUT id=valor1 name=valor1 style="HEIGHT: 22px;  WIDTH: 51px"></TD>
22           </TR>
 
23           <TR>
24               <TD><INPUT id=prod2 name=prod2></TD>
25               <TD><INPUT id=unit2 name=unit2 style="HEIGHT: 22px; WIDTH:  37px"></TD>
26               <TD><INPUT id=quant2 name=quant2 style="HEIGHT: 22px;  WIDTH: 37px"></TD>
27               <TD><INPUT id=valor2 name=valor2 style="HEIGHT: 22px;  WIDTH: 51px"></TD>
28           </TR>
 
29           <TR>
30             <TD><INPUT id=prod3 name=prod3></TD>
31             <TD><INPUT id=unit3 name=unit3 style="HEIGHT: 22px; WIDTH:  37px"></TD>
32             <TD><INPUT id=quant3 name=quant3 style="HEIGHT: 22px;  WIDTH: 37px"></TD>
33             <TD><INPUT id=valor3 name=valor3 style="HEIGHT: 22px;  WIDTH: 51px"></TD>
34           </TR>  
 
35          </TABLE>
 
36        <P><INPUT id=enviar name=enviar  type=submit value="Calcular Total"></P>
 
37        <SELECT id=estado name=estado> 
38                    <OPTION selected  value="">Estado -></OPTION>
39                    <OPTION  value=RS>RS</OPTION>
40                    <OPTION  value=SC>SC</OPTION>
41                    <OPTION value=PR>PR</OPTION>
42                    <OPTION  value=SP>SP</OPTION>
43                    <OPTION  value=RJ>RJ</OPTION>
44        </SELECT>
45        </P>
 
46        </FORM>
 
47        </BODY>
48        </HTML>

Na Figura 4.29, podemos ver este formulário no Internet Explorer.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.29 Formulário para preenchimento do pedido.

Agora vamos criar a página ASP – exemplo2-asp que faz o cálculo de cada item individualmente, depois calcula o total dos três itens e finalmente, aplica o imposto e o frete de acordo com o estado selecionado pelo Cliente. Após fazer os cálculos a página ASP retorna os valores fornecidos pelo usuário mais os cálculos realizados.

Na Listagem 4.32 temos o código para a página – exemplo-2.asp. Sempre lembrando que procuramos desenvolver o código pensando na facilidade do entendimento. Diversas soluções diferentes poderiam ser adotadas, com a obtenção do mesmo resultado.

Listagem 4.32 – A página ASP para cálculo do total do Pedido.

1          <%@ Language=VBScript %>
2          <HTML>
3          <HEAD>
4          </HEAD>
5          <BODY>
 
6          <%
 
7          Response.Write "<B>VALORES  TOTAIS PARA O SEU PEDIDO:</B><BR>"
 
8          'Crio uma variável para o subtotal de  cada produto.
 
9          If  Request.Form("unit1")<>"" Then
10            subtot1=CSng(Request.Form("unit1"))*Csng(Request.Form("quant1"))
11        Else
12            subtot1=0
13        End If   
 
14        If  Request.Form("unit2")<>"" Then
15            subtot2=CSng(Request.Form("unit2"))*Csng(Request.Form("quant2"))
16        Else
17            subtot2=0
18        End If
 
19        If  Request.Form("unit3")<>"" Then
20            subtot3=CSng(Request.Form("unit3"))*Csng(Request.Form("quant3"))
21        Else
22            subtot3=0
23        End If
 
24        total_inicial=subtot1+subtot2+subtot3
 
25        'Agora acrescento o imposto e o frete  com base no estado
 
26        Select Case  Request.Form("estado")
 
27            Case "RS"
28              total_imposto=total_inicial+total_inicial*0.12
29              total_geral=total_imposto+3.50
30             valor_frete=3.50
 
31            Case "SC"     
32              total_imposto=total_inicial+total_inicial*0.13
33              total_geral=total_imposto+4.20
34              valor_frete=4.20
 
35           Case "PR"     
36              total_imposto=total_inicial+total_inicial*0.11
37              total_geral=total_imposto+4.50
38              valor_frete=4.50
 
39            Case "SP"     
40              total_imposto=total_inicial+total_inicial*0.17
41              total_geral=total_imposto+5.50
42              valor_frete=5.50
 
43            Case "RJ"     
44              total_imposto=total_inicial+total_inicial*0.14
45              total_geral=total_imposto+5.50
46              valor_frete=5.50
 
47        End Select
 
48        'A partir de agora começo a devolver a  página
49        'com os valores digitados pelo usuário,  mais
50        'os valores calculados.
 
51        %>
 
52        <FORM  action="exemplo-2.asp" method=post id=form1 name=form1>
 
53        <TABLE align=left bgColor=gray  border=1 cellPadding=1 cellSpacing=1 width="75%">
 
54           <TR>
55             <TD>Descrição</TD>
56             <TD>Pr. Unit.</TD>
57             <TD>Quan.</TD>
58             <TD>Subtotal</TD>
59           </TR>
  
60           <TR>
61              <TD><INPUT id=prod1 name=prod1 value="  <%=Request.Form("prod1")%> "></TD>
62              <TD><INPUT id=unit1 name=unit1 value="  <%=Request.Form("unit1")%>"
                        style="HEIGHT:  22px; WIDTH: 37px"></TD>
63              <TD><INPUT id=quant1 name=quant1  value="<%=Request.Form("quant1")%>"
                        style="HEIGHT:  22px; WIDTH: 37px"></TD>
64             <TD align=right ><B><%=subtot1%></B></TD> 
65           </TR>
 
66           <TR>
67              <TD><INPUT id=prod2 name=prod2 value="  <%=Request.Form("prod2")%> "></TD>
68              <TD><INPUT id=unit2 name=unit2 value="  <%=Request.Form("unit2")%>"
                              style="HEIGHT: 22px; WIDTH:  37px"></TD>
69              <TD><INPUT id=quant2 name=quant2  value="<%=Request.Form("quant2")%>"
                              style="HEIGHT: 22px; WIDTH:  37px"></TD>
70             <TD align=right  ><B><%=subtot2%></B></TD>  
71           </TR>
 
 
 
72        <TR>
73              <TD><INPUT id=prod3 name=prod3 value="  <%=Request.Form("prod3")%> "></TD>
74              <TD><INPUT id=unit3 name=unit3 value="  <%=Request.Form("unit3")%>"
                              style="HEIGHT: 22px; WIDTH:  37px"></TD>
75              <TD><INPUT id=quant3 name=quant3  value="<%=Request.Form("quant3")%>"
                              style="HEIGHT: 22px; WIDTH:  37px"></TD>
76             <TD align=right ><B><%=subtot3%></B></TD>
77           </TR>
 
78        <%
 
79        'Agora monto uma linha para o total de  produtos.
80        'Uma linha para o valor do Frete.
81        'Uma linha para o valor do Imposto.
82        'Uma linha para o total geral.
 
83        %>
 
84        <TR>
85              <TD>TOTAL PROD.->></TD>
86              <TD></TD>
87             <TD></TD>
88             <TD align=right><%  =FormatNumber(subtot1+subtot2+subtot3,2)%></TD>
89        </TR>
 
90        <TR>
91              <TD>IMPOSTO  ->></TD>
92              <TD></TD>
93              <TD></TD>
94             <TD align=right><%  =FormatNumber(total_imposto-total_inicial,2)%></TD>
95        </TR>
 
96        <TR>
97              <TD>FRETE ->></TD>
98              <TD></TD>
99              <TD></TD>
100           <TD align=right><% =FormatNumber(valor_frete,2)%></TD>
101      </TR>
 
102      <TR>
103            <TD>TOTAL GERAL ->></TD>
104            <TD></TD>
105            <TD></TD>
106           <TD align=right><% =FormatNumber(total_geral,2)%></TD>
107      </TR>
 
108      </TABLE>
109      <A  HREF="exemplo-2.htm">Clique aqui para voltar a página de  Pedidos.</A>
110      </BODY>
111      </HTML>

Algumas observações sobre a Listagem 4.31:

B= Linhas de código como a do seguinte exemplo:

74              <TD><INPUT id=unit3 name=unit3 value="  <%=Request.Form("unit3")%>"
                style="HEIGHT: 22px; WIDTH: 37px"></TD>

devem ser digitadas em uma única linha. A linha aparece dividida por questões de espaço para exibição, quando for digitar esta linha, digite como uma linha única.

  • O exemplo foi desenvolvido de maneira que o código fosse de fácil compreensão, além disso foram inseridas diversas linhas de comentário para facilitar o acompanhamento do exemplo proposto. Cabe lembrar que para criarmos uma linha de comentário devemos iniciar a mesma com o sinal de apóstrofe.
  • Observe que utilizamos diversos elementos da linguagem VBScript, tais como:

A estrutura Select Case...End Select, para calcular o imposto e o frete, com base no Estado selecionado pelo cliente.

Utilizamos a função Csng para converter os valores de Preço Unitário e Quantidade em valores numéricos, de tal forma que fosse possível realizar cálculos com estes valores.

Utilizamos a função FormatNumber para formatar os valores calculados, de tal forma a exibir os valores com duas casas decimais, conforme mostrado no fragmento de código a seguir:

<%  =FormatNumber(valor_frette,2)%>

Agora vamos a alguns exemplos de utilização da nossa aplicação. Na figura 4.30, temos um exemplo onde o formulário de pedidos foi aberto no Internet Explorer e o usuário preencheu o pedido com três produtos. O estado selecionado foi SP.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.30 Preenchendo os dados do Pedido.

Ao clicar no botão “Calcular Total” será chamada a página exemplo-2.asp, a qual faz os cálculos e exibe os resultados, conforme indicado na Figura 4.31:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 4.31 Resultados calculados para o Pedido.

Com isso comprovamos que a nossa página para cálculo do Total do Pedido, está funcionando corretamente.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
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-2019 ®

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

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