Sie sind auf Seite 1von 16

Treinamento de Visual FoxPro

Dois Viznhos, junho de 2007

Sumrio

1 OPERADORES...............................................................................................................................................3
2 OPERADORES DE CARACTERES............................................................................................................3
3 OPERADORES DE DATA E DATAHORA.................................................................................................3
4 OPERADORES LGICOS............................................................................................................................4
5 OPERADORES RELACIONAIS..................................................................................................................4
6 OPERADORES NUMRICOS......................................................................................................................5
7 DECLARAO DE VARIVEIS.................................................................................................................5
8 MATRIZES......................................................................................................................................................5
SINTAXE...........................................................................................................................................................5
ARGUMENTOS................................................................................................................................................5
MATRIZES, EXEMPLO DO COMANDO....................................................................................................6
9 CURSORES.....................................................................................................................................................6
SINTAXE...........................................................................................................................................................6
ARGUMENTOS................................................................................................................................................6
CURSOR, EXEMPLO DO COMANDO.........................................................................................................6
10 FUNES E PROCEDIMENTOS..............................................................................................................6
SINTAXE...........................................................................................................................................................7
ARGUMENTOS................................................................................................................................................7
FUNO E PROCEDIMENTO, EXEMPLO DO COMANDO..................................................................7
11 O COMANDO DO WHILE ... ENDDO......................................................................................................9
SINTAXE...........................................................................................................................................................9
ARGUMENTOS................................................................................................................................................9
DO WHILE...ENDDO,EXEMPLO DO COMANDO....................................................................................9
12 O COMANDO FOR... ENDFOR...............................................................................................................10
SINTAXE.........................................................................................................................................................10

13 O COMANDO DO CASE... ENDCASE....................................................................................................11


14 O COMANDO F_SELECT........................................................................................................................13
SINTAXE.........................................................................................................................................................13
15 O COMANDO F_UPDATE........................................................................................................................14
SINTAXE.........................................................................................................................................................14
16 O COMANDO F_INSERT.........................................................................................................................14
SINTAXE.........................................................................................................................................................14
17 O COMANDO F_DELETE........................................................................................................................15
SINTAXE.........................................................................................................................................................15

Operadores

Os operadores permitem que voc manipule dados do mesmo tipo. Os operadores do Visual FoxPro so
agrupados pelas seguintes funes e tipos de dados:
Operadores de caracteres
Operadores de data e DataHora
Operadores lgicos
Operadores relacionais
Operadores numricos

Operadores de caracteres

Voc pode associar e comparar os dados de caracteres utilizando os operadores de caracteres +, - e $.


A tabela a seguir lista os operadores de expresso na ordem de prioridade.
Operador
+,-

Ao
Concatenao. Junta duas
seqncias, uma seqncia e
um campo ou uma seqncia e
uma varivel.

Cdigo exemplo
? 'bom ' + 'dia'

Comparao. Procura uma


expresso de caracteres dentro
de outra.

? A $ ADAO

O operador $ sensvel caixa alta e caixa baixa dos caracteres significando que far diferena entre
maisculas e minsculas. Uma boa prtica utilizar as funes de converso UPPER() e LOWER para
tornar as sentenas totalmente maisculas ou minsculas respectivamente antes de compar-las.

Operadores de Data e DataHora

No Visual FoxPro podemos adicionar ou subtrair nmeros a uma data, ou, datas podem ser somadas ou
subtradas entre si. Matematicamente falando, para o Visual FoxPro uma data um nmero de dias.
Assim sendo, podemos adicionar ou subtrair qualquer nmero de dias a uma data. Os operadores abaixo
agem sobre as datas e horas.

Operador

Ao

Cdigo exemplo

Adio .

?CTOD('01/01/2006') + 1

Subtrao

?CTOD('01/01/2006') - 1

Operadores Lgicos

A tabela a seguir lista os operadores lgicos em ordem de prioridade.

Operador

Ao

Cdigo exemplo

()

Grupos de expresso

?.t. AND (.t. AND .t.)

NOT

Negativo lgico

? NOT 2 = 1

AND

AND lgico

?.t. AND .f.

OR

OR inclusivo lgico

?.t. OR .f.

Operadores Relacionais

A tabela a seguir lista os operadores relacionais.


Operador

Ao

Cdigo exemplo

<

Menor que

? 23 < 54

>

Maior que

?1>2

Igual a

?3=3

<>

No igual a

? .T. <> .F.

<=

Menor ou igual a

? 5 <= 9

>=

Maior ou igual a

? 32 >= 28

==

