Escolar Documentos
Profissional Documentos
Cultura Documentos
2 - Comandos e Funo
}es
@... BOX
Propysito: Construir um box (caixa) na tela.
Sintaxe:
@ Lin inicial!
Col inicial!
Lin final!
Col final!
Cadeia!
Exemplo:
LOCAL C,L
/*
MODULO :
m.PRG
FUNCO:
ACESSAR TODOS OS PROGRAMAS
*/
SAVE SCREN TO TECLADOS
CLEAR
SET DATE BRIT
SET CONFIRM ON
SET DETELE ON
DO WHILE .T.
CLEAR
SET WRAP ON
SET MESSAGE TO 23 CENTER
SET COLOR TO B/W
REBOX=CHR (201) +CHR (205) +CHR (187) +CHR (186) +;
CHR (188) +CHR (205) +CHR (200) +CHR (186)
PRIVATE=EMPRESA:= FACULDADES REUNIDAS LTDA
L = 08
C = 22
CLEAR
@ 00,00,03,39 BOX RETBOX
@ 00,40,03,79 BOX RETBOX
@ 04,00,21,79 BOX RETBOX+CHR (177)
@ 22,00,24,79 BOX RETBOX
@ 01,02 SAY EMPRESA
11
@ . . . CLEAR
Propysito: Apagar (limpar) apenas uma i
rea espect
fica da tela.
Sintaxe:
@
Lin inicial !
Col inicial !
CLEAR
>
72Lin final!
Col final!@
Exemplo:
SET COLOR TO B+/W
/ / muda a cor
CLS
// equivalente a CLEAR, ou seja limpa toda a tela
SET COLOR TO W+/N
/ / estabelece um novo padrmo de cor
@ 10,10 CLEAR TO 20,20
/ / limpa uma regimo da tela
@ 10,10 TO 20,20 DOUBLE
/ / desenha uma moldura (quadro)
@. . . SAY. . . GET
Propysito: Criar e executar um novo objeto GET (entrada de dados),
olocando-o em exibio
m
o na tela.
Sintaxe:
@ linha!
coluna!
>
SAY exp!
>
mascara SAY!@
@
>
Whencondiomo!@
[RANGE inicial!
final!@
>
VALID
condiomo!
@
Exemplo:
21
@. . . PROMPT
Propysito: Montar um menu de opo
}es selecioni
veis na tela.
31
Sintaxe:
mensagem!]
@
linha !,
coluna !
opo
m
o !
[ MESSAGE
Exemplo:
Local OPC :
SET WRAP ON
@. . . TO
Propysito: Desenha um quadro (moldura) a partir de coordenadas
41
spect
ficas da tela.
Sintaxe:
@ linhaI!
, colunaI !
TO linhaF!, colunaF!
[DOUBLE]
Exemplo:
SET COLOR TO B+/N
@ 10,10 CLEAR TO 20,20
@ 10,10 TO 20,20 DOUBLE
ACCEPT
Propysito: Cria uma entrada de dados via teclado e armazenar o
onte~do digitado em uma varii
vel (tipo caracteres).
Sintaxe:
ACCEPT [mensagem de sat
da!] TO var!.
Exemplo:
Local Vnome
CLEAR
// limpa a tela
ACCEPT Digite o nome....: TO VNOME
? NOME QUE VOC DIGITOU FOI....:, VNOME
APPEND BLANK
Propysito: Criar (inserir) um registro em branco no banco de dados
berto na i
rea corrente de trabalho.
Sintaxe:
APPEND BLANK
Exemplo:
Local Codvar, OP
/*
NOME DO PROGRAMA: CADMULT1.PRG
AUTOR : GORKI STARLIN
FUNdAO: ESTE MODULO ANEXA DADOS NO ARQUIVO PAGAMENTO
*/
USE FOLHA INDEX CODX,NOMEX
DO WHILE .T.
// lay out
CLEAR
SET COLOR TO W+/N
SET COLOR TO
@ 01,01 TO 24,79 DOUBLE
@ 02,02 TO 04,78
@ 03,03 SAY SIRIOS INFORMATICA
@ 03,60 SAY ATE( )
@ 03,70 SAY TIME( )
// criar variiveis
51
CODVAR
= 0
SETORVAR
= 0
SALARIOVAR = 0
NOMEVAR
= SPACE(35)
CARGOVAR
= SPACE(15)
ATIVOVAR
= (.T.)
DATAVAR
= CTOD ( / / )
// entrada de dados
@ 06,10 SAY ** CADASTRAMENTO DE FUNCIONARIOS **
@ 08,10 SAY CODIGO...........: GET CODVAR PICTURE 9999
READ
IF CODVAR = 0
// verifica se o usuirio nao digitou o codigo
OP: S // cria a variavel
OP
@ 21,15 SAY SAI DESTE MODULO.(S/N)..: GET OP PICT A
READ
IF OP = S
// verifica a resposta do usuirio
RETURN
// retorne
ENDIF
// sobe a execuomo para linha do DO WHILE
// fim do se
// pesquisa no indice o conteudo da variavel
// CODVAR
IF EOF( )
// se nmo existe
APPEND BLANK
// tenta criar um registro em branco
// entra com o restante dos dados do funcionario
@ 10,10 SAY NOME FUNCIONARIO..: GET NOMEVAR PICTURE @!
@ 12,10 SAY SETOR TRABALHO....: GET SETORVAR PICT @9
@ 14,10 SAY CARGO FUNCIONAL...: GET CARGOVAR PICT @!
@ 16,10 SAY SALARIO...........: GET SALARIOVAR PICT 9999999.99
@ 18,10 SAY FUNCIONARIO ATIVO.: GET ATIVOVAR
@ 20,10 SAY DATA ADMISSAO.....: GET DATAVAR
READ
// grava os dados no registro em branco
REPLACE COD WITH CODVAR
REPLACE NOME WITH NOMEVAR
REPLACE SETOR WITH SETORVAR
REPLACE CARGO WITH CARGOVAR
REPLACE ATIVO WITH ATIVOVAR
REPLACE DTADM WITH DATAVAR
REPLACE SALARIO WITH SALARIOVAR
@ 21,20 SAY ** CADASTRO **
WAIT
// aguarda QQ tecla
COMMIT
// atualiza fisicamente o registro
ELSE
// se nmo
@ 21,20 SAY ** REGISTRO JA CADASTRADO **
WAIT
// aguarda QQ tecla
ENDIF
ENDDO
LOOP
ENDIF
SEEK CODVAR
APPEND FROM
Propysito: Anexa registro de um arquivo especificado para o
61
// copia apenas os
AVERAGE
Propysito: Calcular a mp
dia aritmp
tica de campos ou express}es de
rquivos de dados.
Sintaxe:
AVERAGE campos!TO var's![escopo!]
[FORcondio
m
o!] [WHILE condio
m
o!]
Exemplo:
USE FOLHA
// abre o arquivo de dados
AVERAGE SALARIO, COMISSAO TO vcom
// calcula e armazena nas
/ variiveis
? media salarial....:+str(vsal)
? media das comiss}es...:+str(vcom = A // calcula a media
// salarial, armazenando o
// resultado na variivel VSAL,
// porpm somente dos funcionarios
// que trabalhem no setor A.
BEGIN SEQUENCE
Propysito:
Sintaxe:
71
Exemplo:
Local Contador, Intervalo
CONTADOR :
INTERVALO :
DO WHILE CONTADOR < 50
BEGIN SEQUENCE
CONTADOR++
IF CONTADOR > INTERVALO
BREAK CONTADOR
ENDIF
RECOUVER USING CONTADOR
? BLOCO DEFINIDO, CONTADOR =+STR (CONTADOR)
INTERVALO+ = 5
END SEQUENCE
? SAI FORA DO BEGIN SEQUENCE
ENDDO
? LOOP TERMINADO
CALL
Propysito:
rogramao
m
o.
Sintaxe:
CANCEL
Propysito:
xecutado.
Sintaxe:
Interromper a execuo
m
o do programa que esti sendo
CANCEL
CLEAR ALL
Propysito: Fecha todos os arquivos abertos e libera da memyria
odas as varii
veis (P~blicas e Privadas).
Sintaxe:
CLEAR ALL
CLEAR GETS
Propysito:
Sintaxe:
81
CLEAR MEMORY
Propysito:
emyria.
Sintaxe:
CLEAR SCREEN
Propysito: Limpa a tela sem liberar os Get's pendentes.
Sintaxe:
CLEAR SCREEN
CLEAR TYPEAHEAD
Propysito:
o teclado.
Sintaxe:
Exemplo:
/* Neste exemplo antes de folhear o banco de dados com a funomo
BROWSE( ) p garantido que nmo exixtiri nenhuma pendencia de teclas
do buffer do teclado, pois o mesmo seri limpo atravps de CLEAR
TYPEAHEAD.*/
BROWSE (5, 5, 23, 75)
// folheia os registros do B.D.
CLOSE
Propysito: Fechar arquivos, de qualquer tipo, que se encontrem
evidamente abertos.
Sintaxe:
CLOSE i
rea!tipo!
Exemplo:
CLOSE ALL
COMMIT
91
Propysito:
rquivos abertos.
Sintaxe:
Realiza a gravao
m
o em discos de todos os Buffers dos
COMMIT
Exemplo:
/*
NOME DO PROGRAMA: CADMONO1.PRG
AUTOR : GORKI STARLIN
FUNdO: ESTE MODULO ANEXA DADOS NO ARQUIVO PAGAMENTO
*/
SET DATE TO BRIT
// p}e as datas no formato DD/MM/AA
CLEAR
// abre o arquivo e o incide
USE FOLHA INDEX CODX,NOMEX
// abre o arquivo de dados e o de indice
DO WHILE .T.
CLEAR
SET COLOR TO
//p}e cor padrmo
// lay out
@ 01,01 TO 24,79 DOUBLE
@ 02,02 TO 04,78
@ 03,03 SAY ALT CONTROL INF
@ 03,60 SAY DATE( )
@ 03,70 SAY TIME( )
// CRIAR VARIAVEIS
CODVAR : SETORVAR :
SALARIOVAR :
NOMEVAR
: SPACE(35)
CARGOVAR
: SPACE(15)
ATIVOVAR
: (.T.)
DATAVAR
: CTOD ( / / )
// entrada de dados
@ 06,10 SAY ** CADASTRAMENTO DE FUNCIONARIOS **
@ 08,10 SAY CODIGO...........: GET CODVAR PICTURE 9999
READ
IF CODVAR = 0
// verifica se o usuirio nao digitou o codigo
OP : S // cria variavel OP
// pergunta se o usuario deseja sair do programa
@ 21,15 SAY SAI DESTE MODULO.(S/N)..: GET OP PICT A
READ
IF OP = S
// verifica a resposta do usuirio
RETURN
// retorne
ENDIF
LOOP
// sobe a execuomo para linha do DO WHILE
ENDIF
// fim do se
SEEK CODVAR
// pesquisa no indice o conteudo da variavel
// variavel CODVAR
IF EOF( )
// se NAO EXISTE
// entra com o restante dos dados do FUNCIONARIO
@ 10,10 SAY NOME FUNCIONARIO..: GET NOMEVAR PICTURE @!
@ 12,10 SAY SETOR TRABALHO....: GET SETORVAR PICT @9
@ 14,10 SAY CARGO FUNCIONAL...: GET CARGOVAR PICT @!
@ 16,10 SAY SALARIO...........: GET SALARIOVAR PICT 9999999.99
@ 18,10 SAY FUNCIONARIO ATIVO.: GET ATIVOVAR
@ 20,10 SAY DATA ADMISSAO.....: GET DATAVAR
READ
APPEND BLANK
// criar um registro em branco
101
CONTINUE
Propysito:
LOCATE.
Sintaxe:
CONTINUE
Exemplo:
CLEAR
USE FOLHA
// abre o arquivo de dados
LOCATE FOR SETOR = A
DO WHILE FOUND( )
// faoa enquanto existir
? NOME, SALARIO, SETOR
// mostra os campos
CONTINUE
// continua a pesquisa
ENDDO
// fim do faoa enquanto
COPY FILE
Propysito: Copiar o conte~do de um arquivo, independente do seu
ipo, para outro arquivo.
Sintaxe:
COPY FILE arquivo!TO cy
pia!
Exemplo:
COPY FILE FOLHA.DBF TO FCOPIA.DBF
COPY FILE FOLHA.DBF TO FCOPIA.DBT
COPY FILE MENU.PRG TO A:MENU.PRG
111
COPY STRUCTURE
Propysito: Copiar apenas a estrutura do arquivo aberto na i
rea
orrente de trabalho.
Sintaxe:
COPY STRUCTURE TO copia![FIELDS campos!]
Exemplo:
USE FOLHA
// abre o arquivo de dados
COPY STRUCTURE TO TFOLHA
// cria o arquivo TFOLHA.DBF com a
// mesma estrutura do arquivo FOLHA.DBF.
COPY STRUCTURE TO TFOLHA FIELDS NOME,SALARIO,COD
// cria o arquivo
// TFOLHA contendo uma estrutura de apenas
// trrs campos.
Exemplo:
USE FOLHA
// abre o arquivo de dados FOLHA.DBF
COPY STRUCTURE EXETENDED TO EFOLHA
// copia sua estrutura para o
// arquivo EFOLHA.DBF
USE EFOLHA
// abre o aquivo contendo a estrutura de FOLHA.DBF
LIST FIELD_NAME, FIELD_TYPE, FIELD_LEN, FIELD,DECX
// lista os
// registros
COPY TO
Propysito: Copia registros de bancos de dados (.DBF) para outro
rquivo (.DBF ou no formato ASCII).
Sintaxe:
COPY TO [ FIELDS <campos> ] TO <arquivo>
[<escopo>] [FOR <condiomo>]
[SDF/DELIMITED [ WITH BLANK / delimitador]
Exemplo:
USE FOLHA
// abre o arquivo FOLHA.DBF
COPY TO CFOLHA
// copia os registros para o arquivo CFOLHA.DBF
COPY TO FOLHA FOR SETOR = A
// somente sermo copiados os registros
// que possuem a letra A inicial no
// campo SETOR
COPY TO CFOLHA RECORD 3
// p copia apenas o registro 3
COPY TP CFOLHA DELIMITED
// copia para o arquivo CFOLHA.TXT
// no formato delimitado
TYPE CFOLHA.TXT
// mostra o conte~do do arquivo CFOLHA.TXT
121
COUNT
Propysito: Calcular o totalizante referente jquantidade de registos.
Sintaxe:
COUNT TO var![escopo!] [FOR condio
m
o!]
WHILE condio
m
o!@
Exemplo:
USE FOLHA
COUNT TO RESULTADO
? RESULTADO
COUNT TO RESULTADO2 FOR SETOR = A
COUNT TO RESULTADO3 FOR SETOR = A .AND. CARGO = ESCRITURARIO
?RESULTADO, RESULTADO2, RESULTADO3
CREATE
Propysito:
Sintaxe:
Exemplo:
CREATE TESTRU
APPEND BLANK
CREATE FROM
Propysito:
e estruturas.
Sintaxe:
Exemplo:
CREATE TESTRU
APPEND BLANK
REPLACE ;
131
DECLARE
Propysito:
Sintaxe:
Declara varii
veis ou vetores privates no programa.
DECLARE <identificador> [: <valor>]
DELETE
Propysito: Marcar um registro para ser apagado.
Sintaxe:
DELETE escopo![FOR condio
m
o!]
[ WHILE condio
m
o!]
Exemplo:
USE FOLHA
DELETE ALL
//
DISPLAY ALL NOME, SALARIO,
INKEY(0)
SET DELETE ON
//
DISPLAY ALL NOME, SALARIO,
INKEY(0)
RECALL ALL
//
DISPLAY ALL NOME, SALARIO,
INKEY(0)
DELETE FOR SETOR = A
DISPLAY ALL NOME, SALARIO,
? FIM
DELETE FILE
Propysito: Apagar um arquivo, de qualquer tipo, do disco.
Sintaxe:
DELETE FILE <arquivo>
Exemplo:
IF FILE (FOLHA.DBF)
se existir FOLHA.DBF
DELETE FILE FOLHA.DBF
? ARQUIVO FOI APAGADO
ENDIF
DIR *.DBF
// mostra todos os arquivos com a extenomo .DBF
141
DIR
Propysito: Mostra a lista dos arquivos contidos em um diretyrio.
Sintaxe:
DIR [<drive>] [<caminho>] [<mi
scara>]
Exemplo:
DIR
DIR *.*
DIR *.prg
DIR a: *.*
//
//
//
//
mostra
mostra
mostra
mostra
todos
todos
todos
todos
os
os
os
os
DISPLAY
Propysito: Mostra registros de um arquivo de dados na console.
Sintaxe:
DISPLAY <campos> [TO PRINTER]
[TO FILE <nome_arquivo>]
[OFF] [<escopo>] [FOR <condiomo>]
[WHILE <condiomo>]
Exemplo:
USE FOLHA
// abre o arquivo de dados
DISPLAY COD, NOME, SALARIO ALL
// mostra todos os registros
DIPLAY COD, NOME, SALARIO
// mostra somente o registro corrente
DISPLAY COD, NOME, SALARIO ALL FOR SETOR = A
// mostra os registros
// dos funcionirios que
// que trabalham no setor A
DO
Propysito: Executa um programa ou um procedimento.
Sintaxe:
DO <nome> [WITH <lista de park
mentros>]
Exemplo:
:
IF OP = 2
DO PROG1
ELSEIF OP =3
DO PROG2
ELSE
DO PROG4 WITH NOME
ENDIF
:
:
151
DO CASE
Propysito:
ma pexecutada.
Sintaxe:
Exemplo:
DO CASE
CASE OP = 2
DO PROG1
CASE OP = 3
DO PROG2
OTHERWISE
RETURN
ENDCASE
DO WHILE
Propysito: Executa uma estrutura de controle enquanto uma
ondio
m
o for verdadeira.
Sintaxe:
DO WHILE <condiomo>
. . . . <instruo}es>
[EXIT]
. . . . <instruo}es>
[LOOP]
. . . . <instruo}es>
END[DO]
Exemplo:
:
:
VARSAI :=
DO WHILE VARSAI .NOT. $ SN
161
EJECT
Propysito: Avano
a a pi
gina da impressora posicionando a cabeo
a de
mpressm
o no local de inicializao
m
o da pryxima pi
gina.
Sintaxe:
EJECT
Exemplo:
LOCAL L, PG
USE FOLHA
L:= 0
// inicializa uma variivel para controle da quantidade de
// linhas impressas
PG:= 0
GO TOP
// vi para o inicio do arquivo
SET PRINT ON
// liga a satda comum para a impressora
SET CONSOLE OFF
// desabilita a satda da console
DO WHILE .not. EOF( )
// faoa enquanto nmo fim do arquivo.
IF L = 0 .OR. L=60
// se L for 0 ou 60
EJECT
PG++
// acumula +1 na variivel
? REALATORIO DE FUNCIONARIOS
?
? Pagina:+str(pg)
replicate (=, 78)
// traoa uma linha
1 := 7
ENDIF
? COD, NOME, SALARIO
// imprime os campos
SKIP
// pule para o pryximo registro
L++
ENDDO
// fim do faoa enquanto
:
:
ERASE
Propysito:
Sintaxe:
Exemplo:
IF FILE (
FOLHA.DBF
)
ERASE FOLHA.DBF
?
ARQUIVO FOI APAGADO
ENDIF
171
// se existir FOLHA.DBF
DIR *.DBF
EXTERNAL
Propysito:
Sintaxe:
EXTERNAL <lista>
inker.
Exemplo:
EXTERNAL funo}es
:
:
EXIT PROCEDURE
Propysito:
Sintaxe:
Exemplo:
// COMPILE ESTE PROGRAMA COM /N
ANNOUNCE MEUSYSTEMA
STATIC nSEGUNDOS
PROCEDURE PRINCIPAL( )
nSEGUNDOS := SECONDS( )
AEVAL (ASORT (DIRECTORY (
*.*
)),;
{|Anomes | QQUT (Anomes[1} ) } )
return // termina o programa.
EXIT PROCEDURE SAIDA( )
?
?
TEMPO:
?? SECONDS ( ) - nSEGUNDOS
RETURN
181
/ / finaliza definitivamente
FIELD
Propysito:
Sintaxe:
.DBF).
Exemplo:
FIELD NOME,COD,SALARIO INTO FOLHA
FIELD CODCARGO,CREDITOS INTO CARGOS
USE FOLHA ALIAS FOLHA
USE CARGOS ALIAS FOLHA
<instruo}es>
:
:
? cod,codcardi
// equivalente a FOLHA-> COD,CARGOS -> CODCARGO
? nome
// equivalente a folha -> nome
:
:
FIND
Propysito: Pesquisa no primeiro t
ndice, o registro que possua uma
have especificada.
Sintaxe:
FIND <string>
Exemplo:
USE FOLHA INDEX CODX, NOME
FOR. . . NEXT
Propysito:
~mero de vezes.
Sintaxe:
191
<passo>
...... <instruo}es>
[EXIT]
...... <instruo}es>
[LOOP]
NEXT
Exemplo:
LOCAL TREGISTROS
USE CADASTRO
COUNT TO TRESGISTROS
GO TOP
FOR I = 1 TO TREGISTROS STEP 1
DISPLAY NOME, ENDERECO, TEL
// exibe o registro corrente
SKIP
// pula para o pryximo registro
NEXT
? FIM
FUNCTION
Propysito:
Sintaxe:
:
:
RETURN [<informaomo>]
Exemplo:
LOCAL VAR1, VAR2, VAR3, X
var1 := 3
var2 := 7
var3 := 100
:
? soma (var3,var2)
// resultado : 107 (na tela)
? soma (var1,var2)
// resultado : 10 (na tela)
x:= soma(var3,300)
// resultado : 400 (na variivel)
:
:
:
FUNTION SOMA ( P1, P2 )
// declara a funomo e recebe os parkmetros
R := P1+P2
// soma os parkmetros
RETURN R
// retorna a execuomo para rotina que chamou
// acompanhada do valor contido na variivel R,
201
GO
Propysito: Desloca o ponteiro interno do arquivo de dados para um
determinado registro.
Sintaxe:
GO [TO] <registro> | BOTTOM | TOP
Exemplo:
USE FOLHA
GO 6
// vi para o registro (record) numero 6
DISPLAY NOME, COD, SALARIO
GO TOP
// vi para o inicio do arquivo
DISPLAY NOME, COD, SALARIO
GO BOTTOM // vi para o fim do arquivo
DISPLAY NOME,COD,SALARIO
IF
Propysito: Executa instruo
}es somente quando uma expressm
o
condicional for verdadeira.
Sintaxe:
IF <condiomo>
<instruo}es>
[ELSEIF < condiomo2>
<instruo}es>
[ELSE]
<instruo}es>
END[IF]
Exemplo:
LOCAL MEDIA:= 0
CLEAR
@ 10,10 SAY DIGITE A MEDIA DO ALUNO...:GET MEDIA
READ
IF MEDIA <5
?
REPROVADO
ELSEIF MEDIA = 5
?
RECUPERAdO
ELSE
?
APROVAADO
ENDIF
:
:
INIT PROCEDURE
211
Exemplo:
// COMPILE ESTE PROGRAMA COM /N
ANNOUNCE MEUSYSTEMA
STATIC nSEGUNDOS
PROCEDURE PRINCIPAL( )
AEVAL
(ASCOL (DIRECTORY (
*.*
) ) ,;
{ | Anomes | QOUT ( Anomes [1] ) } )
RETURN
// termina o programa.
INIT PROCEDURE INICIAL( )
// rotin de inicializaomo
nSEGUNDOS : SECONDS( )
RETURN
EXIT PROCEDURE SAIDA( )
// rotina de saida do programa.
?
?
TEMPO:
?? SECONDS() - nSEGUNDOS
RETURN
// finaliza definitivamente
INDEX
Propysito:
dados (.DBF)
Sintaxe:
Criar um arquivo de t
ndice (.NTX) para um determinado banco de
INDEX ON <chave> TO <t
ndice> [UNIQUE]
[FOR <Condio
m
o>]
Exemplo:
USE CADASTRO
CLEAR
?
INDEXANDO
INDEX ON NOME TO INDICE1
// indexa o arquivo pelo nome e
// cria o arquivo que conteri o controle de
// tndice INDICE1.NTX
LOCAL VNOME:= SPACE(30)
@ 10,10 SAY
DIGITE O NOME..:GET VNOME PICTURE
@!
READ
?
PESQUISANDO
SEEK VNOME
221
IF FOUND( )
// se exeistir
DISPLAY NOME, ENDEREdO, CIDADE
ENDIF
?
REGISTRO NO ENCONTRADO
// mostra o registro
INPUT
Propysito: Realizar a entrada de dados de um expressm
o e armazena a
mesma em uma varii
vel.
Sintaxe:
INPUT [<mensagem>] TO <varii
vel>
Exemplo:
LOCAL VAR
CELAR
INPUT
DIGITE QUALQUER COISA..:TO VAR
?
VOC DIGITOU...:
?? VAR
JOIN
Propysito:
Sintaxe:
Exemplo:
USE VENDAS
KEYBOARD
Propysito:
aractere.
Sintaxe:
Exemplo:
231
KEYBOARD a
KEYBOARD CHR(65)
KEYBOARD CHR(130)
// resultado:
// resultado:
A
p
LABEL FORM
Propysito:
ormato. .LBL.
Sintaxe:
Executa a sat
da de etiquetas a partir de um arquivo do
LABEL FORM <arquivo.LBL> [TO PRINTER]
[TO FILE]
[<ESCOPO>] [SAMPLE] [WHILE <condiomo>]
[FOR<condiomo>]
Exemplo:
USE MALA INDEX NOME
LABEL FORM ETIQUETAS TO PRINTER SAMPLE
// imprime as etiquetas
LIST
Propysito:
Sintaxe:
Exemplo:
USE MALA
LIST NOME,
LIST NOME,
ENDEREdO,
ENDEREdO,
CIDADE
CIDADE
TO
PRINTER
// lista impressa
LOCATE
Propysito:
Sintaxe:
<condio
m
o>
Exemplo:
USE FOLHA
LOCATE FOR NOME =Jomo
IF FOUND()
/ / se existir
DISPLAY NOME, SALRIO, SETOR
ELSE
? nmo localizado
ENDIF
241
LOOP
Propysito:
u FOR.
Sintaxe:
Saltar a execuo
m
o do programa para a linha DO WHILE,
LOOP
LOCAL
Propysito:
Sintaxe:
Exemplo:
LOCAL VAR,VAR2: 10
//
? VAR2
LOCAL MATRIZ1 [30] [10]
MEMVAR
Propysito:
~blicas.
Sintaxe:
ou
Exemplo:
USE MALA
MEMVAR NOME
LOCAL NOME
/ memyria local
:
? NOME
?
MALA NOME
//
mostra
conte~do
da
MENU TO
Propysito:
Sintaxe:
251
variivel
nome
nome
NOTE
Propysito:
Sintaxe:
Exemplo:
NOTE esta linha nmo seri copilada, ou seja e apenas um
NOTE
comentirio
? esta linha p uma instruomo que seri e apenas seri copilada
esta linha tambpm p um comentirio
& tambpm p um comentirios
/* estas linhas tambpm smo comentirios*/
PACK
Propysito:
Sintaxe:
PACK
eleo
m
o.
Exemplo:
USE MALA
PACK
INDE NOME
// remove fisicamente do arquivo os registros marcados
PARAMETER
Propysito:
ark
metros.
Sintaxe:
Criar varii
veis de memyria para o recebimento de
PARAMETER <lista de varii
veis>
Exemplo:
MENSAGEM (5, 5,
OI !)
FUNCTION MENSAGEM( )
PARAMETER LINHA, COLUNA, DADO
/ que chamar esta funomo
@ LINHA, COLUNA SAY DADO
RETURN NIL
261
//recebe
valores
da
rotina
PRIVATE
Propysito:
rivadas.
Sintaxe:
Exemplo:
PRIVATE MATRIZ1 [20] [30]
// declara
que a matriz
/ seri privada
PRIVATE A, B, C
// declara que as variiveis smo
// privadas
A: =8
// atribui um valor a
// variivel
PRIVATE DATA: =DATE( )
// declara e inicializa a
// variivel privada
PROCEDURE
Propysito:
Sintaxe:
<procedure>
[(lista
arkmetros)]
[FIELD <lista de campos>[IN <apelidos>]]
[LOCAL
<identificador> [:
<inicializador>],,,]
[MEMVAR <lista de identificadores>]
[STATIC
<identificador>
[:
<inicializador],,,]
:
<instruo}es>
:
[RETURN]
Exemplo:
:
:
:
MENSAGEM(20,10,NO ENCONTRADO)
:
:
PROCEDURE MENSAGEM(LINHA, COLUNA,
@ LINHA, COLUNA SAY DADO
RETURN
271
DADO)
PUBLIC
Propysito:
Sintaxe:
Exemplo:
PUBLIC
PUBLIC
:
:
A: = 10
// inicializa
variivel
QUIT
Propysito:
Sintaxe:
Termina a execuo
m
o do programa.
QUIT
Exemplo:
:
RESPOSTA: =S
@ 20,10 SAY SAIR DESTE PROGRAMA...: GET RESPOSTA
READ
IF RESPOSTA = S
QUIT
/ / termina o programa
ELSE
LOOP //sobe a execuomo para linha de DO
ENDIF
:
:
PICT !
WHILE
READ
Propysito: Executar edio
m
o das varii
veis especificadas pelo
omando @.. SAY.. GET.
Sintaxe:
READ[SAVE]
Exemplo:
LOCAL VNOME, VENDEREdO, VSALRIO
VNOME: = SPACE(30)
281
VENDEREdO: = SPACE(35)
VSALRIO: = 0.00
@ 10,10 SAY DIGITE O NOME...: GET VNOME PICT !
@ 12,10 SAY DIGITE O ENDEREdO..: GET VENDEREdO
@ 14,10 SAY DIGITE O SALRIO...: GET VSALRIO PICT @E 9,999.99
READ
// executa e no final libera os tres GET's pendentes
RECALL
Propysito: Recupera registros marcados para a eliminao
m
o atravp
s do
comando DELETE.
Sintaxe:
RECALL
<escopo>
[WHILE<condio
m
o>]
[FOR<condio
m
o>]
Exemplo:
USE MALA
GOTO 3
IF DELETED(
RECALL
ENDIF
REINDEX
Propysito: Recriar os arquivos de t
ndices abertos nas i
reas de
rabalho corrente.
Sintaxe:
REINDEX
EVAL<Condio
m
o>]
[EVERY<nRegistro>]
Exemplo:
USE MALA INDEX INOME, ICOD
REINDEX
/ /
reorganiza
os
arquivos
INOME, ICOD
:
:
RELEASE
Propysito:
Sintaxe:
291
Libera da memyria vi
rias P~blicas e Privadas.
RELEASE <lista de varii
veis>
[ALL [LIKE / EXCEPT <eskeleto>] ]
RENAME
Propysito:
Renomear um arquivo
Sintaxe:
Exemplo:
RENAME ARQ.TXT TO ARQ_NOVO.TXT
troca o nome do arquivo
RENAME MALA.DBF TO POSTAL.DBF
/ /
REPLACE
Propysito:
Sintaxe:
expressm
o.
FOR <Condio
m
o>]
[WHILE <condio
m
o>]
Exemplo:
USE MALA INDEX ICOD
APPEND BLANK
/ / cria um registro em
branco
/ preenche os campos
REPORT FORM
Propysito:
Realizar a sat
da de um relatyrio para console
ou impressora.
Sintaxe:
[<escopo>] [TO PRINTER]
REPORT
FORM <nome
do
arquivo>
301
Exemplo:
USE FOLHA INDEX INOME
REPORT FORM REL1 TO PRINTER
/ / relatyrio
impresso dos registros
REPORT FORM REL1 TO PRINTER HEADING
ALT
CONTROL - SETOR 4;
FOR SETOR = 4
/ / imprime somente os funcioni
rios
do setor 4
REQUEST
Propysito:
Sintaxe:
<mydulos>
RESTORE
Propysito:
Carregar
varii
veis
gravadas de um arquivo
Sintaxe:
(.mem) do disco.
Exemplo:
A: =4
OME: =
JOO
SAVE TO ARQVAR / / salva todas as varii
veis
de memyria no arquivo ARQVAR.MEM
RELEASE ALL / / apaga todas as varii
veis
RESTORE FROM ARQVAR / / restaura as varii
veis
do arquivo ARQVAR.MEM
?A
? NOME
RESTORE SCREEN
Propysito:
Sintaxe:
Restaurar no vt
deo uma tela salva anteriormente.
RESTORE SCREEN [FROM
tela!]
Exemplo:
CLEAR
@ 10,10
@ 15,15
311
TO 23,79
SAY ESTA
TELA
SERA SALVA
tecla
// recupera
tela
RETURN
Propysito: Terminar a execuo
m
o de uma procedure, programa
u funo
m
o do usui
rio.
Sintaxe:
RETURN valor!
Exemplo:
? SITUAdO (3,7,8,10)
FUNCTION SITUAdO(N1, N2,
MeDIA : = (N1+N2+N3+N4)/4
IF MeDIA = >6
RETURN APROVADO
ELSE
RETURN REPROVADO
ENDIF
N3,
N4)
RUN
Propysito:
peracional.
Sintaxe:
Exemplo:
? FAVOR
? FAVOR
! DATE
ATUALIZAR
ATUALIZAR
A
A
HORA
DATA
DO
DO
SISTEMA!.
SISTEMA!.
SAVE
Propysito: Salvar em um arquivo no disco, varii
veis de
emyria e seus conte~dos.
Sintaxe:
SAVE TO <arquivo> [ALL[LIKE|EXCEPT <esqueleto>]]
Exemplo:
A:=9
VNOME := JOAO
321
SAVE SCREEN
Propysito:
Sintaxe:
SEEK
Propysito:
especificada.
Sintaxe:
Exemplo:
USE MALA INDEX INOME
SEEK JOAO
// Equivalente A: DBSEEK (JOAO)
IF FOUND( )
// se existir
DISPLAY NOME, ENDERECO, CIDADE
ELSE
? NAO ENCONTRADO
ENDIF
SELECT
Propysito:
Sintaxe:
Seleciona uma i
rea de trabalho.
SELECT
Nome da i
rea!|apelido!
Exemplo:
USE MALA INDEX INOME
SELECT 0
// seleciona o pryxima irea dispontvel
USE FOLHA INDEX CODF
LIST NOME, SALARIO, SETOR, COD
SELECT MALA
// selecina o arquivo irea MALA
LIST COD, CLIENTE, CIDADE
LIST MALA
331
CLEINTE, FOLHA
SALARIO
// lista registro de
// outra irea
SET ALTERNATE
Propysito:
no disco.
Sintaxe:
Realiza a sat
da do console para um arquivo (ASCII) a ser gravado
SET ALTERNATE TO arquivo!|[ON]|[OFF]|(.T.)/(.F.)!
Exemplo:
SET ALTERNATE TO ARQSAIDA.TXT
AET ALTERNATE ON
// lida a satda para o arquivo
USE MALA INDEX ICEP
LIST CLIENTE, CIDADE, ESTADO
SET ALTERNATE OFF
// suspende a satda para o arquivo
CLOSE ALTERNATE
// fecha a operaomo com o arquivo
// alternativo.
TYPE ARQSAID.TXT
SET BELL
Propysito:
Sintaxe:
Controla a sat
da sonora na operao
m
o de entrada de dados.
SET BELL ON|OFF|(.T.)/(.F.)!
SET CENTURY
Propysito:
Sintaxe:
Possibilita configurar os dt
gitos dos sp
culos das datas.
SET CENTURY ON|OFF|(.T.)/(.F.)!
Exemplo:
SET DATE TO BRIT
? date( )
SET CENTURY ON
? date( )
SET CENTURY OFF
SET COLOR
Propysito: Definir as cores que serm
o exibidas na tela.
Sintaxe:
SET COLOR TO [<padrmo>, <destaque>,
<borda>, <fundo>,
<nmo selecionado>] |
string>
Exemplo:
VNOME := SPACE(30)
PADRAO1 :=
W/N, N/N
341
PADRAO2 :=
B/N, N/W
SET COLOR TO (PADRAO1)
@ 10,10 SAY
DIGITE O NOME...:GET VNOME PICTURE
@!
SET COLOR TO (PADRAO2)
READ
SET COLOR TO W+,B
?
VOCE DIGITOU O NOME...:
?? VNOME
SET CONFIRM
Propysito:
Sintaxe:
Configurar a confirmao
m
o de entrada de dados de GET's.
SET CONFIRM ON|OFF|(.T.)/(.F.)!
Exemplo:
CLEAR
LOCAL VNOME
@ 10,10 SAY
READ
SET CONFIRM
@ 20,10 SAY
READ
:= SPACE(15)
SET CONSOLE
Propysito:
Sintaxe:
Configurar a sat
da do console
SET CONSOLE ON|OFF
SET CURSOR
Propysito:
o tipo Data.
Sintaxe:
Exemplo:
SET DATE TO ITALIAN
?
A DATA DE HOJE E....:
?? DATE( )
351
SET DECIMALS
Propysito:
Sintaxe:
Exemplo:
SET FIXED ON
SET DECIMALS TO 2
? 10/3
? 20/7
SET DECIMALS TO 5
? 10/3
? 20/7
SET DEFAULT
Propysito:
rocessados.
Sintaxe:
Exemplo:
SET DEFAULT TO A:
// muda a leitura de arquivo para o diskete
SET DEFAULT TO C:\CLIPPER5
// muda para a unidade C no
// diretyrio \ CLIPPER5
SET DELETED
Propysto:
361
marcados
para
liminao
m
o.
Sintaxe:
SET DELIMITERS
Propysito: Ativar ou destivar a edio
m
o de caracteres que serm
o
utilizados como delimitadores de GET's.
Sintaxe:
SET DELIMITERS ON|OFF|(.T.)/(.F.)
SET DELIMITER TO
Propysito:
Sintaxe:
Exemplo:
CLEAR
VNOME:= VENDERECO:= SPACE(30)
SET DELIMITER ON
// liga a ediomo de delimitadores
SET DELIMITER TO ::
// estabelece novos delimitadores
@ 10,10 SAY DIGITE O NOME...: GET VNOME
SET DELIMITER TO []
// muda os delimitadores novomente
@ 12,10 SAY DIGITE O ENDERECO..: GET VENDERECO
READ
SET DEVICE
Propysito:
Sintaxe:
Configurar a sat
da dos comandos @. . . SAY.
SET DEVICE TO SCREEN|PRINTER
Exemplo:
CLEAR
@ 10,10 SAY LIGUE A IMPRESSORA E PRESS. QQ. TECLA\\
INKEY(0)
// aguarda qualquer tecla
SET DEVICE TO PRINTER
// liga a satda (@.. say) para a
// impressora
@ 20,15 SAY SERA IMPRESSO NA LINHA 20, COLUNA 15 DO PAPEL
SET DEVICE TO SCREEN
// retorna a satda para a tela
SET EPOCH
Propysito:
dt
gitos no ano.
Sintaxe:
371
Exemplo:
SET DATE FORMAT TO DD/MM/YYYY
? CTOD (04/05/78)
? CTOD (04/05/92)
SET EPOCH TO 1980
? CTOD (04/05/78)
// resultado: 04/05/1978
// resultado: 04/05/1992
// resultado: 04/05/2078
? CTOD (04/05/92)
SET ESCAPE
Propysito:
Sintaxe:
// data menor?
// resultado: 04/05/1992
SET EXACT
Propysito: Determina se as comparao
}es entre express}es caracteres devem
ser totalmente iguais ou parciais.
Sintaxe:
SET EXACT ON|OFF|(.T.)/(.F.)
Exemplo:
//
.T. (sim)
.F.
(nmo)
// padrmo
? AB1 = AB1CD
// RESULTADO: .T.
? AB1 = AB1
// RESULTADO: .T.
SET EXACT ON
? AB1 = AB1CD
// RESULTADO: .F.
? AB1 = AB1
// RESULTADO: .T.
SET EXCLUSIVE
Propysito: Determina se a abertura de arquivos para utilizao
m
o seride modo
exclusivo ou compartilhado.
Sintaxe:
SET EXCLUSICE ON|OFF|(.T.)/(.F.)
SET FILTER
381
SET FIXED
Propysito:
Sintaxe:
SET FORMAT
Propysito:
avaliado.
Sintaxe:
Determina a sat
da de casas decimais de todos os n~meros.
SET FIXED ON|OFF(.T.)/(.F.)
Exemplo:
VNOME:=SPACE(40)
VENDERECO:=SPACE(30)
SET FORMAT TO TELA
READ
PROCEDURE TELA
@ 10,10 SAY NOME......: GET VNOME
@ 12,10 SAY ENDEREdO..: GET VEDERECO
RETURN
SET FUNCTION
Propysito:
Sintaxe:
Exemplo:
// reprogramando as teclas F2 e F3
391
SET FUNCTION 2
SET FUNCTION 3
? PRESS. <F3>
ACCEPT DIGITE
TO GORKI STARLIN+CHR(13)
TO EDITORA ERICA
OU <F2>
ALGO..: TO TESTE
// CHR(13) = <ENTER>
SET INDEX
Propysito: Abrir arquivos de t
ndices para um arquivo de dados aberto na
i
rea de trabalho corrente.
Sintaxe:
SET INDEX TO <lista de arquivos de t
ndices>
Exemplo:
USE MALA
SET INDEX TO INOME, ICEP
// organizado pelo tndice NOME
LIST NOME, ENDERECO, CIDADE
SET ORDER TO 2
// ICEP, NOME
LIST NOME, ENDERECO, CIADE
SET INDEX TO
// fecha todos os tndices
SET INTENSITY
Propysito: Determina como os campos de edio
m
o GET's e PROMPT's serm
o
exibidos.
Sintaxe:
SET INTENSITY ON|OFF|(.T.)/(.F.)
SET KEY
Propysito:
Sintaxe:
Exemplo:
CLEAR
SET KEY -2 TO TERMINA( )
VNOME:=SPACE(30)
@ 23,10 SAY <F2> TERMINA O PROGRAMA
@ 10,10 SAY DIGITE O NOME...: GET VNOME
READ
FUNCTION TERMINA( )
CANCEL
RETURN
401
SET MARGIN
Propysito:
impressora.
Sintaxe:
Exemplo:
USE MALA INDEX INOME
SET MARGIN TO 10
LIST NOME, ENDERECO, CIDADE TO RPINTER
SET MESSAGE
Propysito: Especifica qual linha do vt
deo seri utilizada para exibir as
mensagens sat
das pelo comando Prompt.
Sintaxe:
SET MESSAGE TO <linha> (CENTER/CENTRE)
Exemplo:
CLEAR
SET MESSAGE TO 23 CENTER
@ 10,10 PROMPT 1 - CADASTRAR MESSAGE CADASTRAMENTO....:
@ 12,10 PROMPT 2 - PESQUISA MESSAGE PESQUISANDO......:
MENU TO VAR
:
:
:
SET ORDER
Propysito:
Index.
Sintaxe:
Exemplo:
USE MALA INDEX ICEP, INOME
LIST NOME, ENDERECO, CIDADE, CEP // lista em ordem de NOMES
SET ORDER TO 2
// muda o arquivo de tndice de controle
LIST NOME, ENDERECO, CIDADE, CEP // lista em ordem de CEP
411
SET PATH
Propysito: Especificar uma direo
m
o de disco ou diretyrio que seripesquisada
pelo Clipper quando este tentar abrir arquivos e nm
o os encontrar.
Sintaxe:
SET PATH <lista de direo
}es>
Exemplo:
SET PATH TO C:\FOLHA;C:\FATURA
SET PRINTER
Propysito:
arquivo.
Sintaxe:
Especificar a sat
da do console para a impressora ou para um
SET PRINTER ON|OFF|(.T.)/(.F.)
SET PRINTER TO <arquivo>
SET PRINTER TO <device>
Exemplo:
SET PRINTER OFF
? DATE( ), TIME( )
SET PRINTER ON
? DATE( ), TIME( )
SET PROCEDURE
Propysito: Abrir um arquivo de procedures e compilar suas procedures,
colocando-as dentro do programa .OBJ a ser gerado.
Sinatxe:
SET PROCEDURE TO < nome do arquivo>
SET RELATION
Propysito: Estabelecer relacionamentos entre i
reas de trabalho.
Sinatxe:
SET RELATION TO [<campo>|<registro> INTO <i
rea>], TO. .
.
[ADDITIVE]
Exemplo:
USE CURSOS.DBF INDEX CODCUR.NTX
USE ALUNOS.DBF NEW
SET RELATION INTO CURSO TO CURSOS
421
// estabelece a relaomo
SET SCOREBOARD
Propysito: Ligar ou desligar a exebio
m
o das mansagens emitidas por READ
e MEMOEDIT( ).
Sintaxe:
SET SCOREBOARD ON|OFF|<.F.>/<.T.>
SET SOFTSEEK
Propysito:
Sintaxe:
SET TYPEAHEAD
Propysito: Determina o tamanho do buffer do teclado.
Sintaxe:
SET TYPEAHEAD TO <valor do tamanho>
SET UNIQUE
Propysito:
Sintaxe:
SET WRAP
Propysito: Liga ou desliga a rolagem da barra entre extremos do menu
mantado pelo comando @. . . PROMPT.
Sintaxe:
SET WRAP ON|OFF|(.T.)/(.F.)
SKIP
Propysito:
Sintaxe:
Exemplo:
USE MALA
GO 1
SKIP 2
SKIP 4
SKIP -3
431
SORT
Propysito:
Sintaxe:
Exemplo:
USE MALA
SORT TO MALA2 ON NOME
USE MALA2
LIST NOME, ENDERECO, CIDADE
STATIC
Propysito:
Sintaxe:
Exemplo:
FUNCTION SENHA
STATIC VCONTROLE := 6
:
:
RETURN
STORE
Propysito:
Sintaxe:
Exemplo:
// equivalente a VA1:=123.33
// mostra o valor de VAR1
// resultado: 4848
4848
SUM
Propysito: Realizar o somatyrio de express}es.
Sintaxe:
SUM <lista de express}es> TO <lista de varii
veis> [<escopo>]
[WHILE <condio
m
o>] [FOR <condio
m
o>]
Exemplo:
441
USE FOLHA
SUM SALARIO TO TOTALSAL FOR SETOR = 1 // tolaliza o salario
// dos funcionirios do setor 1
@ 10,10 SAY RESULTADO...:+STR (TOTALSAL)
TEXT
Propysito: Permite a exibio
m
o de um bloco de textos no vt
deo, em um
arquivo ou na impressora.
Sintaxe:
TEXT [TO PRINTER][TO FILE <arquivo.ext> <texto>...
ENDTEXT
Exemplo:
TEXT
// abre o bloco de texto
---------------------ISTO E APENAS UM TEXTO
---------------------ENDTEXT
TOTAL
Propysito: Cria um arquivo (.DBF), contendo valores totalizados de outros
arquivos de dados.
Sintaxe:
TOTAL ON <campo> TO <arquivo> [<escopo>] [FIELDS <lista
campo> [FOR <condio
m
o>]
TYPE
Propysito: Mostrar o conte~do de um arquivo texto gravado em disco.
Sintaxe:
TYPE <arquivo> [TO PRINTER] [TO FILE <arquivo n
2>
Exemplo:
TYPE MENU.PRG TO PRINTER
UNLOCK
Propysito:
Local.
Sintaxe:
451
Exemplo:
USE MALA SHARED
:
:
IF FLOCK( )
// trava todos os registros
REPLACE SALARIO WITH VSAL*INDICE ALL
UNLOCK
// libera o travamento pendente
ELSE
? NAO e POSSIVEL PROCESSAR OS REGISTROS NO MOMENTO
ENDIF
UPDATE
Propysito: Atualizar o arquivo aberto na i
rea corrente a partir de
utro arquivo de dados aberto em outra i
rea de trabalho.
Sintaxe:
UPDATE FROM <i
rea|arquivo> ON <campo chave>
REPLACE <campo> WITH <expressm
o>,
<campo2> WITH ,<expressm
o2>,,,
[RANDOM]
USE
Propysito: Abrir um arquivo de dados (.DBF) e opcionalmente
rquivo a este associado.
Sintaxe:
USE <arquivo.dbf> [index <lista de arquivo de t
ndice>]
[ALIAS <apelido>][EXCLUSIVE/SHARED]
[NEW] [READONLY]
VIA < C driver>
Exemplo:
USE MALA INDEX ICOD, INOME
USE MALA READONLY
// somente para leitura
USE FOLHA INDEX CODIFO NEW
// abre o arquivo na pryxima irea
// dispontvel.
WAIT
Propysito: Determinar uma pausa na execuo
m
o do programa atpque
ma tecla seja pressionada.
461
Sintaxe:
Exemplo:
A:=4
WAIT Press. qualquer tecla para continuar
B:=5
? A+B
ZAP
Propysito:
Sintaxe:
Exemplo:
USE MALA INDEX ICOD, ICEP
ZAP
471