Tutorial FoxBaseEste tutorial apresenta uma breve descrição do ambiente de trabalho do FoxBase e a descrição, com exemplos, de seus principais comandos e funções. Iniciando Ao entrar no FoxBase (di itando F!" na linha de comando#, ser$ apresentada a tela abaixo% &esta tela, podemos observar a linha de comando ('ommand (ine#, na )ual serão sempre apresentadas informações importantes das operações reali*adas no FoxBase. Comandos Básicos A se uir serão apresentados al uns comandos b$sicos dispon+veis no FoxBase. ,ale lembrar )ue são aceitos os )uatro primeiros caracteres dos comandos, sem ter a necessidades de di it$-los completamente. Ex% .I/0(A1 /234'243E, pode ser di itado como .I/0 /234. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% & @#. Logic: 'ampo para arma*enar dados l5 icos (2rue e False#. por exemplo. 0ode conter at7 :. /e um campo caractere possuir um n<mero como conte<do. 0ara isso. Este campo permite arma*enar at7 D@ EbFtes por re istro. não ser$ poss+vel utili*a-lo para c$lculos num7ricos.-ield name. TIPO . 2A8A&9! e 'A/A/ . 0ortanto. 0ossui tamanho fixo de um caractere e s5 são permitidos como valor 2 (true# ou F (false#. • CREATE 'ar(ui)o* 'ria um novo ar)uivo de dados. Numeric% 2ipo de dado utili*ado para campos com valores. como sal$rio. E s5.B2.BF. 0ermite )ual)uer caractere (letras.E'I8AI/ (para campos num7ricos#. 2em como limite de tamanho :A d+ itos.• C"EAR (impa a tela. &ão 7 permitido espaço em branco assim como caracteres especiais (! ? %&. 2I0!. )uantidade. como um texto explicativo. sendo obri at5rio )ue se inicie por uma letra. Este tipo de dado pode ser definido com tamanho de : = >?@ caracteres. 0ossui tamanho fixo de B posições.AA.AAA. informando &!8E . cu6a extensão padrão 7 . Date: 'ampo para arma*enamento de datas. Memo: C um tipo de campo especial utili*ando para arma*enamento de uma )uantidade maior de caracteres. Atrav7s deste comando define-se a estrutura do ar)uivo.AAA.! 'A80!. cu6a extensão 7 . preço.BF. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% 1 . percentual. os dados deste campo ficam arma*enados em um ar)uivo auxiliar.. exceto se antes for convertido para num7rico atrav7s de uma função de conversão ()ue ser$ apresentada mais adiante#. caracteres. com o mesmo nome do ar)uivo . inclu+dos neste limite o ponto e casas decimais. 3e ras para criação da estrutura% +OME . n<meros e s+mbolos#. etc. !s tipos de dados podem ser% Character : 2amb7m chamados de campo /trin em certas lin ua ens e banco de dados. um campo num7rico definido com tamanho :> e duas casas decimais tem um limite de AAA.t/0e. /e não informado . com todos os campos va*ios. F!3 L Espec+fica uma condição a ser atendida para )ue um re istro se6a listado.BF e tamb7m um Alias. 6$ a partir do re istro atual.A/23!.<I"E 'condi9:o*4 3OFF4 3TO PRI+T4 ! comando .. .BF.Escopo 7 a abran Gncia de re istros )ue serão listados.(ista os pr5ximos n re istros . • APPE+# 3B"A+74 Insere um re istro na base de dados. permitindo inserirIalterar dados nos campos. B(A&H 7 )ue o primeiro abre uma tela para )ue se6am inseridos os valores em cada um dos campos do re istro inserido e o se undo insere automaticamente um re istro em branco. todos os campos do ar)uivo serão listados.(ista todos os re istros .I/0(A1 tem como função listar re istros (em tela ou impressora# de diversas formas. curta e simples ao ar)uivo. /e o re istro atual não atender a condição. As opções são% JescopoK . a partir do re istro atual../ L . A diferença entre A00E&. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% = . 0ode-se fa*er referGncia ao 'A. ao passo )ue com F!3. do re istro atual ao <ltimo.eremos exemplos mais pr$ticos = frente. at7 o final. ou se6a. atende a condição estipulada.(ista o restante dos re istros. 4m Alias 7 um apelido dado ao ar)uivo e tem como ob6etivo normalmente definir uma referGncia mais pr$tica.etermina )uais campos serão listados. nada ser$ listado.• 2SE 3'-ile*4 3I+#E5 'ndx6-ile6list*4 3A"IAS 'alias*4 Abre um ar)uivo de dados no formato . de acordo com as opções do comando utili*adas.A/23! A(IA/ 'A. 2! 03I&2 L Envia a lista em para a sa+da da impressora ((02:#. • E#IT Edita o re istro atual. FIE(. com a diferença )ue F!3 analisar$ se cada um dos re istros.(ista apenas o re istro n . N$ M9I(E listar$ os re istros en)uanto a condição for satisfeita. !pcionalmente. o primeiro re istro 7 i norado e a verificação l5 ica 7 feita para os demais re istros. pode-se definir uma lista de ar)uivos +ndices referentes (discutidos mais tarde# = este . 0or exemplo% 4/E 'A. 'omo escopo pode-se informar% ALL NEXT n RECORD n REST . M9I(E L 2em a mesma função de F!3. !FF L /uprime a exibição do n<mero do re istro na primeira coluna da lista em. e A00E&. • #ISP"A8 3'esco0o*4 33FIE"#S4 'lista6cam0os*4 3FOR 'condi9:o*4 3.BF pelo alias 'A. IP!.9$ ainda al umas variações do comando . deve-se inform$-la entre aspas.BAI33!.E3.3AQ/!' F!3 LIMITE > 1000 (I/2 &!8FA&. ! comando (I/2 funciona como o comando . Ex% . . como as existentes nos comandos (I/2 e .E&. OPERA#ORES CO+#ICIO+AIS 0ara se trabalhar com as cl$usulas F!3 ou M9I(E. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% B . /ão eles% T JK K J KT JT IP4A( A . #ISP"A8 MEMOR8 3TO PRI+T4 (ista as vari$veis de mem5ria em uso #ISP"A8 STAT2S 3TO PRI+T4 (ista todos os parSmetros /E2 e seus estados (!&I!FF# e as pro ramações das teclas de função.I/0(A1. por exemplo# 7 necess$rio conhecer os operadores condicionais.E 8AI!3 U4E 8E&!3 U4E 8AI!3 !4 IP4A( A 8E&!3 !4 IP4A( A Exemplos% (I/2 A(( '!.&2" L listar$ todos os ar)uivos cI extensão &2" do diret5rio atual #ISP"A8 <ISTOR8 3"AST 'ex0r*4 3TO PRI+T4 (ista o hist5rico dos comandos di itados na linha de comando.I/0(A1 (e em outros como 3E0(A'E.BF (padrão#.I/0(A1. simples ou duplo. para .I/0(A1 FI(E/ (IHE R.IFE3E&2E .I/0(A1 7 o re istro corrente.I/0(A1 FI(E/ on '%OPQO'!&'E&2 .listar$ todos os . )ue são% #ISP"A8 FI"ES 3O+ 'dri)e>dir*4 3"I7E 'mascara*4 3TO PRI+T4 (ista os ar)uivos de um determinado diret5rio ou do diret5rio corrente.BF aberto na $rea atual.I/0(A1 FI(E/ L (istar$ todos os ar)uivos . (I/2 não utili*a-se de uma fla na lista em para indicar re istros )ue estão deletados. #ISP"A8 STR2CT2RE 3TO PRI+T4 (ista a estrutura do ar)uivo .84&I' F!3 ESTA#O?@SP@ A R Uuando for fa*er referGncia = uma expressão do tipo caractere (strin #. com as se uintes diferenças% o escopo padrão para (I/2 7 A((.BFs de '%OPQO'!&'E&2 . (I/2 não possui pausa a cada :? re istros. (YZ.IP!. &!8FA&. atrav7s da utili*ação de uma referGncia ao endereço de mem5ria onde a informação est$ arma*enada.&!2. dividir$ o resultado da multiplicação por [. o )ue resultaria no arma*enamento do valor .I.:I>. (I/2 '!. /I24A'A!TTWBW List! os %egist%os c$'! sit$!.:I>.A3IX.2.2E(TW. arma*enando o valor 2rue "TARZ>I[-K A vari$vel " arma*enar$ o resultado da operação )ue ir$ multiplicar o valor arma*enado em A por Z> e em se uida.A&.!3. .ari$vel de mem5ria 7 um recurso utili*ado em todas as lin ua ens de pro ramação para arma*enar uma informação em mem5ria e poder recuper$-la sempre )ue necess$rio. trata-se de uma informação do tipo 2E"2!.A(!3K Ex% A T :. 'aso se6a informado Z.IP!... &!8FA&. ! tipo da vari$vel depende do tipo de informação arma*enada. C.. A criação de uma vari$vel 7 feita por J&!8E .&!2.. &!8FA& F!3 . -K Foi criada a vari$vel A.:I>. )ue converte uma expressão caractere para data.A&.@W# -K 'riada a vari$vel .A2AT'2!...!3.. 2E(EF!&E F!3 .!TW/0W .::W . /& T .2E(TW.I.O se'! /01 DARIEDEIS #E MEMCRIA . uma vari$vel num7rica.2E(.. C necess$rio passar = esta função um texto em forma de uma data v$lida para )ue se6a reali*ada a conversão.. E80TWPQ /I/2E8A/W -K 'riada a vari$vel E80. Nome !nt!si! e te"e one dos c"ientes #$e o%em de S& e c$'o DDD se'! ()).: GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% H . A re ra para nome de vari$vel se ue a re ra para nomes de campos em ar)uivos (descrita no comando '3EA2E#.:AW List!% os c"ientes #$e *oss$em DDD )) o$ )+.I. portanto. /ão eles% .ate.IP!. ..-o N. do tipo .2E(TW. &V! l5 ico Ex% (I/2 '!. ..A2A. 2E(EF!&E F!3 E/2A. .@. ! valor arma*endo em " seria de @?. !4 l5 ico .. (I/2 '!. E l5 ico .A ..@W. trata-se de uma expressão matem$tica. do tipo caractere.::W Liste código .[: OFsG 0ara atribuir uma data 7 necess$rio o uso da função '2!.ari$vel do tipo l5 ica... arma*enando o valor :. -K . /e for informado simplesmente YZ.. Esta referGncia 7 o nome da vari$vel..E(K T J.OPERA#ORES "CGICOS /ão operadores )ue permitem estabelecer uma relação entre v$rias condições a serem avaliadas. A identificação <nica do documento depende de outras informações como lo6a.>#\/23('AI"A. pois se eu tentar criar al o como I&..'(I E6ec$t! o RE&LACE nos c!m*os DDDCO7 e CE& com os 3!"o%es d!s 3!%i83eis DDDCL4 e CE&CL4 !*en!s nos %egist%os onde o c!m*o 75N4C ten9! como conte:do o 3!"o% d! 3!%i83e" C4DCL4. I+#E5 O+ 'ex0r* TO '-ile* 3FOR 'ex0"*4 32+IJ2E4 'ria ar)uivos de +ndice para a ili*ar a pes)uisa por re istros dentro do ar)uivo. atrav7s de uma chaves de pes)uisa (JexprK#.'(I. Ex% 4/E '(IE&2E/ I&. para )ue os valores dos campos (!NA.'(ITWN4&. 0or exemplo.'(ITW.D#\.D0<. desdobramento.!'. &ão 7 poss+vel criar uma chave composta do tipo num7rico.E/. do documento não pode ser considerado como chave prim$ria(<nica# dentro do ar)uivo.. 'AI"A e &3.>#\2I0!.E" !& '!.!'\/23(&3.IAIW 'E0'(ITW:Z>..!B3 4ma chave composta deve ser do tipo de caractere. o nro.!' se6am convertidos para caractere antes de serem concatenados com 2I0!.W 3E0( ... por exemplo.E" !& /23((!NA.IT< 'ex0r* 3I'-ield1* . nro. 4/E '(IE&2E/ .IP!\(I8I2E.'!8 MI29 .E/..ndice.<I"E 'ex0"*4 'omando para ravar dados em campos do re istro corrente do ar)uivo em uso.!B3. )ue converte um valor num7rico em caractere.E" !& '!. CKa)e Com0osta C poss+vel e muitas ve*es torna-se necess$rio a definição de uma chave de pes)uisa formada por dois ou mais campos para se formar a identidade <nica do re istro..'(I: Ao in!" d! c%i!. 0or isso o uso da função /23. a chave ser$ formada pelo resultado da soma dos dois valores. Ex% 3E0(A'E A(( /I24A'A! MI29 Y(W At%i2$i o 3!"o% /L1 *!%! o c!m*o S4T5ACAO em todos os %egist%os do !%#$i3o.. em um ar)uivo de contas = receber.ndice !ti3o *!%! o !%#$i3o CL4ENTES. Assim ter+amos% I&. este '8 est8 !2e%to e sendo o .IT< 'ex0r1*%%%4 3FOR 'ex0"*4 3.!' e . tipo do documento. o )ue impediria de erar um +ndice pela ordem dese6ada..REP"ACE 3'sco0e*4 '-ield* .-o do . 'E0 MI29 'E0'(I F!3 84&I'T'I.::W 'I.IP! 2! I&.. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% L . do caixa. SET #E"ETE# O+>OFF Ativa ou desativa a exibição de re istros marcados para deleção. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% M . SET E5C"2SIDE O+>OFF Ativa ou desativa a abertura de ar)uivos somente em uma m$)uina.A2E B3I2I/9. direto na linha de comando e sim em pro ramas de emissão de relat5rios. !s comandos de confi uração de ambiente são <teis para definir parSmetros de trabalho dentro FoxBase. SET CE+T2R8 O+>FF Ativa (!&# ou desativa(!FF# a apresentação de anos com )uatro d+ itos.Comandos de Con-i$ura9:o de AmFiente . ao inv7s de utili*ar o comando P!. &5s utili*amos o padrão britSnico (ddImmIaa#.ireciona a sa+da de dados para impressora ou tela. ativado por /E2 .03& SET PRI+T O+>OFF Ativa ou desativa a impressão SET #EDICE TO 'PRI+TER>SCREE+* . Ex% /HI0 \:.SET. Ex% /E2 03I&2E3 2! (02: /E2 03I&2E3 2! 3E(A2. &ão 7 utili*ado no modo interativo. /HI0 L? /HI0 !bs% 0ode-se di itar apenas o n<mero do re istro no )ual vocG )uer posicionar o ponteiro de dados para ir diretamente para o re istro. /e ue uma lista com os principais% SET #ATE 'ex0r* . /e for declarado simplesmente /HI0.efine o formato da data a ser utili*ado. fa*endo com )ue os ar)uivos s5 se6am abertos caso nenhuma outra m$)uina da rede este6a com este em aberto. SET PRI+TER TO '0orta>ar(ui)o* . avança automaticamente um re istro. Comandos 0ara 0es(uisa > mudan9a de 0onteiro de re$istros% P! JnK 8uda o ponteiro para o re istro n /HI0 ]\I-^ ]n^ Avança (\# ou retrocede(-# n re istros no ar)uivo.ireciona a impressão para uma porta ou para um ar)uivo. ! padrão ao entrar no Fox 7 o padrão americano (mmIddIaa#. )ue 7 o +ndice atual.'(I: . re istro a re istro.IAIW 0ara no primeiro re istro encontrado com o campo 84&I'TWN4&. pois B!F 7 um ponteiro anterior ao primeiro re istro do ar)uivo. ao primeiro re istro )ue atenda a condição especificada em F!3 ou M9I(E. Ex% (!'A2E F!3 84&I'TWN4&. não se6a encontrado.IP! 2! I&.. 'aso o c5di o :. )ue 7 a indicação de final de ar)uivo. Ex% 4/E '(IE&2E/ I&. utili*e o comando '!&2I&4E SEE7 'ex0r* 3eali*a a pes)uisa de uma expressão pela chave do ar)uivo +ndice atual. !bs% B!F (Be in of File# 7 o indicador de in+cio de ar)uivo.E" !& '!. Isso não 7 a mesma coisa )ue o primeiro re istro.. o ponteiro vai para E!F (End of File#. ou se6a."OCATE 3'sco0e*4 3FOR 'ex0"*4 3.<I"E 'ex0"*4 Fa* a procura se)_encial.'(I: /EEH :. 0es)uisa o c5di o :. GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% N . pela chave de I&.IAIW 0ara continuar reali*ando a pes)uisa estipulado no (!'A2E.. .. 3etorna a data atual do sistema TIME.># -K YPQW RIG<T. chamado de parSmetro. retornando um resultado 6$ pr7-pro ramado. 3etorna n caracteres de uma expressão a partir do <ltimo = direita. se for feito ` (E&(&!8FA&# a resposta sempre ser$ :?.'ex0r#*.A((B# -K Z? GZ SISTEMAS IMPORTAÇ O E COM!RCIO "T#A Pá$% P . #ATE. /e for aplicado sobre um campo de um ar)uivo . 3etorna n caracteres de uma expressão a partir do primeiro = es)uerda.'ex0r+*3I'tam*43I'dec*4. Ex% &o ar)uivo '(IE&2E/. 3etorna a hora atual do sistema CTO#.'ex0rC*.. Al umas funções não solicitam parSmetros.'Ex0rC*. Ex% ATW:?W BTW>. esta ir$ trata-lo e retornar uma resposta. mesmo )ue o conte<do do campo se6a menor. 'onverte uma expressão data em caractere STR.BF.B# -K Y/I/2E8A/W "E+. A função /23 utili*ada sem definir o tamanho e decimais vai tamanho :.B[. Ex% 3IP92(YPQ /I/2E8A/W.:..W ` A\B -K :?>. Ex% (EF2(YPQ /I/2E8A/W. sempre ser$ retornado o tamanho do campo e não o tamanho do texto )ue este campo cont7m.A((A#\ . 3etorna a expressão informada como num7rica. 'onverte uma expressão caractere em uma data.PRI+CIPAS F2+ÇOES 4ma função 7 um recurso de uma lin ua em de pro ramação atrav7s do )ual. passando-se um valor. 3etorna o tamanho de uma expressão caractere..Z# -K :>?..'ex0rC*. DA". (As expressões são concatenadas# ` .'ex0rC*I'n*.. #TOC.BF.B[. 'onverte uma expressão num7rica em caractere Ex% /23(:>?.'ex0rC*I 'n*. erar uma expressão caractere de "EFT.