779
Dinarte Inácio Kreutz R R e e f f e e r r ê ê n n c c i i a a s s : : E E s s t t e e t t r r a a b b a a l l h h o o f f o o i i d d e e s s e e n n v v o o l l v v i i d d o o a a p p a a r r t t i i r r d d o o H H E E L L P P d d o o V V F F P P 6 6 A A u u t t o o r r : : D D i i n n a a r r t t e e I I n n á á c c i i o o K K r r e e u u t t z z / / A A n n a a l l i i s s t t a a d d e e S S i i s s t t e e m ma a s s E E - - m ma a i i l l : : m mo o n n a a l l i i s s a a @ @b b e e w w n n e e t t . . c c o o m m. . b b r r http://www.visualscreen.hpg.com.br I I M M P P O O R R T T A A N N T T E E : : E E s s t t a a a a p p o o s s t t i i l l a a t t r r a a z z o o s s c c o o m m a a n n d d o o s s d d o o V V i i s s u u a a l l F F o o x x P P r r o o , , p p r r i i n n c c i i p p a a l l m m e e n n t t e e a a q q u u e e l l e e s s q q u u e e p p o o d d e e m m s s e e r r i i m m e e d d i i a a t t a a m m e e n n t t e e a a p p l l i i c c a a d d o o s s p p o o r r P P r r o o g g r r a a m m a a d d o o r r e e s s q q u u e e e e s s t t ã ã o o m m i i g g r r a a n n d d o o d d o o C C L L I I P P P P E E R R . .

Apostila Visual Fox Pro

Embed Size (px)

Citation preview

Dinarte Incio Kreutz

Refferrnciias :: Estte ttrraballho ffoii desenvollviido a parrttiirr do HELP do VFP 6 Re e nc as Es e aba ho o desenvo v do a pa do HELP do VFP 6 Auttorr :: Diinarrtte IInciio Krreuttz // Analliistta de Siisttemas Au o D na e nc o K eu z Ana s a de S s emas E--maiill :: [email protected] E ma mona sa@bewne com b

http://www.visualscreen.hpg.com.br

IMPORTANTE :: Estta aposttiilla ttraz os comandos do Viisuall FoxPro,, IMPORTANTE Es a apos a raz os comandos do V sua FoxPro priinciipallmentte aquelles que podem ser iimediiattamentte aplliicados por pr nc pa men e aque es que podem ser med a amen e ap cados por Programadores que estto miigrando do CLIPPER.. Programadores que es o m grando do CLIPPER

COMANDOS E FUNES RUN | !, comando Executa programas ou comandos operacionais externos. Sintaxe RUN [/N [K]] ComandoMS-DOS | NomePrograma Ou ! [/N [K]] ComandoMS-DOS | NomePrograma Argumentos ComandoMS-DOS Especifica o comando do MS-DOS a ser executado. Consulte a documentao do MS-DOS para obter maiores informaes sobre os comandos disponveis. NomePrograma Especifica o programa ou o aplicativo a ser executado. Poder ser especificado um programa ou aplicativo baseado no Windows ou no MS-DOS. /N [K] Especifica NOWAIT. Inclua a letra N (no substitua N por um valor numrico nem inclua K) para executar outro aplicativo do Windows. Comentrios possvel emitir RUN de dentro da janela Comando ou de outro programa. Importante Para utilizar RUN, voc precisa ter o arquivo de sistema operacional COMMAND.COM no diretrio atual ou esse arquivo dever estar localizado onde o parmetro MSDOS COMSPEC possa encontr-lo. Para obter maiores informaes sobre COMSPEC, consulte a documentao do MS-DOS. Cuidado No utilize RUN para executar programas de reorganizao de disco, como o CHKDSK, a partir do Visual FoxPro. Esses programas modificam o contedo do seu disco de maneira a impedir o bom funcionamento do Visual FoxPro. RUN e Visual FoxPro Quando RUN utilizado para executar programas fora do Visual FoxPro, ele pesquisa os programas de forma um pouco diferente do FoxPro para MS-DOS. Se o programa especificado em RUN no possuir uma extenso, o Visual FoxPro procurar primeiro, no caminho do MS-DOS, um arquivo PIF (Program Information File) com o nome que voc indicou. Esse arquivo permite a execuo de um programa no Windows no Windows. Voc poder especificar parmetros para o programa, ou seja, se ele executado em uma janela ou na tela inteira, o total de memria alocado para o programa etc. Se o PIF for encontrado, o programa nele especificado ser executado com os parmetros PIF. Caso contrrio, ser feita uma procura no caminho do MS-DOS para encontrar um arquivo executvel com o nome que voc indicar.

Quando um PIF no encontrado, o Visual FoxPro utiliza o FOXRUN.PIF, um PIF instalado no diretrio do Visual FoxPro. O FOXRUN.PIF configurado para executar o programa em uma janela. possvel modificar o FOXRUN.PIF para que execute programas com outra configurao. FOXRUN.PIF O FOXRUN.PIF permite a execuo de programas e comandos do MS-DOS e do Windows a partir do Visual FoxPro. O FOXRUN.PIF deve estar no mesmo diretrio que VFP.EXE no Visual FoxPro. /N significa NOWAIT. Inclua a letra N (no substitua N por um valor numrico nem inclua K) para executar outro aplicativo do Windows. Por exemplo, a instruo a seguir abre o acessrio Mapa de caracteres do Windows: ! /N CHARMAP.EXE No exemplo a seguir, o Selecionador de cores aberto no Painel de controle do Windows: ! /N CONTROL COLOR Um aplicativo do Windows executado com RUN /N ou ! /N apresenta o mesmo comportamento que quando aberto atravs do Gerenciador de Programas ou do Gerenciador de Arquivos. Voc pode alternar entre o aplicativo e o Visual FoxPro ou o FoxPro para Windows utilizando as operaes padro do Windows. Para especificar como o aplicativo do Windows ser aberto, inclua um valor numrico opcional imediatamente aps /N. No inclua espaos entre /N e o valor numrico. A tabela a seguir lista os valores numricos que podem ser includos e descreve o estado do aplicativo do Windows quando ele aberto. Valor Atributos do aplicativo 1 2 3 4 7 Ativo e tamanho normal Ativo e minimizado Ativo e maximizado Inativo e tamanho normal Inativo e minimizado

Executando programas do MS-DOS no Visual FoxPro Como padro, o FOXRUN.PIF executa o programa do MS-DOS externo especificado em uma janela. Enquanto o programa ou comando do MS-DOS executado, o ttulo da janela Executar Comando do FoxPro. No Visual FoxPro, a janela Executar Comando do FoxPro fechada aps a execuo do comando ou do programa externo. Voc pode utilizar o editor PIF do Windows para personalizar o FOXRUN.PIF. O PIF pode ser editado para especificar se a janela Executar Comando do Visual FoxPro Inativo deve ser mantida aberta ou fechada (padro no Visual FoxPro) usando a caixa de verificao Fechar janela ao sair. Tambm possvel abrir programas externos em uma tela inteira selecionando Tela inteira, Alocar memria para o programa, etc. Consideraes de memria Como padro, o FOXRUN.PIF aloca um mnimo de 256K de memria para a execuo de um comando ou programa externo. Se voc no tiver 256K de memria

convencional livre, o Visual FoxPro exibir uma mensagem de erro. Para corrigir tal mensagem, experimente um ou mais dos procedimentos a seguir: Feche os aplicativos e arquivos para liberar memria adicional. Edite o FOXRUN.PIF para reduzir o total exigido de memria na caixa de texto KB Requerido.

Se o comando externo exigir mais de 256K, o MS-DOS exibir uma mensagem de erro na janela Executar Comando do Visual FoxPro. Para corrigir tal erro, edite o FOXRUN.PIF para aumentar o total de memria necessrio na caixa de texto KB Requerido.

$, operador Retorna verdadeiro (.T.) se uma expresso de caracteres estiver contida em outra expresso de caracteres; caso contrrio, retorna falso (.F.). Sintaxe cProcurarPor $ cProcurarEm Tipos de retorno Lgico Argumentos cProcurarPor Especifica a expresso procurada em cProcurarEm. cProcurarEm Especifica a expresso procurada para ver se ela contm cProcurarPor. Se cProcurarPor for localizado em cProcurarEm, $ retornar verdadeiro (.T.); caso contrrio, retornar falso (.F.). cProcurarPor e cProcurarEm podem ser variveis do tipo Caractere ou elementos de matriz, campos do tipo Caractere, literais de seqncia de caracteres ou campos Memo de qualquer tamanho. Os campos Memo podem ser manipulados como expresses de caracteres, campos em tabelas, variveis ou elementos de matriz. Por exemplo, se MEMO_FLD for um campo Memo, a linha abaixo ser aceitvel: LIST FOR 'FOX' $ UPPER(memo_fld)

Comentrios Se a expresso de caracteres no for localizada, ser retornado falso (.F.). O operador $ considera maisculas/minsculas e no otimizado por Rushmore.

%, operador Retorna o resto (mdulo) obtido pela diviso de uma expresso numrica por outra. Sintaxe nDividendo % nDivisor Argumentos nDividendo Especifica o dividendo (a expresso numrica que est sendo dividida). O nmero de casas decimais em nDividendo determina o nmero de casas decimais no resultado. nDivisor Especifica o divisor (a expresso numrica que divide o dividendo nDividendo). Se nDivisor for positivo, ser retornado um nmero positivo; se nDivisor for negativo, ser retornado um nmero negativo. nDivisor no pode ser zero.

Comentrios O operador de mdulo (%) e MOD( ) retornam resultados idnticos.

O operador de mdulo (%) um operador aritmtico. Outros operadores aritmticos so: + (adio), - (subtrao), * (multiplicao), / (diviso) e ^ (exponenciao). Quando esses operadores forem combinados em uma expresso numrica, % ter a mesma precedncia que * e /.

&&, comando

Indica o incio de um comentrio no-executvel em uma linha de um arquivo de programa. Sintaxe && [Comentrios]

Argumentos Comentrios Indica que o texto que se segue um comentrio em uma linha. Por exemplo: STORE (20*12) TO gnPayments && 20 anos de pagamentos mensais

A insero de comentrios em uma linha para denotar o fim dos comandos de programao estruturada IF ... ENDIF, DO e FOR ... ENDFOR melhora consideravelmente a legibilidade dos programas. Comentrios Coloque um ponto-e-vrgula (;) no final de cada linha de comentrio que continue na linha seguinte. No possvel colocar && e um comentrio depois do ponto-e-vrgula utilizado para continuar uma linha de comando em uma linha adicional. *, comando

Indica o incio de uma linha de comentrio no-executvel em um arquivo de programa. Sintaxe * [Comentrios] Argumentos Comentrios Especifica o comentrio na linha de comentrio. Por exemplo: * Isto um comentrio

Comentrios Coloque um ponto-e-vrgula (;) no final de cada linha de comentrio que continue na prxima linha.

@ ... CLEAR, comando

Limpa uma parte da janela principal do Visual FoxPro ou de uma janela definida pelo usurio. Sintaxe @ nLinha1, nColuna1 [CLEAR | CLEAR TO nLinha2, nColuna2]

Argumentos @ nLinha1, nColuna1 CLEAR Limpa uma rea retangular cujo canto superior esquerdo comea em nLinha1 e nColuna1 e continua at o canto inferior direito da janela principal do Visual FoxPro ou de uma janela definida pelo usurio. CLEAR TO nLinha2, nColuna2 Limpa uma rea retangular cujo canto superior esquerdo est em nLinha1 e nColuna1 e cujo canto inferior direito est em nLinha2 e nColuna2. Comentrios Se CLEAR ou CLEAR TO forem omitidos, o Visual FoxPro limpar nLinha1 da nColuna1 at o final da linha.

@ ... FILL, exemplo do comando O exemplo a seguir limpa a janela principal do Visual FoxPro e preenche uma rea com uma cor. ACTIVATE SCREEN CLEAR @ 4,1 FILL TO 10, 8 COLOR GR+/B @ ... SCROLL, comando

Move uma rea da janela principal do Visual FoxPro ou uma janela definida pelo usurio para cima, para baixo, para a esquerda ou para a direita. Sintaxe @ nLinha1, nColuna1 TO nLinha2, nColuna2 SCROLL

