Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução à
05 Linguagem do Visual FoxPro
Parte 1
Aprender a lidar com uma linguagem de programação não é uma das tarefas mais fáceis,
mas também não é nenhum monstro como alguns chegam a dizer.
Basta entendermos bem alguns conceitos e daí já seremos capazes de construir muita
coisa.
Quando desenvolvemos aplicativos que são orientados a dados, ou seja, o foco principal é
voltado para os dados, geralmente tendemos colocá-los como o centro de tudo. Mas essa
não é bem a verdade. Na prática temos muito mais que isso.
─ quais são os dados que devem ser preenchidos em determinado formulário e qual é o
relatório que você precisa?
Não há nenhum problema em fazer perguntas como essa para o cliente. E na verdade elas
devem mesmo serem feitas. Mas há outras perguntas importantes para o entendimento da
resolução do problema, por exemplo:
─ Se isto for feito desta forma, realmente irá resolver o problema proposto?
─ Fazendo desta forma, não virá a colidir com a forma como esses procedimentos são
executados quando da não utilização do meu aplicativo?
─ Qual o impacto que a implementação deste ou daquele recurso terá sobre a vida
cotidiana daqueles que forem trabalhar direta ou indiretamente com o aplicativo?
A U L A
05
─ Este aplicativo resolve o problema proposto ou simplesmente irá criar mais um problema
para os usuários?
Por exemplo, um aplicativo de automação comercial como o próprio nome diz, deveria
automatizar o processo de compra, venda, estoques, crediário para os clientes, e não
burocratizar este processo.
Há cerca de uma semana entrei numa farmácia de um bairro de classe média alta aqui de
minha cidade. Eu só precisava comprar alguns medicamentos comuns. Talvez até se eu
tivesse ido ali na padaria da esquina eu os encontraria e os compraria em menos de um
minuto dentro do estabelecimento. Chegando à farmácia, tinha um sujeito vestido de
branco para me recepcionar, outro para pegar a receita que estava em minhas mãos e
sumir com ela pra algum terminal de computador e daí em diante, nem sei dizer em
quantos locais eu fui (visto que era um estabelecimento grande) até chegar a efetivar o
pagamento no caixa e depois ir até a área de pacotes receber o medicamento. Sem
brincadeira, levei uns 20 minutos nisso tudo. Se tivesse à beira da morte, vocês não
estariam lendo esse texto aqui hoje.
Sabe o que é interessante nisso tudo? Tinham um sistema muito bonito. Telas com
campos bem posicionados, foto do produto, código de barras e tudo o mais. Mas o
processo em si era demasiadamente desorganizado.
A meu ver, eles têm um grande problema. Talvez o problema não seja o sistema. Mas
talvez...
Bem, é que vamos começar a entender algumas coisas que dizem respeito a dados. Ou
como os dados existem na linguagem do Visual FoxPro.
Primeiramente vamos começar a entender o que são os dados e quais são os seus tipos.
O que é um dado?
Para que possamos chegar ao estado de informação útil é necessário agregar vários
tipos de dados, por exemplo, dados do tipo texto como nomes e endereços, dados do
tipo numéricos como idade e renda per capta, dados do tipo data como data de
nascimento, data de casamento e coisas afins.
05
Em alguns casos precisamos de algumas especializações de dados além dessas, por
isso, as linguagens de programação de hoje em dia são capazes de trabalhar com
diversos tipos de dados.
Os dados que são utilizados temporariamente ou que não precisam ser armazenados
geralmente são atribuídos a variáveis de memória e a matrizes, que ao encerrar o
aplicativo ou o escopo de sua execução, são eliminados.
Todos os dados do Visual FoxPro possuem um tipo — uma descrição dos valores e
intervalo permitidos e o tamanho desses valores. Uma vez especificado o tipo de
dados, o Visual FoxPro pode armazenar e manipular os dados eficientemente.
05
ano, dia e hora.
{^0001-01-01}, January
1st, 1 A.D até {^9999-12-
31}, December 31st,
9999 A.D., adicionando
00:00:00 a.m. até
11:59:59 p.m..
Caractere (Binário) Quaisquer dados de 1 byte por caractere até Quaisquer caracteres
caracteres que você 254
queira manter sem
alteração através das
05
páginas de códigos
Operadores
• Operadores de caracteres
• Operadores lógicos
• Operadores relacionais
• Operadores numéricos
05
Operadores de caracteres
05
dNewDate = dDate1 - nDays
Operadores Lógicos
Operadores Relacionais
Operadores Numéricos
05
A tabela seguinte traz uma lista dos operadores numéricos em ordem de
precedência.
**, ^ Exponenciação ? 3 ** 2
?3^2
*, / Multiplicação e divisão ? 2 * 7 ? 14 / 7
% Módulo (resto) ? 15 % 4
+, - Adição e subtração ? 4 + 15
Declaração de Variáveis
Quando você armazena um valor em uma variável e esta variável não existe, o
Visual FoxPro irá declará-la implicitamente. As linguagens que exigem a declaração
explícita de variáveis irão retornar um erro.
No Visual FoxPro, embora você possa atribuir o tipo de dados para uma variável, o
tipo não será utilizado de forma intrínseca, ou seja, você poderá simplesmente
armazenar outro tipo de valor sem que um erro seja gerado, como no caso de
linguagens como Pascal, C, C#, etc. O recomendável então é que você nomeie a
variável com um prefixo que sugira o tipo de dados para a qual será utilizada.
Ao declarar uma variável, devemos fazê-lo definindo o seu escopo, de acordo com
a pretensão de utilização da mesma.
05
PUBLIC – O escopo PUBLIC é utilizado para definir variáveis e
matrizes com visibilidade global, ou seja, poderão ser referenciadas
em todo o aplicativo.
Exemplo:
DO down
05
RELEASE val1,val2 && Variáveis públicas devem ser liberadas
explicitamente
DISPLAY MEMORY LIKE val?
PROCEDURE down
PRIVATE val1
val1 = 50
val2 = 100
? "Valor das variáveis dentro da procedure
Down...................", val1, val2
RETURN
05
Após a execução da procedure Down, novamente listamos os valores das
variáveis e pra nossa surpresa, os valores foram 10 e 100, respectivamente,
para as variáveis val1 e val2.
Mas de onde vem o 10? Como as variáveis tem um escopo global, o valor é
aquele definido lá no início do programa public.prg.
Mas porque o valor de val2 foi alterado para 100 e o de val1 permaneceu o
mesmo do início? Simples. Porque dentro da procedure Down a variável val1
foi declarada como PRIVATE. Isso significa que sua existência seria restrita à
procedure e ao que viesse dentro dela. Fora dela sua declaração e seu valor
não existiria.
Note ainda que mesmo que val1 fosse novamente declarada dentro de da
procedure Down, seu valor em nada interferiu na existência de val1 com
escopo público. A este fenômeno, chamamos de encapsulação. É possível
ter variáveis de mesmo nome com escopo e valores diferentes dentro de
procedures, funções, métodos, etc.
Variáveis do Sistema
São variáveis que o Visual FoxPro cria e atribui-lhes valor automaticamente, desde
o momento da sua inicialização e esses valores podem ou não irem sendo
modificados ao longo da execução de determinadas rotinas ou programas.