Comparao de seqncia de
caracteres

? FOXPRO == FOXPR

Operadores Numricos

A tabela seguinte traz uma lista dos operadores numricos em ordem de precedncia.

Operador

Ao

Cdigo exemplo

()

Subexpresses de grupo

? (4-3) * (12/6)

*, /

Multiplicao e diviso

Mdulo (resto)

?2*7
? 14 / 7
? 15 % 4

+, -

Adio e subtrao

? 4 + 15
? 15- 4

Declarao de Variveis

Declarar variveis no Visual FoxPro algo muito simples. Diferentemente de outras linguagens, pode-se
at mesmo atribuir valores a variveis sem mesmo t-la declarado explicitamente. Quando voc
armazena um valor em uma varivel e esta varivel no existe, o Visual FoxPro ir declar-la
implicitamente.
Exemplo:
nNumero = 15
? nNumero

Matrizes

Uma matriz uma coleo de variveis, acessveis com um nico nome e armazenados contiguamente
na memria. A individualizao de cada varivel de chamada de vetor e feita atravs do uso de ndices.
Sintaxe
DECLARE mMatriz[nNumeroVetores]

Argumentos

mMatriz Nome dado a matriz.


nNumeroVetores Nmero de vetores que a matriz ter.
Matrizes, exemplo do comando
DECLARE mPessoas[3]
mPessoas[1] = Joo
mPessoas[2] = Jos
mPessoas[3] = Joaquim
? mPessoas[2]

Cursores

Cursores so um conjunto, de informaes disposta em um formato de tabela.


Sintaxe
CREATE CURSOR CursorNome (Campo1 Tipo1 [,Campo2 Tipo2])
Argumentos
CursorNome Especifica qual o nome dado ao cursor.
Campo1 Especifica qual o nome dado ao campo do cursor.
Tipo1 Especifica qual o tipo de dados ter o Campo1.Caso existir a necessidade de mais campos
todos devem estar separados por virgulas.
Cursor, exemplo do comando
CREATE CURSOR CursorFuncionarios (Funcionario I, Descricao C(30), Salario N(15,2))
INSERT INTO CursorFuncionarios (Funcionario, Descricao, Salario) VALUES (1, Jos, 200)
SELECT CursorFuncionarios
GO TOP
? CursorFuncionarios.Funcionario
? CursorFuncionarios.Descricao
? CursorFuncionarios.Salario

10

Funes e Procedimentos
6

Os Procedimentos ou Procedures permitem-nos criar rotinas especficas para isolar determinadas


operaes de forma que possamos reutiliz-las sem a necessidade de reescrever novamente todo o
cdigo. Podem ser operaes das mais diversas, clculos, ou qualquer outro tipo de rotina
freqentemente usada.
Sintaxe
FUNCTION F_NomeProcedimento
[LPARAMETERS parametro1,parametro2,...]
Comandos
[RETURN [eExpresso ]]

Argumentos
NomeProcedimento especifica o nome do procedimento a ser criado.
[parametro1,parametro2,...] especifica os parmetros que devem ser passados para o procedimento.
Podem ser especificados at 26 parmetros para um procedimento, separados por vrgula.
Comandos so os comandos que comporo o procedimento.
[RETURN [eExpresso]] Pode ser usado para retornar um valor para o programa que a chamou.

Funo e Procedimento, exemplo do comando


cDiaSemana = F_DiaSemana({^2007-06-15})
cDiaSemana = F_DiaSemana(DATE())
********************
FUNCTION F_DiaSemana
********************
PARAMETERS dData
PRIVATE dData, nRetorno, cDiaSemana

STORE 0 TO nRetorno
STORE "" TO cDiaSemana

nRetorno = DOW(dData)

DO CASE
CASE nRetorno = 1
cDiaSemana = "Domingo"

CASE nRetorno = 2
cDiaSemana = "Segunda"

CASE nRetorno = 3
cDiaSemana = "Tera-Feira"

CASE nRetorno = 4
cDiaSemana = "Quarta-Feira"

CASE nRetorno = 5
cDiaSemana = "Quinta-Feira"

CASE nRetorno = 6
cDiaSemana = "Sexta-Feira"

CASE nRetorno = 7
cDiaSemana = "Sbado"

ENDCASE

RETURN(cDiaSemana)
8

11

O Comando do While ... Enddo

Executa um conjunto de comandos em um loop condicional.