[UP | DOWN | LEFT | RIGHT] [BY nQuantidadeMovida]

Argumentos @ nLinha1, nColuna1 TO nLinha2, nColuna2 SCROLL Move uma rea retangular cujo canto superior esquerdo se encontra em nLinha1, nColuna1 e o canto inferior direito em nLinha2, nColuna2. UP | DOWN | LEFT | RIGHT Especifica a direo na qual a rea retangular ser movida. Se uma clusula de direo for omitida, a rea ser movida para cima. BY nQuantidadeMovida Especifica o nmero de linhas ou colunas que a rea retangular ser movida. Se BY nQuantidadeMovida for omitido, a regio ser movida uma linha ou coluna.

\ | \\, comando

Imprime ou exibe linhas de texto. Sintaxe \LinhaTexto Ou \\LinhaTexto

Argumentos \LinhaTexto Quando voc utiliza \, a linha de texto precedida por um retorno de carro e uma alimentao de linha. \\LinhaTexto Quando voc utiliza \\, a linha de texto no precedida por um retorno de carro e uma alimentao de linha. Qualquer espao antes de \ e \\ no includo na linha de sada, mas os espaos aps \ e \\ so includos. Voc pode incorporar uma expresso linha de texto. Se a expresso estiver entre delimitadores de mesclagem de textos (>, como padro) e SET TEXTMERGE estiver ativado (ON), a expresso ser avaliada e seu valor ser fornecido como texto. Comentrios Os comandos \ e \\ facilitam a mesclagem de textos no Visual FoxPro. A mesclagem de textos permite que voc oriente a sada do texto para um arquivo para criar cartas-formulrio ou programas.

Utilize \ e \\ para orientar a sada de uma linha de texto para o atual arquivo de sada da mesclagem de textos e para a tela. SET TEXTMERGE utilizado para especificar o arquivo de sada da mesclagem de textos. Se a mesclagem de textos no for direcionada a um arquivo, a linha de texto ser fornecida apenas para a janela principal do Visual FoxPro ou para a janela de sada ativa definida pelo usurio. SET TEXTMERGE NOSHOW suprime a sada para a janela principal do Visual FoxPro ou para a janela ativa definida pelo usurio. \ | \\, exemplo do comando CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE Customer && Abre tabela customer SET TEXTMERGE ON SET TEXTMERGE TO letter.txt \, \\ , \ \ \Caro \Texto adicional \ \Grato, \ \Companhia XYZ CLOSE ALL MODIFY FILE letter.txt NOEDIT

=, comando Avalia uma ou mais expresses. Sintaxe = Expresso1 [, Expresso2 ...]

Argumentos Expresso1 [, Expresso2 ...] Especifica a expresso ou as expresses avaliadas pelo comando =.

Comentrios O comando = avalia uma ou mais expresses, Expresso1, Expresso2 ... e descarta os valores de retorno. Essa opo particularmente til quando uma funo do Visual FoxPro ou uma funo definida pelo usurio tem um efeito desejado, mas no h necessidade de atribuir o valor de retorno da funo a uma varivel, elemento de matriz ou campo.

Por exemplo, para ativar o modo de insero, voc pode emitir o comando: = INSMODE(.T.) INSMODE normalmente retorna um valor verdadeiro (.T.) ou falso (.F.). No exemplo acima, a funo executada, mas o valor de retorno descartado. Se apenas uma expresso (Expresso1) for includa, o sinal de igualdade ser opcional. Observao O sinal de igualdade (=) pode ser utilizado de duas formas no-relacionadas. Pode-se utiliz-lo como um operador em expresses lgicas para fazer uma comparao ou para atribuir valores a variveis e a elementos de matriz. Nesses dois casos, o sinal de igualdade (=) um operador e no um comando.

ABS( ), funo

Retorna o valor absoluto da expresso numrica especificada. Sintaxe ABS(nExpresso)

Tipos de retorno Numrico Argumentos nExpresso Especifica a expresso numrica cujo valor absoluto a funo ABS( ) retorna. ABS( ), exemplo da funo ? ABS(-45) && Exibe 45 ? ABS(10-30) && Exibe 20 ? ABS(30-10) && Exibe 20 STORE 40 TO gnNumber1 STORE 2 TO gnNumber2 ? ABS(gnNumber2-gnNumber1)

&& Exibe 38

ACOS( ), funo

Retorna o arco co-seno de uma expresso numrica especificada. Sintaxe

ACOS(nExpresso) Tipos de retorno Numrico Argumentos nExpresso Especifica uma expresso numrica cujo arco co-seno a funo ACOS( ) retorna. O valor de nExpresso pode variar de 1 a +1. O valor retornado por ACOS( ) varia de 0 a pi (3,141592). O nmero de casas decimais retornado por ACOS( ) determinado por SET DECIMALS. Utilize RTOD( ) para converter radianos para graus. Comentrios O arco co-seno retornado em radianos. ACOS( ), exemplo da funo CLEAR ? RTOD(ACOS(0)) && Exibe 90.00 STORE -1 to gnArcAngle ? RTOD(ACOS(gnArcAngle)) && Exibe 180.00 ? RTOD(ACOS(SQRT(2)/2)) && Exibe 45.00 ACTIVATE SCREEN, comando

Envia toda a sada subseqente para a janela principal do Visual FoxPro, em vez de enviar para a janela definida pelo usurio que est ativa. Sintaxe ACTIVATE SCREEN Comentrios Utilize o comando ACTIVATE WINDOW para direcionar a sada para uma janela definida pelo usurio.

ACTIVATE WINDOW, comando

Exibe e ativa uma ou mais janelas definidas pelo usurio ou janelas do sistema do Visual FoxPro. Sintaxe

ACTIVATE WINDOW NomeJanela1 [, NomeJanela2 ...] | ALL [IN [WINDOW] NomeJanela3 | IN SCREEN] [BOTTOM | TOP | SAME] [NOSHOW] Argumentos NomeJanela1 [, NomeJanela2 ...] Especifica o nome de cada janela a ser ativada. Separe os nomes das janelas com vrgulas. No Visual FoxPro, voc pode especificar o nome de uma barra de ferramentas para ativar a janela. Consulte SHOW WINDOW para obter uma lista de nomes das barras de ferramentas do Visual FoxPro. ALL Especifica que todas as janelas sejam ativadas. A ltima janela ativada a janela de sada ativa. IN [WINDOW] NomeJanela3 Especifica o nome da janela pai dentro da qual a janela colocada e ativada. A janela ativada torna-se uma janela filho. A janela pai pode ter vrias janelas filho. Uma janela filho ativada dentro de uma janela pai no pode ser movida para fora. Caso a janela pai seja movida, a janela filho ser movida junto com ela. Observao A janela pai deve estar visvel para que qualquer uma de suas janelas filho fique visvel. IN SCREEN Coloca e ativa uma janela na janela principal do Visual FoxPro. Uma janela pode colocada em uma janela pai, incluindo-se IN WINDOW em DEFINE WINDOW quando a janela for criada. A incluso da clusula IN SCREEN em ACTIVATE WINDOW substitui a clusula IN WINDOW em DEFINE WINDOW. BOTTOM | TOP | SAME Especifica onde as janelas so ativadas em relao a outras janelas anteriormente ativadas. Como padro, uma janela torna-se a janela frontal quando ativada. A incluso de BOTTOM coloca uma janela atrs de todas as outras janelas. TOP ir coloc-la na frente de todas as outras. SAME ativa uma janela sem afetar o seu posicionamento. NOSHOW Ativa e direciona a sada para uma janela sem exibir a janela. Comentrios Janelas definidas pelo usurio so criadas com DEFINE WINDOW. Quando uma janela ativada, ela passa a ser a janela frontal e toda a sada direcionada para ela. A sada pode ser direcionada apenas para uma janela de cada vez. A janela permanece como a janela de sada ativa at ser desativada ou liberada ou at que outra janela ou a janela principal do Visual FoxPro seja ativada. Os nomes de janelas definidas pelo usurio so exibidos na parte inferior do menu Janela. O nome da janela ativa, definida pelo usurio, est selecionada com uma marca de verificao. possvel colocar mais de uma janela ao mesmo tempo na janela principal do Visual FoxPro, mas a sada ser direcionada somente para a janela ativada por ltimo. Quando mais de uma janela estiver aberta, se a janela de sada ativa for desativada, ela ser removida da janela principal do Visual

FoxPro e a sada subseqente ser enviada para outra janela. Caso nenhuma janela de sada esteja ativa, a sada ser direcionada para a janela principal do Visual FoxPro. Para garantir que a sada seja direcionada para uma janela especfica quando a janela de sada ativa for desativada, voc deve ativar explicitamente a janela para a qual deseja enviar a sada com o comando ACTIVATE WINDOW. Todas as janelas ativadas so exibidas at que o comando DEACTIVATE WINDOW ou HIDE WINDOW seja executado para remov-las da tela. A emisso de qualquer um destes comandos remove as janelas da tela, mas no da memria. Para exibir novamente as janelas, execute o comando ACTIVATE WINDOW ou SHOW WINDOW. Para remover janelas da tela e da memria, utilize CLEAR WINDOWS, RELEASE WINDOWS ou CLEAR ALL. necessrio redefinir as janelas removidas da memria para coloc-las novamente na janela principal do Visual FoxPro. Voc pode utilizar ACTIVATE WINDOW para colocar as janelas do sistema na janela principal do Visual FoxPro ou em uma janela pai. As janelas do sistema a seguir podem ser abertas com ACTIVATE WINDOW: Comando Chamar pilha Sesso de dados De depurao Depurar sada Locais Rastrear Observar

Para ativar uma janela do sistema e/ou uma barra de ferramentas, coloque o Nome todo da janela do sistema ou da barra de ferramentas entre aspas. Por exemplo, para ativar a janela de depurao Chamar Pilha no Visual FoxPro, execute o comando a seguir: ACTIVATE WINDOW Chamar Pilha Utilize HIDE WINDOW ou RELEASE WINDOW para remover uma janela do sistema da janela principal do Visual FoxPro ou de uma janela pai. ACTIVATE WINDOW, exemplo do comando O exemplo a seguir define e ativa uma janela denominada output, colocando-a na janela principal do Visual FoxPro. O comando WAIT pausa a execuo, a janela oculta e, em seguida, reexibida. CLEAR DEFINE WINDOW output FROM 2,1 TO 13,75 TITLE 'Sada' ; CLOSE FLOAT GROW SHADOW ZOOM ACTIVATE WINDOW output

