helyoWAP |
|
TUTORIAL
WML |
Autor: Helio Fonseca Rosa
Esta página contém muitas figuras. Aguarde a carga se a conexão estiver lenta.
Programa phone15a.wml
Introdução
Vamos estudar com mais detalhes as possibilidades de formatação dos dados
entrados via "input".
No programa phone14.wml usamos o elemento
"input" em sua forma mais simples: <input
name="nome_usuario"/>.
Como não foi especificado nenhum atributo de formatação, o programa
assume, por omissão ("default") que os dados de entrada serão tanto
alfabéticos (maiúsculos ou minúsculos) como numéricos.
No programa phone15.wml fomos apresentados ao
atributo de formatação "format" na seguinte linha de código:
<input name="senha" format="4N"/>.
"4N" é o "valor" do atributo "format" para
este caso. Ou o tamanho e tipo do campo de entrada.
Os "valores" do atributo "format" são indicados por letras.
O algarismo que antecede a letra indica o tamanho máximo do campo de entrada.
Então "4N" significa um campo com até 4 caracteres numéricos.
Pode-se usar também a repetição de caracteres para especificar o campo. No
caso, "NNNN".
Um asterisco antes da letra indica um campo "ilimitado". Por exemplo,
"*N" é um campo numérico "sem limite" de tamanho.
Pode-se também definir o campo de entrada com tipos variados de caracteres. Ex:
"AANNNa", cujo significado seria: dois caracteres alfabéticos maiúsculos,
seguidos de dois numéricos, seguido de um alfabético minúsculo. Um entrada
possível seria: HR246k.
Eis os "valores" do
"format" ou tipos de campos:
A - Qualquer símbolo ou caractere alfabético maiúsculo (nenhum
numérico).
a - Qualquer símbolo ou caractere alfabético minúsculo
(nenhum numérico).
N - Qualquer caractere numérico (nenhum alfabético nem símbolos).
X - Qualquer símbolo, caractere numérico ou alfabético maiúsculo
x - Qualquer símbolo, caractere numérico ou alfabético minúsculo.
Dados de
entrada contidos numa máscara
É possível definir caracteres que farão parte obrigatoriamente do campo de
entrada sem digitá-los.
Usamos uma "barra invertida para definir tais caracteres "fixos",
que na realidade, constituem uma "máscara" para os dados.
Eis uma máscara para uma quantia em dinheiro:
<input name="exemplo" format="\R\$NNN\,NN"/>
Com esta "máscara", basta digitar, por exemplo, seqüencialmente
35455 para obtermos a tela abaixo:
Abaixo, está a listagem que deu origem às três primeiras telas (format="\R\$NNN\,NN"):
Programa phone15a.wml (código)
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="inicio">
<onevent type="onenterforward">
<refresh>
<setvar name="exemplo" value=""/>
</refresh>
</onevent>
<do type="accept" label="Conferir">
<go href="#confere"/>
</do>
<p align="center">
*** helyoWAP ***<br/>
Digite os dados:
<input name="exemplo" format="\R\$NNN\,NN"/>
</p>
</card>
<card id="confere">
<do type="accept" label="Inicio">
<go href="#inicio"/>
</do>
<p align="center">
*** helyoWAP ***<br/><br/>
Voce digitou:<br/>
$(exemplo)<br/>
</p>
</card>
</wml>
Para conferência,
o autor copiou/colou a listagem acima no "Bloco de Notas" do Windows,
o que cancela qualquer tipo de formatação anterior. Em seguida, alinhou todas
as linhas à esquerda (o processo de copiar/colar pode trazer algum código espúrio,
não visível). Após, gravou o programa como phone15a.wml.
Neste processo, o "Bloco de Notas" , automaticamente, mudou a extensão
para phone15a.wml.txt!!!
. Utilizando o Windows Explorer (recomendado nestes casos) o arquivo foi
renomeado para phone15a.wml.
Em seguida foi testado com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone15a.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.
Comentários:
Este é o programa básico de entrada de dados, com conferência, adaptado para
"limpar" os dados exibidos quando ocorre o retorno ao primeiro card
(no primeiro processamento, ocorre a criação e inicialização da variável
"exemplo" com valor igual a um "branco").
Esta "limpeza" é proporcionada pelo trecho de código:
<onevent type="onenterforward">
<refresh>
<setvar name="exemplo" value=""/>
</refresh>
</onevent>
A variável
"exemplo" é
"zerada" (ou melhor, preenchida com um "branco") quando
ocorre a exibição do primeiro card.
Como exercício, teste este programa mudando somente o formato do campo de
entrada, testando outras possibilidades não mostradas aqui.
Programa Phone15b.wml
Vejamos agora uma máscara para
uma data entre parênteses:
<input name="exemplo" format="\(NN\
/AAA\ /NNNN\)"/>
Eis o resultado pretendido:
Phone15b.wml (código):
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="inicio">
<onevent type="onenterforward">
<refresh>
<setvar name="exemplo" value=""/>
</refresh>
</onevent>
<do type="accept" label="Conferir">
<go href="#confere"/>
</do>
<p align="center">
*** helyoWAP ***<br/>
Digite os dados:
<input name="exemplo" format="\(NN\ /AAA\ /NNNN\)"/>
</p>
</card>
<card id="confere">
<do type="accept" label="Inicio">
<go href="#inicio"/>
</do>
<p align="center">
*** helyoWAP ***<br/><br/>
Voce digitou:<br/>
$(exemplo)<br/>
</p>
</card>
</wml>
Para conferência,
o autor copiou/colou a listagem acima no "Bloco de Notas" do Windows,
o que cancela qualquer tipo de formatação anterior. Em seguida, alinhou todas
as linhas à esquerda (o processo de copiar/colar pode trazer algum código espúrio,
não visível). Após, gravou o programa como phone15b.wml.
Neste processo, o "Bloco de Notas" , automaticamente, mudou a extensão
para phone15b.wml.txt!!!
. Utilizando o Windows Explorer (recomendado nestes casos) o arquivo foi
renomeado para phone15b.wml.
Em seguida foi testado com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone15b.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.