Sintaxe
DO WHILE lExpresso
Comandos
[LOOP]
[EXIT]
ENDDO
Argumentos
lExpresso Especifica uma expresso lgica cujo valor determina se os comandos entre DO WHILE e
ENDDO so executados. Se lExpresso for verdadeiro (.T.), o conjunto de comandos ser executado.
Comandos Especifica o conjunto de comandos do Visual FoxPro a ser executado se lExpresso for
verdadeiro (.T.).
LOOP Retorna o controle do programa diretamente para DO WHILE. LOOP pode ser colocado em
qualquer lugar entre DO WHILE e ENDDO.
EXIT Transfere o controle do programa de dentro do loop DO WHILE para o primeiro comando aps
ENDDO. EXIT pode ser colocado em qualquer lugar entre DO WHILE e ENDDO.
AU L A
Comentrios
Os comandos entre DO WHILE e ENDDO so executados enquanto a expresso lgica lExpresso
permanecer como verdadeira (.T.). Cada instruo DO WHILE deve ter uma instruo ENDDO
correspondente. Os comentrios podem ser colocados depois de DO WHILE e ENDDO na mesma linha.
Os comentrios sero ignorados durante a compilao e execuo do programa.
Do while...Enddo,exemplo do Comando
nContador = 0
DO WHILE nContador < 10
nContador = nContador + 1
ENDDO

12

O Comando For... Endfor

Executa um conjunto de comandos, um determinado nmero de vezes.


Sintaxe
FOR Var = nValorInicial TO nValorFinal [STEP nIncremento]
Comandos
[EXIT]
[LOOP]
ENDFOR | NEXT
Argumentos
Var Especifica uma varivel ou um elemento de matriz que atue como contador. No necessrio que
a varivel ou o elemento de matriz j exista antes da execuo de FOR ... ENDFOR.
nValorInicial TO nValorFinal nValorInicial o valor inicial do contador e nValorFinal o valor final do
contador.
STEP nIncremento nIncremento o valor incrementado ou decrementado do contador. Caso
nIncremento seja negativo, o contador ser decrementado. Se voc omitir STEP, o contador ser
incrementado de 1.A U L A
Comandos Especifica os comando do Visual FoxPro a serem executados. Comandos pode incluir
qualquer nmero de comandos.
EXIT Transfere o controle do loop FOR ... ENDFOR para o comando logo depois de ENDFOR. EXIT
pode ser colocado em qualquer parte entre FOR e ENDFOR.
LOOP Retorna o controle diretamente para a clusula FOR sem executar as instrues entre LOOP e
ENDFOR. O contador incrementado ou decrementado como se ENDFOR tivesse sido atingido. LOOP
pode ser colocado em qualquer parte entre FOR e ENDFOR.
FOR ... ENDFOR, exemplos do comando
FOR nContador = 1 TO 10
? nContador
ENDFOR
O Comando IF ... ENDIF
Executa condicionalmente um conjunto de comandos baseados no valor de uma expresso lgica.
Sintaxe
10

IF lExpresso [THEN]
Comandos
[ELSE
Comandos]

ENDIF

Argumentos
lExpresso Especifica a expresso lgica avaliada. Caso lExpresso resulte em verdadeiro (.T.), todos
os comandos depois de IF ou THEN e antes de ELSE ou ENDIF (aquele que ocorrer primeiro) sero
executados.
Se lExpresso for falso (.F.) e ELSE for includo, todos os comandos depois de ELSE e antes de ENDIF
sero executados.
Se lExpresso for falso (.F.) e ELSE no for includo, todos os comandos entre IF e ENDIF sero
ignorados. Neste caso, a execuo do programa continuar com o primeiro comando depois de ENDIF.
Comentrios
possvel aninhar um bloco IF... ENDIF dentro de outro bloco IF... ENDIF. Os comentrios precedidos
por && podem ser colocados na mesma linha depois de IF, THEN, ELSE e ENDIF. Esses comentrios
so ignorados durante a compilao e a execuo do programa.
Exemplo de uso do comando IF...ENDIF
NSalario
IF nSalario <= 100
NSalario = nSalario + 30
ELSE
NSalario = nSalario + 20
ENDIF

13

O Comando do Case... Endcase

Executa o primeiro conjunto de comandos cuja expresso condicional resulta em verdadeiro (.T.).
Sintaxe
11