WAIT WINDOW 'Pressione qualquer tecla para ocultar a janela Sada' HIDE WINDOW output WAIT WINDOW 'Pressione qualquer tecla para exibir a janela Sada' SHOW WINDOW output WAIT WINDOW 'Pressione qualquer tecla para liberar a janela Sada' RELEASE WINDOW output ADATABASES( ), funo Coloca os nomes de todos os bancos de dados abertos e seus caminhos em uma matriz de varivel. Sintaxe ADATABASES(NomeMatriz) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz. Caso a matriz especificada no exista, o Visual FoxPro ir cri-la automaticamente. Caso a matriz exista e no seja grande o suficiente para conter todas as informaes de banco de dados, o Visual FoxPro aumentar automaticamente o tamanho da matriz para que comporte as informaes. Caso a matriz seja maior do que o necessrio, o Visual FoxPro ir trunc-la. Caso a matriz exista e ADATABASES( ) retorne 0, porque no h bancos de dados abertos, a matriz permanecer inalterada. Caso a matriz no exista e ADATABASES( ) retorne 0, a matriz no ser criada. Comentrios Os nomes de todos os bancos de dados abertos na sesso de dados atual so colocados em uma matriz de varivel. A funo ADATABASES( ) cria uma matriz bidimensional. A primeira coluna da matriz contm os nomes dos bancos de dados abertos e a segunda coluna contm os caminhos dos bancos de dados. ADATABASES( ) retorna o nmero de nomes de bancos de dados (linhas) na matriz. Caso nenhum banco de dados esteja aberto, ADATABASES( ) ir retornar 0 e a matriz no ser criada. ADATABASES( ), exemplo da funo O exemplo a seguir abre o banco de dados testdata e, em seguida, utiliza ADATABASES( ) para criar uma matriz denominada gaDatabase contendo os nomes de todos os bancos de dados abertos. SET PATH TO (HOME( ) + 'samples\data\') && Define o caminho para o banco de dados OPEN DATABASE testdata && Abre o banco de dados CLEAR ? ADATABASES(gaDatabase) && Cria uma matriz de bancos de dados abertos DISPLAY MEMORY LIKE gadatabase && Exibe o contedo da matriz

CLOSE DATABASES ADD TABLE, comando Adiciona uma tabela livre ao banco de dados atual. Sintaxe ADD TABLE NomeTabela | ? [NAME NomeTabelaExtenso]

Argumentos NomeTabela Especifica o nome da tabela que est sendo adicionada ao banco de dados. ? Exibe a caixa de dilogo Abrir, na qual voc pode selecionar uma tabela a ser adicionada ao banco de dados. NAME NomeTabelaExtenso Especifica um nome extenso para a tabela. Nomes extensos podem conter at 128 caracteres, podendo ser utilizados no lugar de nomes de arquivos reduzidos com extenso .DBF. Comentrios Depois que for adicionada ao banco de dados, voc poder executar as mesmas operaes na tabela assim como em qualquer outra tabela. Uma vez adicionada ao banco de dados, a tabela no estar mais livre. No entanto, ser possvel liberar qualquer tabela do banco de dados ao se executar REMOVE TABLE. A tabela que est sendo adicionada: Deve ser um arquivo .DBF vlido. No pode ter o mesmo nome de uma tabela existente no banco de dados aberto, a menos que seja atribudo tabela um nome extenso nico. No pode existir em outro banco de dados. Utilize REMOVE TABLE para remover a tabela do outro banco de dados.

O banco de dados ao qual a tabela est sendo adicionada no pode estar envolvido em uma transao.

ADD TABLE, exemplo do comando O exemplo a seguir cria dois bancos de dados denominados mydbc1 e mydbc2 e uma tabela denominada table1. Ao ser criada, a tabela adicionada a mydbc1. A tabela ento fechada e removida de mydbc1. Em seguida, ADD TABLE utilizado para adicionar a tabela a mydbc2. RENAME TABLE utilizado para mudar o nome da tabela de table1 para table2.

CREATE DATABASE mydbc1 CREATE DATABASE mydbc2 SET DATABASE TO mydbc1 CREATE TABLE table1 (cField1 C(10), n N(10)) && Adiciona tabela a mydbc1 CLOSE TABLES && Uma tabela deve estar fechada para ser removida de um banco de dados REMOVE TABLE table1 SET DATABASE TO mydbc2 ADD TABLE table1 RENAME TABLE table1 TO table2

ADEL( ), funo

Exclui um elemento de uma matriz unidimensional ou uma linha, ou coluna de uma matriz bidimensional. Sintaxe ADEL(NomeMatriz, nNmeroElemento [, 2]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica a matriz da qual a linha, coluna ou o elemento excludo. nNmeroElemento Especifica o nmero do elemento, linha ou coluna a ser excludo da matriz. Para excluir uma coluna da matriz, inclua o argumento opcional 2. Para obter maiores informaes sobre como fazer referncia a elementos em uma matriz, consulte DIMENSION. 2 Exclui uma coluna da matriz. Comentrios A excluso de um elemento, linha ou coluna de uma matriz no altera o seu tamanho; em vez disso, as linhas, colunas ou os elementos direita so movidos em direo ao incio da matriz e o ltimo elemento, linha ou coluna da matriz definido como falso (.F.). Caso o elemento, a linha ou coluna sejam excludos com sucesso, retorna o nmero 1. ADEL( ), exemplo da funo

O exemplo a seguir cria e preenche uma matriz e, em seguida, procura por um determinado nome de empresa que, se encontrado, ser removido da matriz. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre tabela customer SELECT company FROM customer ; WHERE country = 'UK' ; INTO ARRAY gaCompanies gnCount = _TALLY gcName = 'Seven Seas Imports' CLEAR DISPLAY MEMORY LIKE gaCompanies gnPos = ASCAN(gaCompanies, gcName) && Procura pela empresa IF gnPos != 0 * Empresa encontrada, remova-a da matriz = ADEL(gaCompanies, gnPos) gnCount = gnCount - 1 ENDIF DISPLAY MEMORY LIKE gaCompanies ADIR( ), funo

Coloca informaes sobre arquivos em uma matriz e, em seguida, retorna o nmero de arquivos. Sintaxe ADIR(NomeMatriz [, cEstruturaArquivo [, cAtributo]]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz. Se a matriz includa no existir, o Visual FoxPro ir cri-la automaticamente. Se existir e no for suficientemente grande para conter todas as informaes, o Visual FoxPro aumentar, automaticamente, o seu tamanho para que comporte as informaes. Se a matriz for maior do que o necessrio, o Visual FoxPro ir trunc-la. Se a matriz existir e ADIR( ) retornar a 0 por no ter localizado nenhum arquivo correspondente, a matriz permanecer inalterada. Se no existir e ADIR( ) retornar a 0, a matriz no ser criada. A tabela a seguir descreve os contedos e tipos de dados de cada coluna da matriz: Coluna Contedo da matriz 1 2 Tipo de dados

Nomes dos arquivos Caractere Tamanho dos arquivos Numrico

3 Datas da ltima modificao Data 4 Horrio da ltima modificao Caractere 5 Atributos dos arquivos Caractere A ltima coluna da matriz contm os atributos dos arquivos correspondentes. Cada atributo de arquivo expresso por uma letra e um arquivo pode ter mais de um atributo. A tabela abaixo indica o atributo de arquivo que cada letra representa: Letra Atributo

A Arquivo - leitura/gravao H Oculto R Somente para leitura S Sistema D Diretrio ou pasta cEstruturaArquivo Especifica uma estrutura de arquivo para que voc possa armazenar informaes sobre arquivos com nomes ou extenses correspondentes a um critrio de pesquisa. Por exemplo, o critrio pode ser todas as tabelas, todos os arquivos de texto, todos os arquivos com nomes que comeam pela letra A e assim por diante. Estas pesquisas gerais so feitas incluindo-se os caracteres curinga * e ? em cEstruturaArquivo . O ponto de interrogao representa um nico caractere e o asterisco representa qualquer quantidade de caracteres. Pode-se utilizar qualquer quantidade de caracteres curinga em qualquer posio dentro da estrutura de arquivo. Voc pode especificar uma unidade e/ou diretrio para pesquisar nomes de arquivo correspondentes. Se a unidade e o diretrio no forem especificados, o Visual FoxPro colocar as informaes sobre os arquivos do diretrio atual na matriz. cAtributo Especifica a incluso de subdiretrios e arquivos ocultos ou do sistema. cAtributo pode conter qualquer combinao de D, H e S. A incluso de D retorna nomes de subdiretrios do diretrio atual, alm dos nomes de arquivos correspondentes estrutura de arquivo especificado em cEstruturaArquivo. A incluso de H retorna informaes sobre arquivos ocultos que correspondem estrutura de arquivo especificada em cEstruturaArquivo. A incluso de S retorna informaes sobre arquivos do sistema correspondentes estrutura de arquivo especificada em cEstruturaArquivo. Inclua uma seqncia vazia em cEstruturaArquivo para retornar somente nomes de subdiretrios, arquivos ocultos ou arquivos do sistema. Comentrios Para cada arquivo, ADIR( ) coloca na matriz o nome, o tamanho, a data e o horrio da ltima modificao e os atributos do arquivo. ADIR( ), exemplo da funo O exemplo a seguir utiliza ADIR( ) para criar uma matriz contendo informaes de banco de dados. Em seguida, os nomes dos bancos de dados so exibidos. CLOSE DATABASES

SET PATH TO (HOME( ) + 'samples\data') gnDbcnumber = ADIR(gaDatabase, '*.DBC') && Cria matriz CLEAR FOR nCount = 1 TO gnDbcnumber && Loop para nmero de bancos de dados ? gaDatabase(nCount,1) && Exibe nomes de bancos de dados ENDFOR SET PATH TO HOME( ) && Define caminho para diretrio do Visual FoxPro AELEMENT( ), funo

Retorna o nmero de um elemento de matriz a partir dos ndices do elemento. Sintaxe AELEMENT(NomeMatriz, nndiceLinha [, nndiceColuna]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz cujo nmero do elemento voc deseja retornar. nndiceLinha Especifica o ndice de linha. Se a matriz for unidimensional, AELEMENT( ) ir retornar ao mesmo valor de nndiceLinha. Se voc incluir apenas nndiceLinha e ele for maior do que o nmero de linhas na matriz, o Visual FoxPro exibir uma mensagem de erro. nndiceColuna Especifica o ndice de coluna. Se a matriz for bidimensional, inclua nndiceLinha e nndiceColuna. Comentrios Voc pode referir-se a um elemento de uma matriz bidimensional de duas maneiras. O primeiro mtodo utiliza dois ndices para especificar a posio da linha e da coluna do elemento na matriz e o segundo mtodo utiliza o nmero de um nico elemento. AELEMENT( ) retorna o nmero do elemento quando fornecido com ndices de linha e coluna de um elemento. As funes do Visual FoxPro ADEL( ), ADIR( ), AFIELDS( ), AINS( ), ALEN( ), ASCAN( ), ASORT( ) e ASUBSCRIPT( ) podem manipular matrizes bidimensionais e exigem que a referncia aos elementos seja feita pelo nmero do elemento. AELEMENT( ) facilita a converso de ndices para um nmero de elemento para uso por meio dessas funes. Os ndices de linha e coluna correspondentes podem ser retornados de um nmero de elemento com ASUBSCRIPT( ).

O exemplo a seguir ilustra a criao de uma matriz com duas linhas e trs colunas. DISPLAY MEMORY exibe o contedo dos elementos da matriz listados na ordem dos nmeros de elementos. DIMENSION gaMyArray(2,3) DISPLAY MEMORY LIKE gaMyArray gaMyArray Pub A ( 1, 1) L .F. (elemento nmero 1) ( 1, 2) L .F. (elemento nmero 2) ( 1, 3) L .F. (elemento nmero 3) ( 2, 1) L .F. (elemento nmero 4) ( 2, 2) L .F. (elemento nmero 5) ( 2, 3) L .F. (elemento nmero 6) Pode-se fazer referncia a um elemento pelos seus ndices ou pelo seu nmero de elemento. Os comandos STORE INVOICE TO gaMyArray(2, 1) e STORE INVOICE TO gaMyArray(4) armazenam a seqncia de caracteres INVOICE no mesmo elemento de matriz. Em matrizes unidimensionais, o nmero do elemento idntico ao seu ndice de linha nica. No necessrio utilizar AELEMENT( ) com matrizes unidimensionais.

AERROR( ), funo Cria uma matriz de varivel que contm informaes sobre o erro mais recente do ODBC, OLE ou Visual FoxPro. Sintaxe AERROR(NomeMatriz) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz criada por AERROR( ). Comentrios A funo AERROR( ) cria uma matriz com seis colunas e retorna o nmero de linhas da matriz. O tipo de erro ocorrido determina o nmero de linhas da matriz. A tabela a seguir descreve o contedo de cada elemento quando ocorre um erro do Visual FoxPro. Na ocorrncia de um erro, a matriz conter uma linha. Nmero do elemento 1 2 Descrio

Numrico. Contm o nmero do erro. Idntico ao valor retornado por ERROR( ). Caractere. O texto da mensagem de erro. Idntico ao valor retornado por MESSAGE( ).

3 O valor nulo. No entanto, se o erro possuir um parmetro de erro adicional, ir conter o texto do parmetro de erro. Idntico ao valor retornado por SYS(2018). 4 O valor nulo. No entanto, quando apropriado, contm o nmero da rea de trabalho em que o erro ocorreu. 5 O valor nulo. No entanto, se um disparador falhar (erro 1539), ir conter um dos valores numricos abaixo: 1 - Erro no Disparador de insero. 2 - Erro no Disparador de atualizao. 3 - Erro no Disparador de excluso. 6 O valor nulo. 7 O valor nulo. A tabela a seguir descreve o contedo de cada elemento quando ocorrem os erros de OLE nmero 1427 ou 1429. Nestes casos, a matriz contm uma linha. Nmero do elemento Descrio

1 Numrico. Contm 1427 ou 1429. 2 Caractere. O texto da mensagem de erro do Visual FoxPro. 3 Caractere. O texto da mensagem de erro de OLE. 4 Caractere. O nome do aplicativo (Microsoft Excel, por exemplo). 5 O valor nulo ou Caractere. Contm o nome do arquivo de Ajuda do aplicativo em que podem ser encontradas maiores informaes sobre o erro, se as informaes estiverem disponveis no aplicativo; caso contrrio, contm o valor nulo. 6 O valor nulo ou Caractere. Contm o identificador de contexto da Ajuda para o tpico apropriado, se as informaes estiverem disponveis no aplicativo; caso contrrio, contm o valor nulo. 7 Numrico. Um nmero de exceo OLE 2.0. A tabela a seguir descreve o contedo de cada elemento quando ocorre um erro do ODBC de nmero 1526. Neste caso, a matriz contm duas ou mais linhas; uma linha para cada erro do ODBC. Nmero do elemento 1 2 3 4 5 6 7 Descrio

Numrico. Contm 1526. Caractere. O texto da mensagem de erro. Caractere. O texto da mensagem de erro do ODBC. Caractere. O estado atual do ODBC SQL. Numrico. O nmero do erro da fonte de dados do ODBC. Numrico. O identificador de conexo do ODBC. O valor nulo.

AERROR( ), exemplo da funo O exemplo a seguir utiliza ON ERROR para especificar uma rotina de manipulao de erros denominada errhand. Um erro gerado emitindo-se um comando com erro de ortografia (BRWS). A rotina de manipulao de erros errhand utiliza AERROR( ) para criar uma matriz contendo informaes de erro e essa informao , ento, exibida. ON ERROR DO errhand && errhand o procedimento para manipular erros

BRWS && Causa um erro de sintaxe ON ERROR && Restaura o manipulador de erros do sistema

PROCEDURE errhand = AERROR(aErrorArray) && Dadas do erro mais recente CLEAR ? 'O erro apresentou as seguintes informaes' && Exibe mensagem FOR n = 1 TO 7 && Exibe todos os elementos da matriz ? aErrorArray(n) ENDFOR

AFIELDS( ), funo

Coloca as informaes sobre a estrutura da tabela atual em uma matriz e retorna o nmero de campos da tabela. Sintaxe AFIELDS(NomeMatriz [, nreaTrabalho | cAliasTabela]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica uma matriz na qual so colocadas informaes sobre a estrutura da tabela. Se a matriz includa em AFIELDS( ) no existir, o Visual FoxPro a criar automaticamente. Se existir, mas no for grande o bastante para conter as informaes retornadas por AFIELDS( ), o tamanho da matriz aumentado automaticamente para acomodar as informaes. nreaTrabalho Especifica a rea de trabalho da tabela cujas informaes de estrutura so colocadas em uma matriz. cAliasTabela Especifica o alias da tabela cujas informaes de estrutura so colocadas em uma matriz. Se voc omitir nreaTrabalho e cAliasTabela, as informaes de estrutura colocadas em uma matriz diro respeito tabela na rea de trabalho selecionada atualmente. A tabela a seguir descreve o que cada coluna da matriz contm e o tipo de dados da informao armazenada em cada coluna. Uma linha criada para cada campo da tabela. Nmero da coluna Informao do campo Tipo de dados Caractere

1 Nome do campo 2 Tipo do campo: C = Caractere D = Data L = Lgico

M = Memo N = Numrico F = Flutuante I = Inteiro B = Duplo Y = Moeda T = DataHora G = Geral Caractere 3 Largura do campo Numrico 4 Casas decimais Numrico 5 Valor nulo permitido Lgico 6 Converso de pgina de cdigo no permitida Lgico 7 Regra de validao de campo Caractere 8 Texto de validao de campo Caractere 9 Valor padro do campo Caractere 10 Regra de validao da tabela Caractere 11 Texto de validao da tabela Caractere 12 Nome de tabela extenso Caractere 13 Expresso Disparador de insero Caractere 14 Expresso Disparador de atualizao Caractere 15 Expresso Disparador de excluso Caractere 16 Comentrio da tabela Caractere Comentrios AFIELDS( ) retorna o nmero de campos da tabela. A matriz contm 11 colunas e um nmero de linhas igual ao nmero de campos da tabela. Voc pode utilizar COPY STRUCTURE EXTENDED para colocar informaes similares em uma tabela em vez de matriz. AFIELDS( ), exemplo da funo O exemplo a seguir cria uma matriz denominada gaMyArray contendo informaes sobre os campos na tabela customer. Os nomes dos campos so exibidos. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE Customer && Abre tabela customer gnFieldcount = AFIELDS(gaMyArray) && Cria matriz CLEAR FOR nCount = 1 TO gnFieldcount ? gaMyArray(nCount,1) && Exibe nomes de campo ENDFOR AFONT( ), funo Coloca as informaes sobre as fontes disponveis em uma matriz. Sintaxe

AFONT(NomeMatriz [, cNomeFonte [, nTamanhoFonte]]) Tipos de retorno Lgico Argumentos NomeMatriz Especifica a matriz de varivel em que so colocados os nomes de fontes disponveis. Se a matriz no for suficientemente grande para conter todas as fontes, o Visual FoxPro aumenta, automaticamente, o tamanho da matriz. Se voc especificar uma matriz bidimensional j existente, o Visual FoxPro mudar a matriz para uma matriz unidimensional. Se a matriz for criada com sucesso, AFONT( ) retornar verdadeiro (.T.); caso contrrio, retornar falso (.F.). cNomeFonte Especifica uma fonte para a qual a informao ser colocada na matriz. Se a fonte que voc especificar suportar apenas tamanhos de fonte discretos (8 pontos, 10 pontos, ...), os tamanhos sero armazenados na matriz e AFONT( ) retornar verdadeiro (.T.). Se a fonte especificada for dimensionvel (suportar valores fracionrios de tamanho), a matriz ter um nico elemento contendo -1 e AFONT( ) retornar verdadeiro (T.). Se a fonte que voc especificar no estiver disponvel, a matriz no ser criada e AFONT( ) retornar falso (.F.). nTamanhoFonte Especifica um tamanho para a fonte determinada em cNomeFonte. Se o tamanho da fonte nTamanhoFonte estiver disponvel para a fonte especificada em nTamanhoFonte, a matriz ter um nico elemento contendo um valor verdadeiro (.T.) e AFONT( ) retornar verdadeiro (.T.). Se o tamanho no estiver disponvel para a fonte especificada, a matriz no ser criada e AFONT( ) retornar falso (.F.). Comentrios AFONT( ) coloca os nomes de fontes disponveis em uma matriz e tambm pode ser utilizada para determinar os tamanhos possveis de fontes ou se uma fonte dimensionvel. Utilize GETFONT( ) para exibir uma caixa de dilogo contendo as fontes disponveis, seus tamanhos e estilos. AFONT( ), exemplo de funo O exemplo a seguir utiliza AFONT( ) para criar uma matriz contendo os nomes de todas as fontes disponveis. O nome de cada fonte exibido, juntamente com um exemplo da fonte. Se houver mais de 10 fontes instaladas, somente as 10 primeiras sero exibidas. CLEAR =AFONT(gaFontArray) && Matriz contendo nomes de fonte gnNumFonts = ALEN(gaFontArray) && Nmero de fontes IF gnNumFonts > 10

gnNumFonts = 10 && Exibe primeiras 10 fontes ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Exibe nome da fonte ?? ' Este um exemplo de ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR

AINS( ), funo Insere um elemento em uma matriz unidimensional ou uma linha ou coluna em uma matriz bidimensional. Sintaxe AINS(NomeMatriz, nNmeroElemento [, 2]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz na qual o elemento inserido. nNmeroElemento Especifica onde o novo elemento, linha ou coluna inserido na matriz. Para inserir um elemento em uma matriz unidimensional, inclua NomeMatriz e o elemento nNmeroElemento onde ocorre a insero. O novo elemento inserido imediatamente antes do elemento nNmeroElemento. Para inserir uma linha em uma matriz bidimensional, inclua NomeMatriz e o nmero da linha nNmeroElemento onde ocorre a insero. A nova linha inserida imediatamente antes da linha nNmeroElemento. Para obter maiores informaes sobre como fazer referncia a um elemento de matriz atravs de seus ndices, consulte DIMENSION. 2 Insere uma coluna em uma matriz bidimensional. A nova coluna inserida imediatamente antes da coluna especificada com nNmeroElemento. Comentrios Inserir um elemento, linha ou coluna em uma matriz no altera o tamanho da matriz. Os elementos, linhas ou colunas direita so deslocados para o fim da matriz e seu o ltimo elemento, linha ou coluna descartado. O elemento, linha ou coluna recm-inserido inicializado com um valor falso (.F.). AINS( ) retornar 1 se o elemento, linha ou coluna for inserido com sucesso. AINS( ), exemplo da funo

O exemplo a seguir cria e preenche uma matriz com nomes de empresas e procura um nome de empresa especfico na matriz. Se no for encontrado, o nome ausente ser adicionado matriz. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre a tabela customer SELECT company FROM customer ; WHERE country = 'Germany' ; INTO ARRAY gaCompanies gnCount = _TALLY gcName = 'Seven Seas Imports' CLEAR DISPLAY MEMORY LIKE gaCompanies IF ASCAN(gaCompanies, gcName) = 0 && Procura pela empresa *** Empresa no encontrada-adicione-a *** DIMENSION gaCompanies[gnCount+1,1] = AINS(gaCompanies, gnCount+1) gaCompanies[gnCount+1] = gcName ENDIF DISPLAY MEMORY LIKE gaCompanies

ALEN( ), funo

Retorna o nmero de elementos, linhas ou colunas de uma matriz. Sintaxe ALEN(NomeMatriz [, nAtributoMatriz]) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz. Se voc incluir apenas o nome da matriz, ALEN( ) retornar o nmero de elementos da matriz. nAtributoMatriz Determina se ALEN( ) retorna o nmero de elementos, linhas ou colunas da matriz, de acordo com os valores para nAtributoMatriz fornecidos a seguir: 0 1 Retorna o nmero de elementos da matriz. Omitir nAtributoMatriz equivale a especificar 0. Retorna o nmero de linhas da matriz.

2 Retorna o nmero de colunas da matriz. Se a matriz for unidimensional, ALEN( ) retornar 0 (sem colunas). ALEN( ), exemplo da funo O exemplo a seguir utiliza AFONT( ) para criar uma matriz contendo os nomes de todas as fontes disponveis. ALEN( ) utilizado para determinar o nmero de linhas na matriz. O nome de cada fonte exibido, juntamente com um exemplo da fonte. Se houver mais de 10 fontes instaladas, somente as 10 primeiras sero exibidas. CLEAR =AFONT(gaFontArray) && Matriz contendo nomes de fonte gnNumFonts= ALEN(gaFontArray) && Nmero de fontes IF gnNumFonts > 10 gnNumFonts = 10 && Exibe as primeiras 10 fontes ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Exibe nome da fonte ?? ' Este um exemplo da fonte ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR

ALLTRIM( ), funo Remove os espaos em branco do incio e do final da expresso de caracteres especificada e retorna a expresso com os espaos removidos como uma seqncia de caracteres. Sintaxe ALLTRIM(cExpresso) Tipos de retorno Caractere Argumentos cExpresso Especifica a expresso de caracteres da qual sero retirados os espaos em branco iniciais e finais. Comentrios ALLTRIM( ) pode ser utilizado para assegurar que os espaos em branco sero removidos dos dados inseridos pelo usurio. ALLTRIM( ), exemplo da funo

O exemplo a seguir utiliza AFONT( ) para criar uma matriz contendo os nomes de todas as fontes disponveis. ALLTRIM( ) utilizada para remover espaos iniciais e finais dos nomes de fonte. O nome de cada fonte com espaos removidos ser exibido, juntamente com um exemplo da fonte. Se mais de 10 fontes estiverem instaladas, somente as 10 primeiras sero exibidas. CLEAR =AFONT(gaFontArray) && Matriz contendo nomes de fonte gnNumFonts= ALEN(gaFontArray) && Nmero de fontes IF gnNumFonts > 10 gnNumFonts = 10 && Exibe 10 primeiras fontes ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Exibe nome da fonte ?? ' Isto um exemplo de ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR APPEND FROM ARRAY, comando Adiciona tabela atualmente selecionada um registro para cada linha de uma matriz e preenche cada registro com dados da linha da matriz correspondente. Sintaxe APPEND FROM ARRAY NomeMatriz [FOR lExpresso] [FIELDS ListaCampos] Argumentos NomeMatriz Especifica o nome da matriz que contm os dados que devem ser copiados para os novos registros. Novos registros so adicionados tabela at que todas as linhas da matriz tenham sido includas. FOR lExpresso Especifica uma condio para a incluso de registros da matriz. lExpresso deve conter o nome de um campo de destino em sua expresso condicional. Antes da incluso de uma linha da matriz em um registro da tabela, o elemento de matriz correspondente ao campo de destino especificado em lExpresso verificado para ver se corresponde condio em lExpresso. Caso o elemento de matriz satisfaa a condio, ser includo um registro. Caso o elemento de matriz no satisfaa a condio, a linha da matriz no ser includa e a linha seguinte ser verificada para ver se corresponde condio. FIELDS ListaCampos Especifica que apenas os campos em ListaCampos sero atualizados a partir da matriz. O primeiro campo da lista ser atualizado com o contedo do primeiro elemento da matriz, o segundo campo ser atualizado com o segundo elemento, e assim sucessivamente.

Comentrios Campos dos tipos Memo e Geral so ignorados em APPEND FROM ARRAY. Quando uma tabela aberta para uso compartilhado, APPEND FROM ARRAY bloqueia o cabealho da tabela enquanto os registros so adicionados. Caso a matriz seja unidimensional, APPEND FROM ARRAY adicionar um registro tabela. O contedo do primeiro elemento da matriz preenche o primeiro campo do registro recm-adicionado, o contedo do segundo elemento da matriz preenche o segundo campo do registro, e assim por diante. Caso o nmero de elementos da matriz unidimensional seja maior do que o nmero de campos da tabela, os elementos adicionais sero ignorados. Caso o nmero de campos da tabela seja maior do que o nmero de elementos da matriz, os campos adicionais sero inicializados com o valor vazio padro. A seguir, so apresentados os valores vazios padro para cada tipo de campo: Tipo de campo Valor padro Caractere Espaos Numrico 0 Moeda 0 Flutuante 0 Inteiro 0 Duplo 0 Data Data vazia (ex.: CTOD('')) DataHora DataHora vazia (ex.: CTOT('')) Lgico Falso (.F.) Memo Vazio (sem contedo)

Caso a matriz seja bidimensional, APPEND FROM ARRAY adicionar um registro tabela para cada linha da matriz. Por exemplo, caso a matriz tenha quatro linhas, quatro novos registros sero includos na tabela. O contedo da primeira coluna da matriz preenche o primeiro campo dos registros recmadicionados, a segunda coluna da matriz preenche o segundo campo dos novos registros, e assim sucessivamente. Por exemplo, se a matriz tiver quatro linhas e trs colunas, os elementos da primeira coluna da matriz preenchero o primeiro campo de cada um dos quatro novos registros includos na tabela. Caso o nmero de colunas da matriz bidimensional seja maior do que o nmero de campos da tabela, as colunas adicionais sero ignoradas. Caso o nmero de campos da tabela seja maior do que o nmero de colunas da matriz, os campos adicionais sero inicializados com valores vazios. APPEND FROM ARRAY pode preencher um campo, mesmo que o tipo de dado do elemento da matriz correspondente no corresponda ao tipo de dado do campo, desde que os dados do elemento de matriz sejam compatveis com o tipo de dado do campo correspondente. Caso os dados no sejam compatveis, o campo ser inicializado com um valor vazio. Exemplo de incompatibilidade nos tipos de dados

Este exemplo cria uma tabela e, em seguida, utiliza APPEND FROM ARRAY para incluir um registro na nova tabela. LOCAL ARRAY aNewRec(3) * Criar uma tabela CREATE TABLE Test FREE (Object C(10), Color C(16), SqFt n(6,2)) SCATTER TO aNewRec BLANK && Cria uma nova matriz a partir da tabela aNewRec[1]="Box" && Preenche a matriz aNewRec[2]="Red" aNewRec[3]=12.5 APPEND FROM ARRAY aNewRec && Adiciona o registro contendo contedo da matriz && tabela

APPEND FROM, comando

Adiciona registros de outro arquivo no fim da tabela atualmente selecionada. Sintaxe APPEND FROM NomeArquivo | ? [FIELDS ListaCampos] [FIELDS ListaCampos] [[TYPE] [DELIMITED [WITH Delimitador | WITH BLANK | WITH TAB] | WITH CHARACTER Delimitador] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | XLS | XL5]] [AS nPginaCdigo] Argumentos NomeArquivo Especifica o nome do arquivo a partir do qual deve ser feita a incluso. Se voc no incluir uma extenso de nome de arquivo, ser considerada uma tabela do Visual FoxPro e a extenso padro .DBF. Se a tabela de origem da incluso for do Visual FoxPro, os registros dessa tabela marcados para excluso sero includos, desconsiderando a definio de SET DELETED. ? Exibe a caixa de dilogo Abrir, onde voc pode selecionar uma tabela de origem para a incluso. FIELDS ListaCampos Especifica para quais campos sero includos dados. FOR lExpresso Inclui um novo registro para cada registro da tabela selecionada atualmente para o qual lExpresso resulte em verdadeiro (.T.). Os registros so includos at chegar ao fim desta tabela. Se voc omitir FOR, o arquivo de origem inteiro ser includo na tabela. TYPE Especifica o tipo do arquivo a partir do qual est sendo feita a incluso. Embora seja necessrio especificar um tipo de arquivo se o arquivo a partir do qual a incluso estiver sendo feita no for uma tabela do Visual FoxPro, no ser necessrio incluir a palavra-chave TYPE. possvel

fazer incluses a partir de uma ampla variedade de tipos de arquivos diferentes, inclusive arquivos de texto ASCII delimitados, onde voc pode especificar um delimitador de campo. Se o arquivo a partir do qual voc est fazendo a incluso no tiver a extenso padro usual para esse tipo de arquivo, o nome do arquivo dever incluir a respectiva extenso. Por exemplo, as planilhas do Microsoft Excel normalmente tm a extenso .XLS. Se a planilha do Excel a partir da qual voc est fazendo incluses tiver uma extenso diferente da extenso .XLS esperada, certifique-se de especificar essa extenso. Observao Ao fazer incluses a partir de uma planilha, os dados desta devem ser armazenados na ordem principal das linhas e no na ordem principal das colunas. Isso permite que os dados da planilha includa correspondam estrutura da tabela. DELIMITED Especifica que o arquivo de origem dos dados a serem includos na tabela atual do Visual FoxPro delimitado. Um arquivo delimitado um arquivo de texto ASCII em que cada registro termina com um retorno de carro e uma alimentao de linha. Considera-se, como padro, que os contedos do arquivo esto separados um do outro por vrgulas (no inclua espaos extras antes ou depois das vrgulas) e que os valores dos campos de caractere esto delimitados tambm por aspas. Por exemplo: "Smith",9999999,"TELEFONE"

Considera-se que a extenso de arquivo .TXT para todos os arquivos delimitados. Voc poder importar datas de arquivos delimitados se as datas estiverem no formato apropriado. O formato de data assume o padro mm/dd/aa. A incluso da parte da data relativa ao sculo opcional. O Visual FoxPro importar uma data, como 12/25/95, que no inclui o sculo e ir considerar que a data est no sculo XX. Os delimitadores de data podem ser qualquer caractere no-numrico, exceto o delimitador que separa os campos no arquivo delimitado. As datas em outros formatos podero ser importadas se o seu formato corresponder a um formato de data disponvel em SET DATE. Para importar datas que no esto no formato padro, emita SET DATE com o formato de data correto antes de utilizar APPEND FROM. Para testar se um formato de data poder ser importado com sucesso, utilize-o com CTOD( ). Se a data for aceitvel para CTOD( ), ela ser importada corretamente. DELIMITED WITH Delimitador Indica que os campos de caractere esto delimitados por um caractere diferente de aspas. DELIMITED WITH BLANK Especifica arquivos que contm campos separados por espaos em vez de vrgulas. DELIMITED WITH TAB Especifica arquivos que contm campos separados por tabulaes em vez de vrgulas. DELIMITED WITH CHARACTER Delimitador Especifica os arquivos que contm campos delimitados pelo caractere especificado com Delimitador. Se Delimitador for um ponto-e-vrgula (o caractere usado no Visual FoxPro para indicar a continuao da linha de comando), coloque o

ponto-e-vrgula entre aspas. Voc tambm pode especificar as palavras-chaves BLANK e TAB para Delimitador. A clusula WITH Delimitador pode ser combinada com a clusula WITH CHARACTER. Por exemplo, o seguinte comando adiciona registros de um arquivo de texto com campos de caracteres delimitados com sublinhados e todos os campos delimitados com asteriscos: APPEND FROM mytxt.txt DELIMITADO COM _ ; WITH CHARACTER *

DIF Inclua DIF para importar dados de um arquivo .DIF (Data Interchange Format) do VisiCalc. Vetores (colunas) tornam-se campos da tabela selecionada atualmente e tuplas (linhas) tornam-se registros. Considera-se que os nomes de arquivos DIF tenham a extenso .DIF. FW2 Inclua FW2 para importar dados de um arquivo criado pelo Framework II. Considera-se que os nomes de arquivos FW2 tenham a extenso .FW2. MOD Inclua MOD para importar dados de um arquivo do Microsoft Multiplan verso 4.01. Os arquivos MOD so criados pelo Microsoft Multiplan verso 4.01, e considera-se que tenham a extenso .MOD. PDOX Inclua PDOX para importar dados de um arquivo de banco de dados do Paradox verses 3.5 ou 4.0. Considera-se que os nomes de arquivos do Paradox tenham a extenso .DB. RPD Inclua RPD para importar dados de um arquivo criado pelo RapidFile verso 1.2. Considerase que os nomes de arquivos do RapidFile tenham a extenso .RPD. SDF Inclua SDF para importar dados de um arquivo System Data Format. Um arquivo SDF um arquivo de texto ASCII em que os registros tm um comprimento fixo e terminam com um retorno de carro e uma alimentao de linha. Os campos no so delimitados. Considera-se que a extenso de arquivos SDF seja .TXT. SYLK Inclua SYLK para importar dados de um arquivo de formato SYLK (Symbolic Link) de intercmbio. Os arquivos SYLK so utilizados no Microsoft MultiPlan. As colunas do arquivo SYLK tornam-se campos da tabela do Visual FoxPro, e as linhas tornam-se registros. Os nomes de arquivos SYLK no tm extenso. WK1 Inclua WK1 para importar dados de uma planilha do Lotus 1-2-3 verso 2.x. Cada coluna da planilha torna-se um campo da tabela; cada linha da planilha torna-se um registro da tabela. Uma extenso de nome de arquivo .WK1 atribuda a uma planilha criada pelo Lotus 1-2-3 reviso 2.x. WK3 Inclua WK3 para importar dados de uma planilha do Lotus 1-2-3. Cada coluna da planilha torna-se um campo da tabela; cada linha da planilha torna-se um registro da tabela. Uma extenso de nome de arquivo .WK3 atribuda a uma planilha criada pelo Lotus 1-2-3 reviso 3.x. WKS Inclua WKS para importar dados de uma planilha do Lotus 1-2-3 reviso 1-A. Cada coluna da planilha torna-se um campo da tabela; cada linha da planilha torna-se um registro da tabela. Uma extenso de nome de arquivo .WKS atribuda a uma planilha criada pelo Lotus 1-2-3 reviso 1-A.

WR1 Inclua WR1 para importar dados de uma planilha do Lotus Symphony verso 1.1 ou 1.2. Cada coluna da planilha torna-se um campo da tabela, e cada linha torna-se um registro. Uma extenso de nome de arquivo .WR1 atribuda a uma planilha criada pelo Symphony verses 1.1 ou 1.2. WRK Inclua WRK para importar dados de uma planilha do Lotus Symphony verso 1.0. Cada coluna da planilha torna-se um campo da tabela, e cada linha torna-se um registro. Uma extenso de nome de arquivo .WRK atribuda a uma planilha criada pelo Symphony verso 1.0. XLS Inclua XLS para importar dados de uma planilha do Microsoft Excel. Cada coluna da planilha torna-se um campo da tabela, e cada linha torna-se um registro. A extenso .XLS atribuda a nomes de arquivos de planilha criados pelo Microsoft Excel. XL5 Inclua XL5 para importar dados do Microsoft Excel verso 5.0. As colunas da planilha se tornam campos da tabela, e as linhas tornam-se registros. Os arquivos de planilha criados no Microsoft Excel tm a extenso .XLS. AS nPginaCdigo Especifica a pgina de cdigo da tabela ou arquivo de origem. O Visual FoxPro copia o contedo da tabela ou arquivo de origem e, medida que copia os dados, converteos automaticamente na pgina de cdigo da tabela atual. Se voc especificar um valor para nPginaCdigo que no seja suportado, o Visual FoxPro ir gerar uma mensagem de erro. Pode-se utilizar GETCP( ) como nPginaCdigo para exibir a caixa de dilogo Pgina de cdigo, que permite especificar uma pgina de cdigo para a tabela ou arquivo includo. Se AS nPginaCdigo for omitido e o Visual FoxPro no conseguir determinar a pgina de cdigo da tabela ou arquivo de origem, ele copiar o contedo dessa tabela ou arquivo e, medida que copia os dados, ir convert-los automaticamente na pgina de cdigo atual do Visual FoxPro. Se SET CPDIALOG estiver ativado (ON), a tabela na rea de trabalho atualmente selecionada ser marcada com uma pgina de cdigo. Caso voc esteja fazendo a incluso a partir de uma tabela que no esteja marcada com uma pgina de cdigo, a caixa de dilogo Pgina de cdigo ser exibida, permitindo que voc selecione a pgina de cdigo da tabela a partir da qual est fazendo a incluso. A pgina de cdigo atual do Visual FoxPro pode ser determinada com CPCURRENT( ). Se AS nPginaCdigo for omitido e o Visual FoxPro conseguir determinar a pgina de cdigo da tabela ou do arquivo que est sendo includo, ele copiar o contedo da tabela ou do arquivo includo e, medida que copia os dados, ir convert-los automaticamente na pgina de cdigo da tabela atualmente selecionada. Se nPginaCdigo for 0, o Visual FoxPro ir considerar que a pgina de cdigo da tabela ou do arquivo que est sendo includo igual ao da tabela atualmente selecionada e no ser feita nenhuma converso para a pgina de cdigo atual do Visual FoxPro. Comentrios Se o arquivo do qual se faz a incluso for uma tabela criada pelo Visual FoxPro ou por uma verso anterior do FoxPro, ser considerada uma extenso .DBF. Se a tabela criada pelo Visual FoxPro ou por uma verso anterior do FoxPro no tiver a extenso .DBF, voc dever especificar a extenso. Caso o arquivo no seja uma tabela criada pelo Visual FoxPro ou por uma verso anterior do FoxPro, voc dever especificar o tipo de arquivo a partir do qual est fazendo a incluso.

Antes de fazer uma incluso a partir de uma tabela criada no dBASE IV ou no dBASE V que contenha um campo Memo, voc deve abrir a tabela no Visual FoxPro com USE. Quando aparecer a opo para converter o arquivo, selecione Sim. Se voc fizer a incluso a partir de uma tabela criada pelo Visual FoxPro ou por uma verso anterior do FoxPro, essa tabela poder ser aberta em uma outra rea de trabalho. Os registros marcados para excluso nessa tabela sero desmarcados aps a sua incluso. APPEND FROM, exemplo do comando No exemplo a seguir, a tabela customer aberta, sua estrutura copiada para uma tabela denominada backup, e backup aberta. Em seguida, o Visual FoxPro inclui todos os registros da Finlndia da tabela customer. Estes registros so copiados para um novo arquivo delimitado denominado TEMP.TXT. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre a tabela customer COPY STRUCTURE TO backup USE backup APPEND FROM customer FOR country = 'Finlndia' COPY TO temp TYPE DELIMITED MODIFY FILE temp.txt USE DELETE FILE backup.dbf DELETE FILE temp.txt APPEND MEMO, comando Copia o contedo de um arquivo texto para um campo Memo. Sintaxe APPEND MEMO NomeCampoMemo FROM NomeArquivo [OVERWRITE] [AS nPginaCdigo] Argumentos NomeCampoMemo Especifica o nome do campo Memo no qual o arquivo includo. FROM NomeArquivo Especifica o arquivo texto cujo contedo copiado para o campo Memo. Voc deve incluir o nome do arquivo texto inteiro, inclusive a extenso. OVERWRITE Substitui o contedo atual do campo Memo pelo contedo do arquivo. AS nPginaCdigo Especifica a pgina de cdigo do arquivo texto copiado para o campo Memo. O Visual FoxPro copia o contedo do arquivo texto e, medida que copia os dados para o campo Memo, converte-os automaticamente da pgina de cdigo especificada para a pgina de cdigo da tabela que contm o campo Memo. Se a tabela que contm o campo Memo no estiver marcada

com uma pgina de cdigo, o Visual FoxPro converter automaticamente os dados da pgina de cdigo especificada para a pgina de cdigo atual do Visual FoxPro. Se voc especificar um valor para nPginaCdigo que no seja suportado, o Visual FoxPro ir gerar uma mensagem de erro. Voc pode utilizar GETCP( ) em nPginaCdigo para exibir a caixa de dilogo Pgina de cdigo, que permite especificar uma pgina de cdigo para a tabela ou o arquivo includo. Se voc omitir a clusula AS nPginaCdigo ou especificar 0 para nPginaCdigo, no haver nenhuma converso de pgina de cdigo no arquivo texto. Comentrios Todo o contedo do arquivo texto ser includo no contedo do campo Memo especificado no registro atual se a opo Overwrite for omitida. APPEND MEMO, exemplo do comando No exemplo a seguir, os contedos do campo Memo notes so copiados para um arquivo denominado TEST.TXT. TEST.TXT e includos no contedo do campo Memo. Finalmente, os contedos de TEST.TXT substituem o contedo atual do campo Memo. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE employee && Abre a tabela Employee WAIT WINDOW 'Observaes de funcionrios no campo Memo - pressione ESC' NOWAIT MODIFY MEMO notes NOEDIT && Abre o campo Memo notes COPY MEMO notes TO test.txt && Cria o arquivo de teste a partir do campo Memo WAIT WINDOW 'Arquivos texto TEST.TXT - pressione ESC' NOWAIT MODIFY FILE test.txt NOEDIT && Abre o arquivo texto WAIT WINDOW 'Observaes de funcionrios agora acrescentadas- pressione ESC' NOWAIT APPEND MEMO notes FROM test.txt && Adiciona contedo do arquivo texto MODIFY MEMO notes NOEDIT && Exibe campo Memo novamente WAIT WINDOW 'Sobrescreve observaes de funcionrio- pressione ESC' NOWAIT APPEND MEMO notes FROM test.txt OVERWRITE && Substitui notes MODIFY MEMO notes NOEDIT NOWAIT DELETE FILE test.txt APPEND PROCEDURES, comando

Inclui procedimentos armazenados em um arquivo texto nos procedimentos armazenados no banco de dados atual. Sintaxe APPEND PROCEDURES FROM NomeArquivo [AS nPginaCdigo] [OVERWRITE]

Argumentos NomeArquivo Especifica o nome de um arquivo texto a partir do qual os procedimentos armazenados so includos. AS nPginaCdigo Especifica a pgina de cdigo do arquivo texto a partir do qual os procedimentos armazenados so includos. O Visual FoxPro copia o contedo do arquivo texto e, ao fazer isso, converte-o automaticamente na pgina de cdigo especificada. Se voc especificar um valor para nPginaCdigo que no seja suportado, o Visual FoxPro ir gerar uma mensagem de erro. Pode-se utilizar GETCP( ) em nPginaCdigo para exibir a caixa de dilogo Pgina de cdigo, que permite especificar uma pgina de cdigo para o arquivo texto a partir do qual os procedimentos armazenados so includos. Se voc omitir AS nPginaCdigo, o Visual FoxPro copiar o contedo do arquivo texto a partir do qual os procedimentos armazenados so includos e, ao fazer isso, ir convert-lo automaticamente na pgina de cdigo atual do Visual FoxPro. Para determinar a pgina de cdigo atual do Visual FoxPro, utilize CPCURRENT( ). Se nPginaCdigo for 0, o Visual FoxPro ir considerar que a pgina de cdigo do arquivo texto, a partir do qual os procedimentos armazenados so includos, a mesma pgina de cdigo do banco de dados atual, no ocorrendo nenhuma converso para a pgina de cdigo atual do Visual FoxPro. OVERWRITE Especifica que os procedimentos atuais armazenados no banco de dados so sobrescritos pelos do arquivo texto. Se voc omitir OVERWRITE, os procedimentos atuais armazenados no banco de dados no sero sobrescritos e os procedimentos armazenados no arquivo texto sero includos nos procedimentos j armazenados. Comentrios Utilize o comando APPEND PROCEDURES para modificar procedimentos armazenados em um banco de dados utilizando a linguagem de programao. Um banco de dados dever estar aberto e ativo quando APPEND PROCEDURES for emitido; caso contrrio, o Visual FoxPro ir gerar uma mensagem de erro. APPEND PROCEDURES, exemplo do comando O exemplo a seguir abre o banco de dados testdata. Uma tabela temporria, denominada mytablecom um nico campo Memo, criada; e REPLACE utilizado para colocar um procedimento armazenado denominado MyProcedure no campo Memo. COPY MEMO utilizado para criar um arquivo texto temporrio denominado MYTEMP.TXT, que contm o contedo do campo Memo. APPEND PROCEDURES utilizado para incluir o procedimento armazenado do arquivo texto temporrio no banco de dados. DISPLAY PROCEDURES exibe os procedimentos armazenados no banco de dados e, em seguida, a tabela e o arquivo texto temporrios so apagados. Observao: Para exibir ou editar procedimentos armazenados por meio da interface do usurio, utilize o Criador de bancos de dados. CLOSE DATABASES

* Abre o banco de dados testdata OPEN DATABASE SYS(2004)+"\samples\data\testdata" * Cria uma tabela livre, temporria com um campo Memo denominado mProcedure CREATE TABLE mytable FREE (mProcedure M) APPEND BLANK && Adiciona um registro em branco a mytable * Adiciona o comando PROCEDURE, nome e retorno de carro /alimentao de linha ao * campo Memo REPLACE mProcedure WITH "PROCEDURE MyProcedure" + CHR(13) + CHR(10) * Copia o contedo do campo Memo para um arquivo temporrio COPY MEMO mProcedure TO mytemp.txt USE && Fecha a tabela temporria APPEND PROCEDURES FROM mytemp.txt CLEAR && Copia o procedimento para o banco de dados

* Exibe os procedimentos associados com o banco de dados atual DISPLAY PROCEDURES DELETE FILE mytable.dbf && Apaga a tabela temporria DELETE FILE mytable.fpt && Apaga o arquivo memo da tabela temporria DELETE FILE mytemp.txt && Apaga o arquivo texto temporrio

APPEND, comando

Adiciona um ou mais registros novos ao fim de uma tabela. Sintaxe APPEND [BLANK] [IN nreaTrabalho | cAliasTabela] [NOMENU]

Argumentos BLANK Adiciona um registro em branco ao fim da tabela atual. O Visual FoxPro no abre uma janela de edio quando voc emite APPEND BLANK. Voc pode editar o novo registro com BROWSE, CHANGE ou EDIT. IN nreaTrabalho Especifica a rea de trabalho da tabela na qual um novo registro ser includo. IN cAliasTabela Especifica o alias da tabela na qual um novo registro ser includo.

Se voc omitir nreaTrabalho e cAliasTabela, um novo registro ser includo na tabela na rea de trabalho selecionada no momento. Se voc emitir APPEND, um registro em branco ser adicionado tabela especificada com nreaTrabalho ou cAliasTabela e a tabela ser automaticamente selecionada. Se voc emitir APPEND BLANK, um registro em branco ser adicionado tabela especificada com nreaTrabalho ou cAliasTabela e a tabela no ser selecionada. NOMENU Especifica que o ttulo do menu Tabela ser removido da barra de menus do sistema, evitando alteraes no formato da janela de edio. Comentrios Quando voc emite APPEND ou APPEND BLANK e uma tabela no est aberta na rea de trabalho selecionada no momento, a caixa de dilogo Abrir exibida, de forma que voc possa escolher uma tabela na qual inclua registros. APPEND abre uma janela de edio para que voc possa fornecer dados a um ou mais novos registros. Quando voc adiciona um novo registro, o Visual FoxPro atualiza todos os ndices abertos. APPEND, exemplo do comando O exemplo a seguir utiliza APPEND BLANK para criar uma tabela com 10 registros contendo valores aleatrios e, em seguida, exibe os valores mximo e mnimo na tabela. CLOSE DATABASES CREATE TABLE Random (cValue N(3)) FOR nItem = 1 TO 10 && Inclui 10 registros APPEND BLANK REPLACE cValue WITH 1 + 100 * RAND( ) && Insere valores aleatrios ENDFOR CLEAR LIST && Exibe os valores gnMaximum = 1 && Inicializa valor mnimo gnMinimum = 100 && Inicializa valor mximo SCAN gnMinimum = MIN(gnMinimum, cValue) gnMaximum = MAX(gnMaximum, cValue) ENDSCAN ? 'O valor mnimo : ', gnMinimum && Exibe valor mnimo ? 'O valor mximo : ', gnMaximum && Exibe valor mximo

APRINTERS( ), funo

Coloca os nomes das impressoras atualmente instaladas no Gerenciador de Impresso do Windows em uma matriz de memria.

Sintaxe APRINTERS(NomeMatriz) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz que contm os nomes das impressoras instaladas e suas portas. Se a matriz includa no existir, o Visual FoxPro ir cri-la automaticamente. Se a matriz existir e no for grande o suficiente para conter todas as informaes sobre as impressoras, o Visual FoxPro aumentar automaticamente o tamanho da matriz para que comporte as informaes. Caso a matriz seja maior do que o necessrio, o Visual FoxPro ir trunc-la. Caso a matriz exista e APRINTERS( ) retorne 0, porque nenhuma impressora est instalada, a matriz permanecer inalterada. Se a matriz no existir e APRINTERS( ) retornar 0, a matriz no ser criada.

Comentrios A funo APRINTERS( ) cria uma matriz bidimensional. A primeira coluna da matriz contm os nomes das impressoras atualmente instaladas e a segunda coluna contm as portas s quais as impressoras esto conectadas. APRINTERS( ) retorna o nmero de impressoras instaladas. Caso nenhuma impressora esteja instalada, ela retornar 0. O Visual FoxPro obtm os nomes das impressoras instaladas e suas portas no Windows. No entanto, o Visual FoxPro no verifica se as impressoras esto de fato conectadas mquina. APRINTERS( ), exemplo da funo O exemplo a seguir utiliza APRINTERS( ) para criar uma matriz denominada gaPrinters que contm os nomes e as portas das impressoras instaladas. Em seguida, as impressoras e suas portas so exibidas. Se nenhuma impressora estiver instalada, ser exibida uma mensagem. IF APRINTERS(gaPrinters) > 0 && Se houver drivers de impressoras instalados CLEAR && Limpa a janela principal do Visual FoxPro DISPLAY MEMORY LIKE gaPrinters && Exibe as impressoras e portas ELSE && Caso contrrio, Nenhuma impressora instalada WAIT WINDOW ' Nenhuma impressora instalada.' ENDIF

ASC( ), funo Retorna o valor ANSI para o caractere mais esquerda em uma expresso de caracteres.

Sintaxe ASC(cExpresso)

Tipos de retorno Numrico Argumentos cExpresso Especifica a expresso de caracteres que contm o caractere cujo valor ANSI retornado por ASC( ). Qualquer caractere aps o primeiro caractere em cExpresso ser ignorado por ASC( ). Comentrios ASC( ) retorna a posio do caractere na tabela de caracteres da pgina de cdigo atual. Cada caractere tem um valor ANSI exclusivo no intervalo de 0 a 255. ASC( ), exemplo da funo O exemplo a seguir exibe os caracteres A a J e utiliza ASC( ) para exibir seus valores ANSI correspondentes. STORE 'ABCDEFGHIJ' TO gcANSI && 10 caracteres CLEAR FOR nCOUNT = 1 TO 10 ? SUBSTR(gcANSI, nCount,1) && Exibe um caractere ?? ASC(SUBSTR(gcANSI, nCount)) && Exibe o valor ANSI ENDFOR

ASCAN( ), funo Procura em uma matriz um elemento que contenha os mesmos dados e o mesmo tipo de dado de uma expresso. Sintaxe ASCAN(NomeMatriz, eExpresso [, nElementoInicial [, nElementosProcurados]])

Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz na qual ser feita a procura.

eExpresso Especifica a expresso geral a ser procurada. nElementoInicial Especifica o nmero do elemento em que a procura ir comear. O nmero do elemento especificado ser includo na procura. Se voc omitir nElementoInicial, a procura ser feita, como padro, na matriz inteira. nElementosProcurados Especifica o nmero de elementos em que ser feita a procura. Se voc omitir nElementoInicial e nElementosProcurados, a procura ter incio no primeiro elemento da matriz e continuar at o ltimo elemento. Observao Voc pode referir-se a um elemento de uma matriz de varivel bidimensional de duas maneiras. O primeiro mtodo utiliza dois ndices para especificar a posio do elemento na matriz em termos de linha e coluna; o outro mtodo utiliza um nmero de elemento. Esta funo e outras que manipulam matrizes bidimensionais exigem nmeros de elementos (nElementoInicial e nElementosProcurados). Utilize AELEMENT( ) para retornar o nmero do elemento a partir de ndices de linha e coluna em uma matriz bidimensional. Comentrios Caso seja localizada uma correspondncia, ASCAN( ) retornar o nmero do elemento que contm a expresso. Caso contrrio, ASCAN( ) retornar 0. Os critrios para uma correspondncia bem-sucedida de dados de caractere so determinados pela definio de SET EXACT. Se SET EXACT estiver ativado (ON), um elemento dever corresponder ao caractere da expresso de procura e ter o mesmo comprimento. Caso SET EXACT esteja desativado (OFF) e haja uma correspondncia entre um elemento e a expresso de procura at o final da expresso, a correspondncia ser bem-sucedida. Para obter maiores informaes sobre critrios de correspondncia para seqncias de caracteres, consulte a tabela de comparao de seqncias no tpico SET EXACT. ASCAN( ), exemplo da funo O exemplo a seguir cria e preenche uma matriz com nomes de empresa e depois utiliza ASCAN( ) para procurar determinado nome de empresa. Se o nome da empresa for localizado, ser removido da matriz. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre a tabela customer SELECT company FROM customer ; WHERE country = 'UK' ; INTO ARRAY gaCompanies gnCount = _TALLY gcName = 'Seven Seas Imports' CLEAR DISPLAY MEMORY LIKE gaCompanies* gnPos = ASCAN(gaCompanies, gcName) && Procura pela empresa IF gnPos != 0 *** Empresa encontrada, remova-a da matriz ***

= ADEL(gaCompanies, gnPos) gnCount = gnCount - 1 ENDIF DISPLAY MEMORY LIKE gaCompanies ASIN( ), funo Retorna em radianos o arco seno de uma expresso numrica. Sintaxe ASIN(nExpresso) Tipos de retorno Numrico Argumentos nExpresso Especifica a expresso numrica cujo arco seno retornado por ASIN( ). O valor de nExpresso pode variar de +1 at 1 e o valor retornado por ASIN( ) pode variar de pi/2 a +pi/2 ( 1,57079 a 1,57079). O nmero de casas decimais na exibio do resultado pode ser especificado com SET DECIMALS. Comentrios Utilize RTOD( ) para converter radianos em graus. ASIN( ), exemplo da funo CLEAR ? RTOD(ASIN(0)) && Retorna 0.00 STORE 1 to gnArcAngle ? RTOD(ASIN(gnArcAngle)) && Retorna 90.00 ? RTOD(ASIN(SQRT(2)/2)) && Retorna 45.00

ASORT( ), funo

Classifica os elementos de uma matriz em ordem ascendente ou descendente. Sintaxe ASORT(NomeMatriz [, nElementoInicial [, nNmeroClassificados [, nOrdemClassificao]]]) Tipos de retorno

Numrico Argumentos NomeMatriz Especifica o nome da matriz a ser classificada. nElementoInicial Especifica o elemento inicial da classificao. Se voc omitir nElementoInicial, a matriz ser classificada, como padro, a partir do primeiro elemento. Se a matriz for unidimensional, a classificao incluir nElementoInicial. Se ela for bidimensional, o elemento inicial nElementoInicial determinar a linha em que a classificao ir comear e a coluna que determina a ordem de classificao das linhas. Observao Voc pode referir-se a um elemento de uma matriz bidimensional de duas maneiras. O primeiro mtodo utiliza dois ndices para especificar a posio do elemento na matriz em termos de linha e coluna; o outro mtodo utiliza um nmero de elemento. Esta funo e outras que manipulam matrizes bidimensionais exigem nmeros de elementos (em ASORT( ), as expresses numricas nElementoInicial e nNmeroClassificados). Voc pode utilizar AELEMENT( ) para retornar o nmero do elemento a partir de ndices de linha e coluna em uma matriz bidimensional. O exemplo a seguir ilustra o fato de que o elemento inicial nElementoInicial determina o modo como as linhas em uma matriz bidimensional so classificadas. Uma matriz pequena denominada gaArray criada e classificada duas vezes. A primeira classificao comea no primeiro elemento de gaArray e as linhas so classificadas com base nos valores contidos na primeira coluna da matriz. A segunda classificao comea no quarto elemento de gaArray e as linhas so classificadas com base nos valores contidos na segunda coluna. A primeira classificao comea na primeira linha. A segunda comea na segunda linha. Voc pode utilizar DISPLAY MEMORY para exibir o contedo da matriz; nestes exemplos, so utilizadas tabelas para exibir graficamente os resultados das classificaes. Os comandos abaixo criam a matriz denominada gaArray: DIMENSION gaArray(3,2) gaArray(1) = 'G' gaArray(2) = 'A' gaArray(3) = 'C' gaArray(4) = 'Z' gaArray(5) = 'B' gaArray(6) = 'N'

gaArray tem a aparncia a seguir: Coluna 1 Linha 1 G Linha 2 C Linha 3 B A Z N Coluna 2

Em seguida, ASORT( ) classifica a matriz a partir do primeiro elemento (1,1) da mesma. Os elementos da primeira coluna so colocados em ordem ascendente por meio de uma reorganizao das linhas da matriz. =ASORT(gaArray,1) Observe a nova ordem das linhas: Coluna 1 Linha 1 B Linha 2 C Linha 3 G N Z A Coluna 2

Em seguida, a matriz classificada a partir do seu quarto elemento (2,2). Os elementos na segunda coluna so colocados em ordem por meio de uma reorganizao das linhas da matriz. =ASORT(gaArray,4)

Observe a diferena na ordem das linhas: Coluna 1 Coluna 2

Linha 1 B N Linha 2 G A Linha 3 C Z nNmeroClassificados Especifica o nmero de elementos classificados em uma matriz unidimensional ou o nmero de linhas classificadas em uma matriz bidimensional. Por exemplo, se a matriz for unidimensional e nElementoInicial for 2, indicando que a classificao comea no segundo elemento da matriz, e nNmeroClassificados for 3, indicando que a classificao deve incluir trs elementos, o segundo, o terceiro e o quarto elementos da matriz sero classificados. Se nNmeroClassificados for 1 ou for omitido, todos os elementos da matriz, a partir do elemento inicial nElementoInicial at o ltimo elemento, sero classificados. Se a matriz for bidimensional, nNmeroClassificados designar o nmero de linhas que devem ser classificadas, a partir da linha que contm o elemento inicial nElementoInicial. Por exemplo, se nElementoInicial for 2 e nNmeroClassificados for 3, a linha que contm o segundo elemento de matriz e as duas linhas seguintes sero classificadas. Se nNmeroClassificados for 1 ou for omitido, todas as linhas da matriz, a partir da linha que contm o elemento inicial nElementoInicial at a ltima linha, sero classificadas. nOrdemClassificao Especifica a ordem de classificao (ascendente ou descendente) dos elementos da matriz. Como padro, os elementos de matriz so classificados em ordem ascendente. Se nOrdemClassificao for 0 ou for omitida, os elementos de matriz sero classificados em ordem ascendente. Se nOrdemClassificao for 1 ou qualquer valor diferente de zero, os elementos de matriz sero classificados em ordem descendente. Comentrios

Todos os elementos includos na classificao devem ter o mesmo tipo de dados. As matrizes unidimensionais so classificadas pelos seus elementos; as matrizes bidimensionais so classificadas pelas suas linhas. Quando uma matriz bidimensional classificada, a ordem das linhas na matriz alterada para que os elementos de uma coluna da matriz fiquem em ordem ascendente ou descendente. Se a classificao for bem-sucedida, ser retornado 1; caso contrrio, ser retornado 1. ASORT( ), exemplo da funo O exemplo a seguir copia o campo contact da tabela customer para uma matriz denominada gaContact. Os primeiros 20 contatos na matriz so exibidos, a matriz classificada e os contatos so exibidos novamente na ordem de classificao. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE Customer && Abre a tabela de clientes COUNT TO gnCount && Nmero de contatos DIMENSION gaContact(gnCount,1) && Cria uma matriz de contatos COPY TO ARRAY gaContact FIELD contact && Preenche a matriz CLEAR ? 'Contact names:' ? FOR nCount = 1 TO 20 ? gaContact(nCount) && Exibe os 20 primeiros contatos ENDFOR = ASORT(gaContact) && Classifica a matriz ? ? 'Sorted Contact names:' ? FOR nCount = 1 TO 20 ? gaContact(nCount) && Exibe os 20 primeiros contatos, classificados ENDFOR ASSERT, comando

Exibe uma caixa de mensagem quando uma expresso lgica avaliada como falsa (.F.). Sintaxe ASSERT lExpresso [MESSAGE cTextoMensagem] Argumentos

lExpresso Especifica a expresso lgica que avaliada. Se lExpresso resultar em um falso (.F.) lgico, uma caixa de dilogo de depurao ser exibida. Se lExpresso resultar em um verdadeiro (.T.) lgico, a caixa de dilogo no ser exibida. cTextoMensagem Especifica o texto exibido na caixa de dilogo de depurao. Se voc omitir cTextoMensagem, o texto padro ser exibido, indicando o nmero da linha na qual a declarao falhou e o procedimento contendo a declarao. Comentrios Esse comando ser ignorado se o comando SET ASSERTS for definido como OFF. A caixa de mensagem contm os botes Cancelar, Depurar, Ignorar e Ignorar todos. A tabela a seguir descreve a ao executada quando cada boto selecionado. Boto Ao Depurar A execuo do programa suspensa e a janela Depurar exibida com a janela Rastrear ativa. Cancelar A execuo do programa encerrada. Ignorar A execuo do programa continua com a linha aps o comando ASSERT. Ignorar Todos A execuo do programa continua com a linha aps o comando ASSERT e ASSERTS definido como OFF. Os comandos ASSERT subseqentes sero ignorados at que ASSERTS seja definido como ON. ASUBSCRIPT( ), funo Retorna o ndice de linha ou coluna de um elemento a partir do nmero do elemento. Sintaxe ASUBSCRIPT(NomeMatriz, nNmeroElemento, nndice) Tipos de retorno Numrico Argumentos NomeMatriz Especifica o nome da matriz. nNmeroElemento Especifica o nmero do elemento. nndice Determina se retornado o ndice de linha ou coluna. Se a matriz for unidimensional, inclua o nmero do elemento em nNmeroElemento e 1 em nndice. ASUBSCRIPT( ) retorna nNmeroElemento de forma idntica.

Se a matriz for bidimensional, voc deve incluir o nmero do elemento nNmeroElemento e um valor 1 ou 2 em nndice. A especificao de 1 em nndice retorna o ndice de linha do elemento, e a especificao de 2 retorna o ndice de coluna. Para obter maiores informaes sobre como fazer referncia a elementos de uma matriz, consulte DIMENSION.

Comentrios Voc pode referir-se a elementos de matrizes de varivel bidimensionais de duas maneiras. O primeiro mtodo utiliza dois ndices para especificar a posio do elemento na matriz em termos de linha e coluna. O segundo mtodo utiliza um nmero de elemento. Utilize ASUBSCRIPT( ) para obter o ndice de linha ou coluna de um elemento a partir do nmero do elemento. No exemplo a seguir, criada uma matriz com duas linhas e trs colunas. DISPLAY MEMORY exibe o contedo dos elementos da matriz listados na ordem dos nmeros dos elementos. DIMENSION gaMyArray(2,3) DISPLAY MEMORY LIKE gaMyArray GAMYARRAY Pub A ( 1, 1) L .F. (elemento nmero 1) ( 1, 2) L .F. (elemento nmero 2) ( 1, 3) L .F. (elemento nmero 3) ( 2, 1) L .F. (elemento nmero 4) ( 2, 2) L .F. (elemento nmero 5) ( 2, 3) L .F. (elemento nmero 6)

Os dois comandos abaixo armazenam a seqncia de caracteres INVOICE no mesmo elemento de matriz: STORE 'INVOICE' TO gaMyArray(2, 1) STORE 'INVOICE' TO gaMyArray(4)

Em matrizes unidimensionais, o nmero de um elemento idntico ao seu ndice de linha nico. No necessrio utilizar ASUBSCRIPT( ) com matrizes unidimensionais.

AT( ), funo

Retorna a posio numrica inicial da primeira ocorrncia de uma expresso de caracteres ou campo Memo dentro de uma outra expresso de caracteres ou campo Memo, contando a partir do caractere mais esquerda.

Sintaxe AT(cExpressoProcurada, cExpressoPesquisada [, nOcorrncia]) Tipos de retorno Numrico Argumentos cExpressoProcurada Especifica a expresso de caracteres que AT( ) procura em cExpressoPesquisada. cExpressoPesquisada Especifica a expresso de caracteres que a cExpressoProcurada procura. Tanto cExpressoProcurada como cExpressoPesquisada podem ser campos Memo de qualquer tamanho. nOcorrncia Especifica qual ocorrncia (primeira, segunda, terceira e assim por diante) da cExpressoProcurada procurada na cExpressoPesquisada. Como padro, AT( ) procura a primeira ocorrncia da cExpressoProcurada (nOcorrncia = 1). A incluso de nOcorrncia permite que voc procure ocorrncias adicionais da cExpressoProcurada na cExpressoPesquisada. AT( ) retornar 0 se nOcorrncia for maior do que o nmero de vezes que a cExpressoProcurada ocorre na cExpressoPesquisada. Comentrios AT( ) procura a primeira ocorrncia da primeira expresso de caracteres na segunda expresso de caracteres. Em seguida, retorna um inteiro que indica a posio do primeiro caractere na expresso de caracteres localizada. Caso a expresso de caracteres no seja localizada, AT( ) retornar 0. A procura executada por AT( ) considera maisculas/minsculas. Para executar uma procura que no considere maisculas/minsculas, utilize ATC( ). AT( ), exemplo da funo STORE 'Agora a hora da verdade' TO gcString STORE ' a' TO gcFindString CLEAR ? AT(gcFindString,gcString) && Exibe 5 STORE '' TO gcFindString ? AT(gcFindString,gcString) && Exibe 0, considera maisculas/minsculas

AT_C( ), funo

Retorna a posio numrica inicial da primeira ocorrncia de uma expresso de caracteres ou campo Memo dentro de uma outra expresso de caracteres ou campo Memo, contando a partir do caractere mais esquerda. Sintaxe AT_C(cExpressoProcurada, cExpressoPesquisada [, nOcorrncia]) Tipos de retorno Numrico Argumentos cExpressoProcurada Especifica a expresso de caracteres que AT_C( ) procura em cExpressoPesquisada. CExpressoPesquisada Especifica a expresso de caracteres que a cExpressoProcurada procura. Tanto a cExpressoProcurada como a cExpressoPesquisada podem ser campos Memo de qualquer tamanho. nOcorrncia Especifica qual ocorrncia (primeira, segunda, terceira e assim por diante) da cExpressoProcurada procurada na cExpressoPesquisada. Como padro, AT_C( ) procura a primeira ocorrncia da cExpressoProcurada (nOcorrncia = 1). A incluso de nOcorrncia permite que voc procure ocorrncias adicionais de cExpressoProcurada em cExpressoPesquisada. AT_C( ) retornar 0 se nOcorrncia for maior do que o nmero de vezes que a cExpressoProcurada ocorre na cExpressoPesquisada.

Comentrios AT_C( ) procura a primeira ocorrncia da primeira expresso de caracteres na segunda expresso de caracteres. Em seguida, retorna um inteiro que indica a posio do primeiro caractere na expresso de caracteres localizada. Caso a expresso de caracteres no seja localizada, AT_C( ) retornar 0. AT_C( ) foi criada para expresses que contm caracteres de byte duplo. Se a expresso contiver apenas caracteres de byte nico, AT_C( ) ser equivalente a AT( ). A procura executada por AT_C( ) considera maisculas/minsculas. Para executar uma procura que no considere maisculas/minsculas, utilize ATCC( ).

ATAN( ), funo

Retorna em radianos o arco tangente de uma expresso numrica. Sintaxe ATAN(nExpresso) Tipos de retorno Numrico Argumentos nExpresso Especifica uma expresso numrica cujo arco tangente retornado por ATAN( ). nExpresso pode ser qualquer valor. O valor retornado por ATAN( ) pode variar de pi/2 a +pi/2 ( 1,57079 a 1,57079). O nmero de casas decimais exibidas no valor retornado por ATAN( ) determinado por SET DECIMALS. Comentrios Utilize RTOD( ) para converter radianos em graus. ATAN( ), exemplo da funo CLEAR ? ATAN(0) && Exibe 0.00 STORE PI( )/2 to gnAngle ? ATAN(gnAngle) && Exibe 1.00 ? ATAN(PI( )/2) && Exibe 1.00 ? ATAN(DTOR(90)) && Exibe 1.00 ATC( ), funo Retorna a posio numrica inicial da primeira ocorrncia de uma expresso de caracteres ou campo Memo dentro de uma outra expresso de caracteres ou campo Memo, sem considerar maisculas/minsculas nas duas expresses. Sintaxe ATC(cExpressoProcurada, cExpressoPesquisada [, nOcorrncia]) Tipos de retorno Numrico Argumentos

cExpressoProcurada Especifica a expresso de caracteres que ATC( ) procura em cExpressoPesquisada. cExpressoPesquisada Especifica a expresso de caracteres que a cExpressoProcurada procura. Tanto a cExpressoProcurada como a cExpressoPesquisada podem ser campos Memo de qualquer tamanho. nOcorrncia Especifica qual ocorrncia (primeira, segunda, terceira e assim por diante) da cExpressoProcurada ser procurada na cExpressoPesquisada. Como padro, ATC( ) procura a primeira ocorrncia da cExpressoProcurada (nOcorrncia = 1). A incluso de nOcorrncia permite que voc procure ocorrncias adicionais da cExpressoProcurada na cExpressoPesquisada.

Comentrios ATC( ) procura a ocorrncia da primeira expresso de caracteres na segunda expresso de caracteres, sem considerar maisculas/minsculas nas duas expresses. Utilize AT( ) para executar uma procura que considere maisculas/minsculas. ATC( ) retorna um inteiro correspondente posio em que o primeiro caractere da expresso de caracteres foi localizado. Se a expresso de caracteres no for localizada, ATC( ) retornar 0. ATC( ), exemplo da funo STORE ' Agora a hora da verdade ... ' TO gcString STORE ' A' TO gcFindString CLEAR ? ATC(gcFindString, gcString) && Exibe 5 STORE '' TO gcFindString ? ATC(gcFindString, gcString) && Exibe 5 ? ATC('now',gcString) && Exibe 1 ATCC( ), funo Retorna a posio numrica inicial da primeira ocorrncia de uma expresso de caracteres ou campo Memo dentro de outra expresso de caracteres ou campo Memo, sem considerar maisculas/minsculas nas duas expresses. Sintaxe ATCC(cExpressoProcurada, cExpressoPesquisada [, nOcorrncia])

Tipos de retorno Numrico Argumentos

cExpressoProcurada Especifica a expresso de caracteres que ATCC( ) procura em cExpressoPesquisada. cExpressoPesquisada Especifica a expresso de