DO CASE
CASE lExpresso1
Comandos
[CASE lExpresso2
Comandos
...
CASE lExpressoN
Comandos]
[OTHERWISE
Comandos]
ENDCASE
Argumentos
CASE lExpresso1 Comandos ... Quando a primeira expresso CASE verdadeira (.T.) localizada, o
conjunto de comandos que a acompanha executado. A execuo do conjunto de comandos continua
at que a prxima clusula CASE ou ENDCASE seja localizada. A execuo retomada, ento, pelo
primeiro comando seguinte a ENDCASE. Se uma expresso CASE for falsa (.F.), o conjunto de
comandos seguintes a ela at a prxima clusula CASE ser ignorado. Apenas um conjunto de
comandos executado. o primeiro conjunto de comandos cuja expresso CASE resulta em verdadeiro
(.T.). Qualquer expresso CASE verdadeira (.T.) posterior ser ignorada.
OTHERWISE Comandos Se todas as expresses CASE resultarem em falso (.F.), OTHERWISE
determinar se um conjunto de comandos adicionais ser executado.
Se voc incluir OTHERWISE, os comandos que acompanham OTHERWISE sero executados e a
execuo saltar para o primeiro comando que acompanha ENDCASE.
Se voc omitir OTHERWISE, a execuo saltar para o primeiro comando que acompanha ENDCASE.

Comentrios
DO CASE utilizado para executar um conjunto de comandos do Visual FoxPro, baseado no valor de
uma expresso lgica. Quando DO CASE executado, as expresses lgicas sucessivas so avaliadas;
os valores das expresses determinam o conjunto de comandos que ser executado.
Podem ser colocados comentrios na mesma linha, aps DO CASE e ENDCASE. Os comentrios so
ignorados durante a compilao e execuo do programa.
Exemplo do comando DO CASE ... ENDCASE
nSalario = 1000
12

cSituacao =

DO CASE
CASE nSalario <= 100
cSituacao = Baixa
CASE nSalario > 100 AND nSalario <= 500
cSituacao = Boa

OTHERWISE
cSituacao = Otima

ENDCASE

14

O Comando F_SELECT

O camdo F_SELECT utilizado para pesquisar registros de uma tabela do banco de dados.
Sintaxe
F_SELECT(cTabela, cCondicao, cCursor, cOrdem, cCampos)

Argumentos
cTabela Especifica o nome da tabela a ser consultada.
cCondicao Condio utilizada na consulta. Ou seja um filtro de quais os registros desejados.
cCursor Nome para o cursor que ser criado automaticamente com o resultado da consulta.A U L A
cOrdem Ordem imposta os registros retornados da consulta. Todas as condies da ordem devem
estar separadas por virgula.
cCampos Determina quais os campos da tabela tero seus valores apresentados pelo consulta. Todos
os campos devem estar separados por virgula.
13

F_SELECT, exemplos do comando


F_SELECT(PCCDCLI0, DESCRI LIKE JOAO%, CadastroClientes, DESCRI, CODIGO, DESCRI)

15

O Comando F_UPDATE

O camdo F_UPDATE utilizado para atualizar registros de uma tabela no banco de dados.
Sintaxe
F_UPDATE(cTabela, cSet, cWhere)

Argumentos
cTabela Especifica o nome da tabela a ser atualizada.
cSet Determina quais os campos da tabela tero seus valores alterados. Todos os campos e seus
respectivos valores devem estar separados por virgula.
cWhere Condio utilizada na atualizao. Ou seja quais os registros sero atualizados.

F_UPDATE, exemplos do comando


F_SELECT(PCCDCLI0, OBSERVACAO = PROGRAMADOR, CODIGO = 0000019)

16

O Comando F_INSERT

O camdo F_INSERT utilizado para inserir registros em uma tabela no banco de dados.
Sintaxe
F_INSERT(cTabela, cCampos, cValores)

Argumentos
cTabela Especifica o nome da tabela ter registros inseridos.
14

cCampos Determina quais os campos da tabela sero preenchidos . Todos os campos devem estar
separados por virgula.
cValores Valores para o preenchimento dos campos especificados em cCampos. Todos os campos
devem estar separados por virgula e seguir rigorosamente a ordem que foram dispostos em cCampos.

F_INSERT, exemplos do comando


F_INSERT(PCCDCLI0, CODIGO, DESCRI, OBSERVACAO, 9000019, PROGRAMADOR, TESTE
PROGRAMADOR)

17

O Comando F_DELETE

O camdo F_DELTE utilizado para eliminar registros de uma tabela no banco de dados.
Sintaxe
F_DELETE(cTabela, cCondicao)

Argumentos
cTabela Especifica o nome da tabela ter registros eliminados.
cCondicao Condio utilizada para eliminar. Ou seja um filtro de quais os registros sero eliminados.

F_DELETE, exemplos do comando


F_DELETE(PCCDCLI0, CODIGO = 9000019)

15

Das könnte Ihnen auch gefallen