You are on page 1of 144

Funes Genricas

EVAL Reviso: 16/07/2002 Abrangncia Verso 5.07 Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Sintaxem EVAL ( < bBloco > , [ ] ) --> UltValorBloco Parmetros Argumento bBloco <ListaArgBloco> Retorno Tipo Descrio EVAL() retorna o valor da ltima expressao dentro do bloco. Um (Qualquer) bloco de cdigo pode retornar um valor de qualquer tipo. Descrio EVAL() uma funo de tratamento de blocos de cdigo, pois ela o dispositivo mais bsico no sistema ADVPL para avaliar blocos de cdigo. Um bloco de cdigo um valor de dados especiais que se refere a uma parte do cdigo de programa compilado. Para maiores informaes sobre blocos de cdigo, consulte o captulo conceitos bsicos neste livro. Para executar ou avaliar um bloco de cdigo, voc pode chamar EVAL() com o valor de bloco e quaisquer parmetros. Os parmetros so fornecidos ao bloco quando ele executado. Os blocos de cdigo podem ser uma srie de expresses separadas ou por vrgulas. Quando um bloco de cdigo avaliado, o valor retornado o valor da ltima expresso no bloco. Um bloco de cdigo geralmente compilado em tempo de compilao pelo compilador do ADVPL. Existem, porm, ocasies em tempo de execuo quando pode ser necessrio que voc compile um bloco de cdigo a partir de uma cadeia de caracteres. Isto pode ser feito utilizando-se o operador macro (&). EVAL() que frequentemente utilizado para criar funes iterator. Estas funes aplicam um bloco para cada membro de uma estrutura de dados. AEVAL(), ASORT(), ASCAN(), e DBEVAL() so funes iterator. AEVAL(), por exemplo, aplica um bloco para cada elemento dentro de um vetor. Tipo CodeBlock Descrio <bBloco> o bloco de cdigo a ser avaliado.

<ListaArgBloco> uma lista de argumentos a ser (Qualque enviada ao bloco de cdigo antes que ele seja r) avaliado.

GETREMOTETYPE Reviso: 19/11/2004 Abrangncia Verso 8.11 Sintaxe GETREMOTETYPE ( ) --> nRmtType Retorno Tipo Numrico Descrio Atravs da funo GetRemoteType(), possvel identificar sob qual interface o programa atual est em execuo. Esta funo est disponvel a partir do Protheus 8, Build 7.00.040308a Pode-se utilizar as constantes abaixo, para avaliar o retorno da funo. NO_REMOTE REMOTE_QT_WIN32 REMOTE_QT_LINUX // Job, Web ou Working Thread ( Sem remote ) 1 // Remote em ambiente Windows 2 // Remote em ambiente Unix/Linux -1 Descrio nRmtType corresponde o nmero correspondente interface utilizada.

ISSRVUNIX Reviso: 12/06/2003 Abrangncia Verso 6.09 Sintaxe ISSRVUNIX ( ) --> lisUnix Retorno Tipo Lgico Descrio Informa se o servidor Advanced Protheus est sendo executado em ambiente UNIX ou Linux. Descrio Se .T. o servidor est sendo executado em ambiente Unix(r) ou Linux(r) Se .F. o servidor est sendo executado em ambiente Windows(r) Verso 7.10

MSCRC32 Reviso: 03/07/2003 Abrangncia Verso 5.07 Sintaxe MSCRC32 ( < cString > ) --> nCRC Parmetros Argumento cString Tipo Descrio String de onde ser calculado um CRC32, garantido Caract que para a mesma string sempre se obter um mesmo er nmero, porm, no garantido que para strings diferentes, os nmeros sejam sempre diferentes. Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

Retorno Tipo Numrico Descrio Calcula um CRC de uma string. A funo MSCRC32() calcula um CRC de uma string informada e retorna um nmero com esse clculo. Note que strings iguais retornam CRC iguais, porm, nem sempre strings diferentes retornam CRC diferentes. Descrio Um nmero inteiro , com at 10 (dez) dgitos , correspondente ao CRC da string informada como parmetro.

MSCRC32STR Reviso: 02/07/2003 Abrangncia Verso 5.07 Sintaxe MSCRC32STR ( < cString > ) --> cCRC32 Parmetros Argumento cString Tipo Descrio String a partir da qual ser calculado o CRC32. Caract garantido que para a mesma string sempre ser obtido er um mesmo CRC , mas no garantido que para strings diferentes os CRCs sejam sempre diferentes. Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

Retorno Tipo Caracter Descrio MSCRC32STR() calcula um CRC de uma string informada , retornando uma string com esse clculo. Note que strings iguais retornam CRC iguais, porm nem sempre strings diferentes retornam CRC diferentes. Descrio Uma string com o CRC da string informada.

RANDOMIZE Reviso: 11/12/2003 Abrangncia Verso 6.09 Sintaxe RANDOMIZE ( < nMinimo > , < nMaximo > ) --> nAleatorio Parmetros Argumento nMinimo nMaximo Retorno Tipo Numrico Descrio Atravs da funo randomize() , geramos um numero inteiro aleatrio, compreendido entre a faixa inferior e superior recebida atravs dos parmetros nMinimo e nMaximo, respectivamente. Observao : O limite inferior recebido atravs do parmetro nMinimo "maior ou igual a ", podendo ser sorteado e fazer parte do retorno; porm o limite superior "menor que", de modo a nunca ser atingido ou devolvido no resultado. Por exemplo , a chamada da funo randomize(1,2) sempre retornar 1 . Descrio Numero randmico , compreendido no intervalo entre (nMinimo) e (nMaximo-1) : O numero gerado pode ser maior ou igual nMinimo e menor ou igual a nMaximo-1 . Tipo Numri co Numri co Descrio Corresponde ao menor numero a ser gerado pela funo. Corresponde ao maior nmero ( menos um ) a ser gerado pela funo. Verso 7.10

SENDTOFORE Reviso: 14/07/2003 Abrangncia Verso 5.07 Sintaxe SENDTOFORE ( ) --> Nil Retorno Tipo (NULO) Descrio Esta funo torna a aplicao do Remote foreground na estao em que est sendo executado. Faz com que a janela ativa do Remote fique acima de todas as janelas de outras aplicaes executadas na estao. Extremamente dependente do sistema operacional em uso, as vezes pode falhar devido ao sistema operacional no suportar o comando ou devido a carga excessiva do sistema, o sistema operacional pode ignorar o comando. Descrio Esta funo no retorna valor Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

XMLERROR Reviso: 16/07/2002 Abrangncia Verso 6.09 Sintaxe XMLERROR ( ) --> nXmlStatus Retorno Tipo Caracter Descrio A funcao XmlError() retorna um status da execuo da ultima rotina de criao de Objeto XML realizada pelo comando CREATE oXML. Podemos utilizar-nos das constantes definidas no arquivo #INCLUDE "XmlxFun.CH" para realizar o tratamento de erro. Vide tabelas de constantes abaixo : ---------------------------------------Constante Valor ---------------------------------------XERROR_ONLYFIRSTNODE -1 XERROR_SUCCESS 0 XERROR_FILE_NOT_FOUND 1 XERROR_OPEN_ERROR 2 XERROR_INVALID_XML 3 ---------------------------------------Descrio Retorna o status da ultima operao de Criao de Objeto XML realizado pelo comando CREATE oXml ... Verso 7.10

Funes de Banco de Dados ALIAS Reviso: 25/07/2002 Abrangncia Verso 5.07 Sintaxe ALIAS ( [ nAreaTrabalho ] ) --> cAlias Parmetros Argumento nAreaTrabalho Retorno Tipo Descrio ALIAS() retorna o alias da rea de trabalho especificada na forma de uma cadeia de caracteres, em letra maiscula. Caso <nAreaTrabalho> nao seja especificada, retornado o alias da rea de trabalho corrente. Se nao houver nenhum arquivo de banco de dados em USo na rea de trabalho especificada, ALIAS() retorna uma cadeia de caracteres nula (""). Tipo Descrio Numri <nAreaTrabalho> o nmero da rea de trabalho a co ser verificada. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Caracter

Descrio ALIAS() uma funao de banco de dados utilizada para determinar o alias da rea de trabalho especificada. Alias o nome atribuido a uma rea de trabalho quando um arquivo de banco de dados est em uso. O nome real atribuido o nome do arquivo de banco de dados, ou um nome que foi explicitamente atribuido atravs da clusula ALIAS do comando USE. ALIAS() o inverso da funao SELECT(). ALIAS() retorna o alias atravs do nmero da rea de trabalho, e SELECT() retorna o nmero da rea de trabalho atravs do alias.

BTVCANOPEN Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVCANOPEN ( < cNome > , [ cIndice ] ) --> lRet Parmetros Argumento cNome cIndice Retorno Tipo (NULO) Descrio Retorna falso se no foi possvel abrir a tabela a ser testada. Principais motivos: No existe o arquivo da tabela ou do ndice fisicamente; ou as definies da tabela ou ndice em questo no foram encontradas. Retorna verdadeiro se a tabela testada pode ser aberta. Tipo Descrio Caract Nome da tabela a ser testada. er Caract Nome do arquivo de ndice da tabela a ser testada. er Verso 5.08 Verso 6.09 Verso 7.10

Descrio BTVCONOPEN() uma funo que verifica se a tabela definida pelo parmetro cNome pode ser aberta e, se existir, o parmetro cIndice verifica, tambm, se o ndice pode ser aberto. Para tanto, testado se os arquivos envolvidos existem fisicamente, caso afirmativo, verificado se as definies envolvidas so encontradas nos arquivos do DDF's. Exemplo // Este exemplo demonstra o uso tpico de BTVCanOpen(). Se no falhar, a tabela e o ndice testados sero abertos. Se falhar, uma mensagem apresentada. IF !BTVCanOpen("\dadosadv\aa1990.dat","\dadosadv\ind1.ind") Messagebox("No possvel abrir a tabela testada","Erro", 0) ELSE Use "\dadosadv\aa1990.dat" SHARED NEW OrdListAdd("\dadosadv\ind1.ind") ENDIF BTVCREATEDDFS

Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVCREATEDDFS ( < aTabelas > , < cDiretorio > ) --> lRet Parmetros Argumento aTabelas cDiretorio Retorno Tipo Descrio Retorna falso se no conseguiu gerar os novos arquivos de definio. Principais erros: RDD no Btrieve; diretrio no est dentro do Protheus; no pode carregar as informaes de definio ou no pode gravar os novos arquivos de definio. Retorna verdadeiro se a transformao de definies ocorrida com sucesso. Descrio BTVCREATEDDFS() uma funo que transforma as informaes armazenadas nos arquivos DDF's para o padro utilizado por outras ferramentas, principalmente para gerao de relatrios. Sendo que podem ser selecionadas apenas as tabelas de interesse atravs do parmetro aTabelas. Ex: aTabelas := {{"AA3990", "C:\DADOS"},{"AA4990","C:\DADOS1"}, {"AA5990"}} Se o diretrio no for especificado, ser utilizado o diretrio definido no arquivo FILE.BTV. Os novos arquivos de definio, FILE.DDF, FIELD.DDF e INDEX.DDF, so gerados no diretrio especificado pelo parmetro cDiretrio, se ele for omitido, sero gerados no mesmo diretrio dos SXs. Exemplo: // Este exemplo demonstra o uso tpico de BTVCreateDDFs(). Se no falhar, sero gerados os novos arquivos de definio. Se falhar, uma mensagem apresentada. b:= {{"AA3990"}, {"SA1990", "c:\protheus507\dadosadv"}} IF !BTVCreateDDFs(b,"\temp") Messagebox("No foi possvel montar o array com os nomes das tabelas","Erro", 0) ENDIF Tipo Array Caract er Descrio Nomes das tabelas e os respectivos diretrios. Nome do diretrio (abaixo do root) onde sero criados os novos DDF's. Verso 5.08 Verso 6.09 Verso 7.10

(NULO)

BTVDROPIDXS Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVDROPIDXS ( ) --> lRet Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu apagar os ndices. Principais erros: RDD no Btrieve, no achou as definies no DDF, o arquivo no est exclusivo; Retorna Verdadeiro se a deleo de ndices ocorrida com sucesso; Verso 5.08 Verso 6.09 Verso 7.10

Descrio BTVDropIdxs() apaga os ndices da tabela corrente, com exceo do ndice interno, apenas se o mesmo for Btrieve e estiver aberto exclusivo. Para tanto ela executa os seguintes passos: Fecha todos os ndices; - Apaga as definies dos ndices nos arquivos do diretrio DDF; - Apaga os ndices do arquivo da tabela corrente. Todos os ndices criados de forma permanente ficam guardados na estrutura da tabela. Quando a tabela for aberta, todos os ndices criados de forma permanente e o ndice interno sero abertos tambm. Por isso, recomendada a criao de ndices de forma temporria. Exemplo: // Este exemplo demonstra o uso tpico de BTVDropIdxs(). Se no falhar, os ndices so apagados e o processo continua. Se falhar, uma mensagem apresentada. USE Clientes SHARED NEW IF !BTVDropIdxs() Messagebox("No foi possvel deletar os ndices da tabela corrente","Erro", 0) ENDIF

BTVTABLES Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVTABLES ( ) --> aTables Retorno Tipo Array Descrio Retorna NIL se no conseguiu montar o array. Principais erros: RDD no Btrieve ou no conseguiu recuperar as informaes corretamente do arquivo FILE.BTV do DDFs. Retorna um Array com a lista com os nomes das tabelas extradas do DDF. Verso 5.08 Verso 6.09 Verso 7.10

Descrio BTVTABLES retorna array composto por nomes das tabelas definidas no DDF do Protheus. Para tanto verifica todos os nomes das tabelas armazenados no arquivo FILE.BTV do DDF e retorna um array com todos eles. Toda tabela criada possui o nome acrescentado neste arquivo de definies. Exemplo: // Este exemplo demonstra o uso tpico de BTVTables(). Se no falhar, montado um array com os nomes das tabelas e esses nomes so mostrados no servidor. Se falhar, uma mensagem apresentada. a:= BTVTables() IF a=Nil Messagebox("No foi possvel montar o array com os nomes das tabelas","Erro", 0) ELSE FOR i:= 1 to LEN(a) ConOut(a[i]) NEXT ENDIF

CTREEDELIDXS Reviso: 26/08/2003 Abrangncia Verso 5.07 Sintaxe CTREEDELIDXS ( ) --> lRet Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu deletar os ndices. Principais erros: RDD no Ctree, no fechou a tabela, no apagou o arquivo de ndice ou no atualizou as informaes da tabela; no abriu a tabela novamente. Retorna Verdadeiro se a deleo de ndices ocorrida com sucesso. Verso 5.08 Verso 6.09 Verso 7.10

Descrio CtreeDelIdxs() apaga os ndices da tabela corrente, com exceo do ndice interno, apenas se o mesmo for CTree e estiver exclusiva. Para tanto, ela executa os seguintes passos: Fecha os ndices abertos; Fecha a tabela; Deleta os arquivos de ndice fisicamente; - Atualiza as informaes da tabela, removendo os ndices de sua estrutura; Abre novamente a tabela. Todos os ndices criados de forma permanente ficam guardados na estrutura da tabela. Portanto, no adianta deletar os arquivos de ndices, pois quando a tabela for aberta, todos os ndices criados de forma permanente e o ndice interno sero recriados fisicamente (se no existirem); caso contrrio, a tabela no ser aberta. Por isso, recomendada a criao de ndices de forma temporria. Importante: Aps a remoo dos ndices a tabela ser posicionada no primeiro registro. Exemplo: // Este exemplo demonstra o uso tpico de CtreeDelIdxs(). Se no falhar, os ndices so apagados e o processo continua. Se falhar, uma mensagem apresentada. USE Clientes SHARED NEW IF !CtreeDelIdxs() Messagebox('No foi possvel deletar os ndices da tabela corrente','Erro',0) ENDIF CTREEDELINT

Reviso: 22/07/2003 Abrangncia Verso 5.07 Sintaxe CTREEDELINT ( < cNOME > ) --> lRet Parmetros Argumento cNOME Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu deletar o ndice interno. Principais erros: tabela no est dentro do diretrio do Protheus, no abriu a tabela ou no deletou o arquivo de ndice interno. Retorna Verdadeiro se a deleo do ndice interno ocorrida com sucesso. Tipo Descrio Caract Especifica o nome da tabela cujo ndice interno deve er ser deletado. Verso 5.08 Verso 6.09 Verso 7.10

Descrio CTREEDELINT() apaga o ndice interno de tabela Ctree, estando a mesma fechada. Para tanto, so executados os seguintes procedimentos: Abre a tabela especificada pelo parmetro cNome; Verifica o nome do arquivo do ndice interno na tabela; Fecha a tabela; Deleta fisicamente o arquivo do ndice interno. A tabela deve ser apagada aps a chamada desta funo, pois a tabela CTree no pode ser aberta sem ndice interno. Exemplo: // Este exemplo demonstra o uso tpico de CtreeDelInt(). Sendo que a tabela '\dadosadv\sa1990.dtc' deve estar fechada. Se no falhar, o ndice interno apagado e o processo continua. Se falhar, uma mensagem apresentada. IF !CtreeDelInt('\dadosadv\sa1990.dtc') Messagebox('No foi possvel deletar o ndice da tabela','Erro', 0) ENDIF fErase('\dadosadv\sa1990.dtc') DBAPPEND Reviso: 07/05/2003 Abrangncia Verso 5.07 Verso 5.08 Verso 6.09 Verso 7.10

Sintaxe DBAPPEND ( [ lLiberaBloqueios ] ) --> uRet Parmetros Argumento lLiberaBloqueios Retorno Tipo (NULO) Descrio DBAPPEND() acrescenta mais um registro em branco no final da tabela corrente. Se no houver erro da RDD, o registro acrescentado e bloqueado. Descrio Retorno nulo. Tipo Descrio Se o valor for .T., libera todos os registros bloqueados Lgic anteriormente (locks). Se for .F., todos os bloqueios o anteriores so mantidos. Valor default: .T.

DBCLEARALLFILTER Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARALLFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARALLFILTER() salva as atualizaes realizadas e pendentes de todas as tabelas e depois limpa as condies de filtro de todas as tabelas. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARALLFILTER Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARALLFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARALLFILTER() salva as atualizaes realizadas e pendentes de todas as tabelas e depois limpa as condies de filtro de todas as tabelas. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARFILTER Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARFILTER() salva as atualizaes realizadas e pendentes na tabela corrente e depois limpa todas as condies de filtro da ordem ativa no momento. Seu funcionamento oposto ao comando SET FILTER. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARINDEX Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARINDEX ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARINDEX() salva as atualizaes pendentes na tabela corrente e fecha todos os arquivos de ndice da rea de trabalho. Por conseqncia, limpa todas as ordens da lista. Seu funcionamento oposto ao comando SET INDEX. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLOSEALL Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCLOSEALL ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLOSEALL() salva as atualizaes pendentes, libera todos os registros bloqueados e fecha todas as tabelas abertas (reas de trabalho) como se chamasse DBCLOSEAREA para cada rea de trabalho. Exemplo // Este exemplo demonstra como se pode utilizar o DBCLOSEALL para fechar a rea de trabalho atual. USE Clientes NEW DBSETINDEX("Nome") // Abre o arquivo de ndice "Nome" USE Fornecedores NEW DBSETINDEX("Idade") // Abre o arquivo de ndice "Idade" ... DBCLOSEALL() //Fecha todas as reas de trabalho, todos os indices e ordens Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLOSEAREA Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLOSEAREA ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLOSEAREA() salva as atualizaes pendentes na tabela corrente, libera todos os registros bloqueados e fecha a tabela corrente (rea de trabalho). Seu funcionamento semelhante ao comando CLOSE e oposto funo DBUSEAREA e ao comando USE. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCOMMIT Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCOMMIT ( ) --> uRet Retorno Tipo (NULO) Descrio DBCOMMIT() salva em disco todas as atualizaes pendentes na rea de trabalho corrente. Exemplo: // Este exemplo demonstra como se pode utilizar o DBCOMMIT para salvar todas as alteraes realizadas na rea de trabalho atual. USE Clientes NEW DBGOTO(100) Nome := "Jose" USE Fornecedores NEW DBGOTO(168) Nome := "Joao" DBCOMMIT() // Salva em disco apenas as alteraes realizadas na tabela Fornecedores Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCOMMITALL Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCOMMITALL ( ) --> uRet Retorno Tipo (NULO) Descrio DBCOMMITALL() salva em disco todas as atualizaes pendentes em todas as reas de trabalho. Exemplo: // Este exemplo demonstra como se pode utilizar o DBCOMMITALL para salvar todas as alteraes realizadas nas reas de trabalho abertas no momento. USE Clientes NEW DBGOTO(100) Nome := "Jose" USE Fornecedores NEW DBGOTO(168) Nome := "Joao" DBCOMMITALL() // Salva em disco as alteraes realizadas nas tabelas Clientes e Fornecedores Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCREATE Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCREATE ( < cNOME > , < aESTRUTURA > , [ @cDRIVER ] ) --> uRet Parmetros Argumento cNOME aESTRUTURA cDRIVER Retorno Tipo Caracter Descrio DBCREATE() utilizada para criar um novo arquivo de tabela cujo nome est especificado atravs do primeiro parmetro (cNome) e estrutura atravs do segundo (aEstrutura). A estrutura especificada atravs de um array com todos os campos, onde cada campo expresso atravs de um array contendo {Nome, Tipo, Tamanho, Decimais}, como visto no exemplo a seguir. Exemplo: // Este exemplo mostra como se pode criar novo arquivo de tabela atravs da funo DBCREATE: LOCAL aEstrutura :={{Cod,N,3,0},{Nome,C,10,0},{Idade,N,3,0},{Nasc,D,8,0} ,{Pagto,N,7,2}} DBCREATE("\teste\amigos.xxx",aEstrutura) // Cria a tabela com o RDD corrente USE "\teste\amigos.xxx" VIA "DBFCDX" NEW Descrio Nenhum Tipo Descrio Caract Nome do arquivo da tabela a ser criada (abaixo do er "RootPath"). Lista com as informaes dos campos para ser criada Array a tabela. Caract Nome do RDD a ser utilizado para a criao da tabela. er Se for omitido ser criada com o corrente. Verso 5.08 Verso 6.09 Verso 7.10

DBCREATEINDEX Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCREATEINDEX ( < cNOME > , < cEXPCHAVE > , [ bEXPCHAVE ] , [ lUNICO ] ) --> uRet Parmetros Argumento cNOME cEXPCHAVE bEXPCHAVE lUNICO Retorno Tipo (NULO) Descrio DBCREATEINDEX() utilizada para criar um novo arquivo de ndice com o nome especificado atravs do primeiro parmetro, sendo que se o mesmo existir deletado e criado o novo. Para tanto so executados os passos a seguir: - Salva fisicamente as alteraes ocorridas na tabela corrente; Fecha todos os arquivos de ndice abertos; Cria o novo ndice; Seta o novo ndice como a ordem corrente; Posiciona a tabela corrente no primeiro registro do ndice. Com exceo do RDD Ctree, a tabela corrente no precisa estar aberta em modo exclusivo para a criao de ndice, pois na criao de ndices no Ctree alterada a estrutura da tabela, precisando para isto a tabela estar aberta em modo exclusivo. Exemplo: // Este exemplo mostra como se pode criar novo arquivo de ndice criando a ordem sobre os campos Nome e End e no aceitar duplicao: USE Cliente VIA "DBFCDX" NEW DBCREATEINDEX("\teste\ind2.cdx","Nome+End",{ || Nome+End },.T.) DBDELETE Descrio Nenhum Tipo Descrio Caracter Nome do arquivo de ndice a ser criado. Expresso das chaves do ndice a ser criado na forma Caracter de string. CodeExpresso das chaves do ndice a ser criado na forma Block executvel. Lgico Cria ndice como nico (o padro .F.). Verso 5.08 Verso 6.09 Verso 7.10

Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBDELETE ( ) --> uRet Retorno Tipo Caracter Descrio DBDELETE() marca o arquivo corrente como deletado. Para filtrar os arquivos marcados pode-se utilizar o comando SET DELETED e para delet-los fisicamente pode-se utilizar o comando PACK. Exemplo: // Este exemplo demonstra como se pode utilizar a funo DBDELETE() para marcar alguns registros como deletados e o PACK para delet-los fisicamente. USE Clientes NEW DBGOTO(100) DBDELETE() DBGOTO(105) DBDELETE() DBGOTO(110) DBDELETE() PACK Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBEVAL Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBEVAL ( < bBLOCO > , [ bFORCOND ] , [ bWHILECOND ] , [ nPROXREGS ] , [ nRECNO ] , [ lRESTANTE ] ) --> uRET Parmetros Argumento bBLOCO bFORCOND bWHILECOND nPROXREGS nRECNO lRESTANTE Retorno Tipo Caracter Descrio DBEVAL() utilizada para executar uma expresso definida pelo bloco de cdigo do primeiro parmetro para cada registro que est dentro do escopo definido atravs dos blocos de condio de "for" e "while". O nmero de registros a ser executado ser definido com o parmetro nProxRegs ou se setado o parmetro lRestante sero executados todos os registros a partir do registro corrente at o final da tabela corrente. Se for especificado o parmetro nRecno apenas o registro com o recno especificado ser processado. Se forem omitidos os blocos de "for" e "while", os mesmos sero considerados .T. como padro, esto assim todos os registros dentro do escopo. Se o parmetro lRestante for omitido a tabela inicia o processamento dos registros a partir do topo da tabela, caso contrrio sero processados os registros a partir do posicionamento corrente da tabela. Descrio Retorno nulo. Tipo CodeBlock Descrio Expresso na forma executvel a ser resolvida para cada registro processado. Expresso na forma executvel a ser resolvida para Codeverificar se o registro em questo est dentro do Block escopo definido. Expresso na forma executvel a ser resolvida para Codeverificar at qual registro ser processado (at o Block bloco retornar .F.). Numric Nmero de registros a ser processado a partir do o registro corrente. Numric Identificao de determinado registro a ser resolvida o a expresso (recno). Lgico Processa o restante dos registro. Verso 5.08 Verso 6.09 Verso 7.10

Exemplo: // Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros esto dentro do escopo especificado em toda a tabela, pois como o parmetro lRestante foi omitido a tabela ir para o topo antes de iniciar a processar os registros. Supondo que a tabela est sobre um ndice no campo idade, sero processados registros com o Nome cuja ordem alfabtica maior que "FFFFF" e at encontrar algum registro de idade igual a 40: USE Cliente VIA "DBFCDX" NEW LOCAL nCount := 0; DBGOTO(100) DBEVAL( {|| nCount++}, {|| Nome > "FFFFF"}, {|| Idade < 40}) // Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros esto dentro do escopo especificado (como o exemplo anterior) a partir do registro atual (100): USE Cliente VIA "DBFCDX" NEW LOCAL nCount := 0; DBGOTO(100) DBEVAL( {|| nCount++}, {|| Nome > "FFFFF"}, {|| Idade < 40},,,.T.) // Este exemplo mostra como se pode usar o DBEVAL para colocar numa varivel um nome inicial que est definido em um registro de recno definido (100): USE Cliente VIA "DBFCDX" NEW LOCAL cNomeIni := "" DBEVAL( {|| cNomeIni := Nome},,,,100) // Este exemplo mostra como se pode usar o DBEVAL para verificar qual o recno do dcimo registro a partir do corrente dentro do escopo definido: USE Cliente VIA "DBFCDX" NEW LOCAL nRecno := 0; DBGOTO(100) DBEVAL( {|| nRecno := RECNO()}, {|| Nome > "FFFFF"}, {|| Idade < 40},10,,.T.)

DBF Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBF ( ) --> cAlias Retorno Tipo Caracter Descrio DBF() verifica qual o Alias da rea de trabalho corrente. O Alias definido quando a tabela aberta atravs do parmetro correspondente (DBUSEAREA()). Esta funo o inverso da funo SELECT(), pois nesta retornado o nmero da rea de trabalho do Alias correspondente. Exemplo: // Este exemplo mostra como o DBF corrente pode ser mostrado para o usurio. dbUseArea( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. ) MessageBox("O Alias corrente : "+DBF(),"Alias", 0) //Resultado: "O Alias corrente : SSS" Descrio Retorna o Alias corrente. Caso no exista Alias corrente retorna "" (String vazia). Verso 5.08 Verso 6.09 Verso 7.10

DBFIELDINFO Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBFIELDINFO ( < nINFOTIPO > , < nCAMPO > ) --> xINFO Parmetros Argumento nINFOTIPO nCAMPO Retorno Tipo Descrio Retorna NIL se no h tabela corrente ou a posio do campo especificado est invlida. (Qualquer) Informao do campo Informao requisitada pelo usurio (pode ser de tipo numrico se for tamanho ou casas decimais, tipo caracter se for nome ou tipo). Descrio DBFIELDINFO() utilizada para obter informaes sobre determinado campo da tabela corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBS_DEC Nmero de casas decimais (tipo numrico) DBS_LEN Tamanho (tipo numrico) DBS_TYPE Tipo (tipo caracter) A posio do campo no leva em considerao os campos internos do Protheus (recno e deleted). Exemplo: // Este exemplo demonstra como se pode utilizar o DBFIELDINFO para obter as informaes do primeiro campo da tabela Clientes. USE Clientes NEW DBFIELDINFO(DBS_NAME,1) // Retorno: Nome DBFIELDINFO(DBS_TYPE,1) // Retorno: C DBFIELDINFO(DBS_LEN,1) // Retorno: 10 DBFIELDINFO(DBS_DEC,1) // Retorno: 0 DBFILTER Reviso: 30/08/2002 Tipo Numri co Numri co Descrio Tipo de informao a ser verificada (DBS_DEC, DBS_LEN e DBS_TYPE). Posio do campo a ser verificado. Verso 5.08 Verso 6.09 Verso 7.10

Abrangncia Verso 5.07 Sintaxe DBFILTER ( ) --> cEXPFILTRO Retorno Tipo Caracter Descrio DBFILTER() utilizada para verificar a expresso de filtro ativo na rea de trabalho corrente. Exemplo: // Este exemplo demonstra como se pode utilizar o DBFILTER para verificar a expresso do filtro corrente. USE Cliente INDEX Ind1 NEW SET FILTER TO Nome > "Jose" DBFILTER() // retorna: Nome > "Jose" SET FILTER TO Num < 1000 DBFILTER() // retorna: Num < 1000 Descrio Retorna a expresso do filtro ativo na rea de trabalho atual. Caso no exista filtro ativo retorna "" (String vazia). Verso 5.08 Verso 6.09 Verso 7.10

DBGOBOTTOM Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOBOTTOM ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOBOTTOM() utilizada para posicionar a tabela corrente no ltimo registro lgico. A seqncia lgica depende da ordem e do filtro ativo sobre a tabela corrente, portanto o ltimo registro lgico pode no ser o ltimo registro fsico. Exemplo: // Este exemplo demonstra como se pode utilizar o DBGOBOTTOM para posicionar no ltimo registro fsico. USE Cliente DBGOBOTTOM() // Posiciona no ltimo registro fsico, pois no h ordem ativa // Este exemplo demonstra como se pode utilizar o DBGOBOTTOM para posicionar no ltimo registro lgico. USE Cliente INDEX Ind1 NEW DBGOBOTTOM() // Posiciona no ltimo registro lgico (ltimo registro na seqncia gerada pelo ndice) Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBGOTOP Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOTOP ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOTOP() utilizada para posicionar a tabela corrente no primeiro registro lgico. A seqncia lgica depende da ordem e do filtro ativo sobre a tabela corrente, portanto o primeiro registro lgico pode no ser o primeiro registro fsico. Exemplo: // Este exemplo demonstra como se pode utilizar o DBGOBOTOP para posicionar no primeiro registro fsico. USE Cliente DBGOTOP() // Posiciona no primeiro registro fsico, pois no h ordem ativa // Este exemplo demonstra como se pode utilizar o DBGOTOP para posicionar no primeiro registro lgico. USE Cliente INDEX Ind1 NEW DBGOTOP() // Posiciona no primeiro registro lgico (primeiro registro na segncia gerada pelo ndice) Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBGOTO Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOTO ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOTO() utilizado para posicionar a tabela corrente em determinado registro, segundo a ordem fsica (seqncia sobre o recno). Exemplo: // Este exemplo tabela USE DBGOTO(100) // demonstra como se pode utilizar o DBGOTO para posicionar a corrente em determinado registro. Cliente INDEX Ind1 NEW Posiciona no registro de recno 100 Descrio Retorno nulo. Verso 5.08 Verso 6.09 Verso 7.10

DBINFO Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBINFO ( < nINFOTIPO > ) --> xINFO Parmetros Argumento nINFOTIPO Retorno Tipo Descrio Informao da Tabela Informao requisitada pelo usurio (o tipo (Qualquer) depende da informao requisitada). Se no houver tabela corrente retorna NIL. Descrio DBINFO() utilizada para obter informaes sobre a tabela corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBI_GETRECSIZE - Tamanho do registro em nmero de bytes similar a RECSIZE (tipo numrico) DBI_TABLEEXT - Extenso do arquivo da tabela corrente (tipo caracter) DBI_FULLPATH - Nome da tabela corrente com caminho completo (tipo caracter) DBI_BOF - Verifica se est posicionada no incio da tabela similar a BOF (tipo lgico) DBI_EOF - Verifica se est posicionada no final da tabela similar a EOF (tipo lgico) DBI_FOUND - Verifica se a tabela est posicionada aps uma pesquisa similar a FOUND (tipo lgico) DBI_FCOUNT - Nmero de campos na estrutura da tabela corrente similar a FCOUNT (tipo numrico) DBI_ALIAS - Nome do Alias da rea de trabalho corrente similar a ALIAS (tipo caracter) DBI_LASTUPDATE - Verifica a data da ltima modificao similar a LUPDATE (tipo data) Exemplo: // Este exemplo demonstra como se pode utilizar o DBINFO para obter as informaes da tabela corrente (Clientes). USE Clientes NEW Tipo Descrio Numri Tipo de informao a ser verificada. co Verso 5.08 Verso 6.09 Verso 7.10

DBINFO(DBI_FULLPATH) // DBINFO(DBI_FCOUNT) // DBGOTOP() DBINFO(DBI_BOF) // DBSKIP(-1) DBINFO(DBI_BOF) // Retorno: .T.

Retorno:

C:\Teste\Clientes.dbf Retorno: 12 Retorno: .F.

DBORDERINFO Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBORDERINFO ( < nINFOTIPO > ) --> xINFO Parmetros Argumento nINFOTIPO Retorno Tipo Caracter Descrio Retorna a informao da Ordem requisitada pelo usurio (pode ser de tipo numrico se for nmero de ordens no ndice, tipo caracter se for nome do arquivo de ndice). Caso no exista ordem corrente ou a posio da ordem especificada est invlida retorna NIL. Tipo Descrio Numri Nome do arquivo de ndice. co Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBORDERINFO() utilizada para obter informaes sobre determinada ordem. A especificao da ordem pode ser realizada atravs de seu nome ou sua posio dentro da lista de ordens, mas se ela no for especificada sero obtidas informaes da ordem corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBOI_BAGNAME - Nome do arquivo de ndice ao qual a ordem pertence (tipo caracter). DBOI_FULLPATH - Nome do arquivo de ndice (com seu diretrio) ao qual a ordem pertence (tipo caracter) DBOI_ORDERCOUNT - Nmero de ordens existentes no arquivo de ndice especificado Exemplo: // Este exemplo demonstra como se pode utilizar o DBORDERINFO para obter informaes sobre o nome do arquivo de ndice da ordem corrente. DBORDERINFO(DBOI_BAGNAME) // retorna: Ind DBORDERINFO(DBOI_FULLPATH) // retorna: C:\AP6\Teste\Ind.cdx DBORDERNICKNAME Reviso: 30/08/2002

Abrangncia Verso 5.07 Sintaxe DBORDERNICKNAME ( < cAPELIDO > ) --> lRET Parmetros Argumento cAPELIDO Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu tornar a ordem ativa. Principais erros: No existe tabela ativa ou no foi encontrada a ordem com o apelido. Retorna Verdadeiro se a ordem foi setada com sucesso. Tipo Descrio Caract Nome do apelido da ordem a ser setada. er Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBORDERNICKNAME() utilizada para selecionar a ordem ativa atravs de seu apelido. Esta ordem a responsvel seqncia lgica dos registros da tabela corrente. Exemplo: //Este exemplo demonstra como se pode utilizar o DBORDERNICKNAME para setar nova ordem. USE Cliente NEW SET INDEX TO Nome, Idade IF !DBORDERNICKNAME("IndNome") Messagebox("Registro no encontrado","Erro", 0) ENDIF

DBRECALL Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRECALL ( ) --> uRET Retorno Tipo (NULO) Descrio DBRECALL() utilizada para retirar a marca de registro deletado do registro atual. Para ser executada o registro atual deve estar bloqueado ou a tabela deve estar aberta em modo exclusivo. Se o registro atual no estiver deletado, esta funo no faz nada. Ela o oposto da funo DBDELETE que marca o registro atual como deletado. Exemplo: // Este exemplo demonstra como se pode utilizar o DBRECALL para retornar o estado do registro atual para normal. USE Cliente DBGOTO(100) DBDELETE() DELETED() // Retorna: .T. DBRECALL() DELETED() // Retorna: .F. // Este exemplo demonstra como se pode utilizar o DBRECALL para desfazer todas as delees da tabela corrente. USE Cliente DBGOTOP() WHILE !EOF() DBRECALL() DBSKIP() ENDDO Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBRECORDINFO Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRECORDINFO ( < nINFOTIPO > , [ nREGISTRO ] ) --> xINFO Parmetros Argumento nINFOTIPO nREGISTRO Retorno Tipo Descrio No h tabela corrente ou registro invlido. (Qualquer) Informao do Registro. Informao requisitada pelo usurio (o tipo depende da informao requisitada). Descrio DBRECORDINFO() utilizada para obter informaes sobre o registro especificado pelo segundo argumento (recno) da tabela corrente, se esta informao for omitida ser verificado o registro corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBRI_DELETED - Estado de deletado similar a DELETED (tipo lgico) DBRI_RECSIZE - Tamanho do registro similar a RECSIZE (tipo numrico) DBRI_UPDATED - Verifica se o registro foi alterado e ainda no foi atualizado fisicamente similar a UPDATED (tipo lgico) Exemplo: // Este exemplo demonstra como se pode utilizar o DBRECORDINFO para se obter as informaes sobre registros da tabela corrente. USE Clientes NEW DBGOTO(100) DBRECORDINFO(DBRI_DELETED) // Retorno: .F. DBDELETE() DBRECORDINFO(DBRI_DELETED) // Retorno: .F. DBRECALL() DBRECORDINFO(DBRI_RECSIZE) // Retorno: 230 NOME := "JOAO" DBGOTO(200) Tipo Descrio Numri Tipo de informao a ser verificada. co Numri Nmero do registro a ser verificado. co Verso 5.08 Verso 6.09 Verso 7.10

DBRECORDINFO(DBRI_UPDATED) // DBRECORDINFO(DBRI_UPDATED,100) // Retorno: .T.

Retorno:

.F.

DBREINDEX Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBREINDEX ( ) --> uRET Retorno Tipo (NULO) Descrio DBREINDEX() reconstri todos os ndices da rea de trabalho corrente e posiciona as tabelas no primeiro registro lgico. Exemplo: // Este exemplo demonstra como se pode utilizar o DBREINDEX para reconstruir os ndices depois que um novo ndice foi gerado. USE Clientes NEW DBSETINDEX("IndNome") DBREINDEX() Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBRLOCK Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRLOCK ( [ nREGISTRO ] ) --> lRET Parmetros Argumento nREGISTRO Retorno Tipo Lgico Descrio DBRLOCK() utilizada quando se tem uma tabela aberta e compartilhada e se deseja bloquear um registro para que outros usurios no possam alter-lo. Se a tabela j est aberta em modo exclusivo, a funo no altera seu estado. O usurio pode escolher o registro a ser bloqueado atravs do parmetro (recno), mas se este for omitido ser bloqueado o registro corrente como na funo RLOCK(). Esta funo o oposto DBRUNLOCK, que libera registros bloqueados. Exemplo // Este exemplo mostra duas variaes do uso de DBRLOCK. DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. ) DBGOTO(100) DBRLOCK() // Bloqueia o registro atual (100) DBRLOCK(110) // Bloqueia o registro de nmero 110 Descrio Retorna Falso se no conseguiu bloquear o registro. Principal motivo: o registro j foi bloqueado por outro usurio. Retorna Verdadeiro se o registro foi bloqueado com sucesso Tipo Descrio Numri Nmero do registro a ser bloqueado. co Verso 5.08 Verso 6.09 Verso 7.10

DBRLOCKLIST Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRLOCKLIST ( ) --> aRET Retorno Tipo Array Descrio Retorna NIL se no existe tabela corrente ou no existe nenhum registro locado. Retorna a lista com os recnos dos registros locados na tabela corrente. Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBRLOCKLIST() utilizada para verificar quais registros esto locados na tabela corrente. Para tanto, retornada uma tabela unidimensional com os nmeros dos registros. Exemplo: // Este exemplo mostra como utilizada a funo DBRLOCKLIST para verificar quais registros esto bloqueados na tabela corrente: DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. ) DBGOTOP() DBRLOCK() // Bloqueia o primeiro registro DBRLOCK(110) // Bloqueia o registro de nmero 110 DBRLOCK(100) // Bloqueia o registro de nmero 100 DBRLOCKLIST() // Retorna: {1,100,110}

DBRUNLOCK Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRUNLOCK ( [ nREGISTRO ] ) --> uRET Parmetros Argumento nREGISTRO Retorno Tipo (NULO) Descrio DBRUNLOCK() utilizada para liberar determinado registro bloqueado. O usurio pode escolher o registro a ser desbloqueado atravs do parmetro (recno), mas se este for omitido ser desbloqueado o registro corrente como na funo DBUNLOCK(). Esta funo o oposto DBRLOCK, que bloquea os registros. Exemplo: // Este exemplo mostra duas variaes do uso de DBRUNLOCK. DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. ) DBGOTO(100) DBRUNLOCK() //Desbloqueia o registro atual (100) DBRUNLOCK(110) // Desbloqueia o registro de nmero 110 Descrio Sem retorno. Tipo Descrio Numri Nmero do registro a ser desbloqueado. co Verso 5.08 Verso 6.09 Verso 7.10

DBSEEK Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSEEK ( < xEXP > , [ lSOFTSEEK ] , [ lULTIMO ] ) --> lRET Parmetros Argumento xEXP lSOFTSEEK lULTIMO Retorno Tipo Lgico Descrio Retorna Falso se no foi encontrado nenhum registro com o valor especificado. Retorna Verdadeiro se foi encontrado um registro com o valor especificado Tipo Descrio Valor de chave a ser encontrado do tipo caracter (Qualque (todos os tipos de expresso de ndice com exceo r) do ndice com apenas um campo do tipo numrico). Posiciona no primeiro registro com expresso de Lgico chave maior que o valor procurado. O padro .F. Procura a ltima ocorrncia do valor procurado. O Lgico padro .F. Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBSEEK() utilizada para encontrar um registro com determinado valor da expresso de chave de ndice. Antes da chamada do DBSEEK deve-se certificar de que existe uma ordem ativa no momento com os campos que se deseja pesquisar o valor. Se a expresso possuir apenas uma campo numrico, o primeiro parmetro deve ser do tipo numrico, mas nos demais casos deve-se utilizar um valor do tipo caracter para este parmetro (mesmo se forem apenas dois campos numricos ou do tipo data). Quando o segundo parmetro for especificado como .T. (softseek), mesmo que a expresso pesquisada no encontrar nenhum registro com este valor, a tabela ser posicionada no prximo valor maior que o especificado no primeiro parmetro, mas mesmo posicionando no prximo valor esta funo retornar .F. (pois no encontrou). Quando no for especificado este valor ou estiver .F. e falhar o valor de pesquisa, a tabela ser posicionada em LASTREC + 1 e ser setada a flag de EOF. Se o terceiro parmetro for especificado com valor .T. a funo posiciona a tabela no ltimo registro com o valor procurado, caso no seja especificado ou for .F., ser posicionada na primeira ocorrncia.

Exemplo: // Este exemplo demonstra como se pode utilizar o DBSEEK para busca de valores numricos. USE Clientes NEW ORDLISTADD ("/teste/ind1.cdx") // Expresso Num (campo numrico) DBSEEK(100) // Retorna: .F. EOF() // Retorna: .T. DBSEEK(100,.T.) // Retorna: .F. EOF() // Retorna: .F. (pois o softseek posicionou no prximo registro) // Este exemplo demonstra como se pode utilizar o DBSEEK para percorrer todos os registros de Clientes com o nome joao e vencimentos a partir de janeiro de 2001. USE Clientes NEW ORDLISTADD ("/teste/ind2.cdx") // Expresso Nome+Venc (campo caracter + data) DBSEEK("joao200101",.T.) // Procura a primeira ocorrncia de Nome "joao" e vencimento maior que Janeiro de 2001 WHILE !EOF() .AND. Nome == "joao" DBSKIP() ENDDO

DBSETDRIVER Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETDRIVER ( [ cNOVORDD ] ) --> cULTIMORDD Parmetros Argumento cNOVORDD Retorno Tipo Caracter Descrio DBSETDRIVER() pode ser utilizada apenas para verificar qual o RDD que est definido como padro quando for omitido seu parmetro. Ela tambm pode ser utilizada para especificar outro RDD como padro, especificando-o atravs do parmetro. Exemplo: // Este exemplo demonstra como se pode utilizar o DBSETDRIVER para alterar o valor do RDD padro. DBSETDRIVER("CTREECDX") // Retorna: DBFCDX DBSETDRIVER() // Retorna: CTREECDX Descrio Nome do RDD padro corrente Tipo Descrio Caract Novo nome do RDD a ser definido como padro. er Verso 5.08 Verso 6.09 Verso 7.10

DBSETFILTER Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETFILTER ( < @bCONDICAO > , < @cCONDICAO > ) --> uRET Parmetros Argumento bCONDICAO cCONDICAO Retorno Tipo (NULO) Descrio DBSETFILTER utilizada para setar um filtro nos registros da tabela corrente especificado atravs do bloco de cdigo no primeiro parmetro. Quando um registro no est dentro do filtro setado ele continua existindo fisicamente, mas no logicamente (nas funes de manipulao de banco de dados como DBGOTOP, DBSEEK, DBSKIP, etc). Exemplo: // Este exemplo demonstra como se pode utilizar o DBSETFILTER para filtrar todos os clientes com menos de 40 anos. USE Cliente NEW DBSETFILTER( {||Idade < 40}, "Idade < 40" ) DBGOTOP() Descrio Sem retorno. Tipo Descrio CodeExpresso do filtro na forma executvel. Block Caracter Expresso do filtro na forma de string. Verso 5.08 Verso 6.09 Verso 7.10

DBSETINDEX Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETINDEX ( < @cARQINDICE > ) --> uRET Parmetros Argumento cARQINDICE Retorno Tipo (NULO) Descrio DBSETINDEX() utilizada para acrescentar uma ou mais ordens de determinado ndice na lista de ordens ativas da rea de trabalho. Quando o arquivo de ndice possui apenas uma ordem, a mesma acrescentada lista e torna-se ativa. Quando o ndice possui mais de uma ordem, todas so acrescentadas lista e a primeira torna-se ativa. Para se utilizar arquivos de extenso padro do RDD, este dado pode ser omitido no primeiro parmetro, mas caso contrrio deve ser especificado. Exemplo: // Este exemplo demonstra como se pode utilizar o DBSETINDEX para acrescentar novos ndices lista de ordens. USE Cliente NEW DBSETINDEX("Ind1") DBSETINDEX("\teste\Ind2.cdx") Descrio Sem retorno. Tipo Descrio Caract Nome do arquivo de ndice, com ou sem diretrio er Verso 5.08 Verso 6.09 Verso 7.10

DBSETNICKNAME Reviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETNICKNAME ( < cINDICE > , [ cAPELIDO ] ) --> cAPELIDO Parmetros Argumento cINDICE cAPELIDO Retorno Tipo Caracter Descrio DBSETNICKNAME utilizada para colocar um apelido em determinada ordem especificada pelo primeiro parmetro. Caso seja omitido o nome do apelido a ser dado, a funo apenas verifica o apelido corrente. Exemplo: // Este exemplo demonstra como se pode utilizar o DBSETNICKNAME para setar um novo apelido e verificar qual o apelido atual. USE Cliente NEW DBSETNICKNAME("IndNome") // retorna: "" DBSETNICKNAME("IndNome","NOME") // retorna: "" DBSETNICKNAME("IndNome") // retorna: "NOME" Descrio Retorna "" (String vazia) se no conseguiu encontrar a ordem especificada, no conseguiu setar o apelido ou no havia apelido. Retorna o apelido corrente. Tipo Descrio Caract Nome da ordem que deve receber o apelido. er Caract Nome do apelido da ordem a ser setada. er Verso 5.08 Verso 6.09 Verso 7.10

DBSETORDER Reviso: 09/04/2003 Abrangncia Verso 5.07 Sintaxe DBSETORDER ( < nOrdem > ) --> NIL Parmetros Argumento nOrdem Retorno Tipo (NULO) Descrio Esta funo utilizada para selecionar a ordem ativa da rea de trabalho. Esta ordem a responsvel seqncia lgica dos registros da tabela corrente. Exemplo: // Este para exemplo demonstra selecionar INDEX como se a Cliente TO pode utilizar ordem o DBSETORDER corrente. NEW Nome,Cep Descrio Esta funo sempre retorna NIL. Tipo Descrio Numri nOrdem corresponde ao nmero da posio da ordem co na lista de ordens ativas. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

USE SET DBSETORDER(2)

Caso seja setada a ordem 0 , a tabela corrente na area de trabalho ser colocada na ordem natural , isto , a ordem na qual os registros foram acrescentados, porm os indexadores so mantidos abertos. Vale salientar que , quando alteramos a ordem atual de uma determinada tabela , o registro atual no desposicionado.

DBSKIP Reviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBSKIP ( [ NREGISTROS ] ) --> NIL Parmetros Argumento NREGISTROS Tipo Descrio Nmero de registros a ser deslocado a partir do Numri corrente. Se for positivo, desloca em direo ao final co da tabela. Se for negativo, ao incio da tabela. Valor default: 1. Verso 5.08 Verso 6.09 Verso 7.10

Retorno Tipo Caracter Descrio Desloca para outro registro na tabela corrente. Esta funo utilizada para deslocar para outro registro a partir do registro atual. O deslocamento lgico, ou seja, leva em considerao ordem no ndice e tambm filtro (se existir). Caso passe do incio da tabela, posiciona no primeiro registro e seta BOF. Caso passe do final da tabela, posiciona no registro "LastRec()+1" e seta EOF. Neste ltimo caso, se a RDD for TopConnect, o Recno() retornado ser por conveno "LastRec() + 5000". Descrio Sem retorno.

DBSTRUCT Reviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBSTRUCT ( ) --> aStruDB Retorno Tipo Array Descrio Retorna a estrutura da tabela corrente. Esta funo utilizada para verificar a estrutura da tabela corrente da mesma forma que utilizada para criar a tabela com a funo DBCREATE. Para isto ela cria um array para gravar as informaes e as retorna. Veja AFields( ) Tambm Descrio Array com a estrutura dos campos. Cada elemento um subarray contendo Nome, Tipo, Tamanho e Decimais. Verso 5.08 Verso 6.09 Verso 7.10

DBUNLOCK Reviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBUNLOCK ( ) --> NIL Retorno Tipo Caracter Descrio Retira bloqueios de registros e de arquivo da tabela corrente. Descrio Sem retorno. Verso 5.08 Verso 6.09 Verso 7.10

DBUNLOCKALL Reviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBUNLOCKALL ( ) --> NIL Retorno Tipo Caracter Descrio Retira o bloqueio de todos os registros e arquivos de todas as tabelas abertas. Esta funo utilizada para liberar todos os registros bloqueados e equivalente a executar DBUNLOCK para todas as tabelas da rea de trabalho. Descrio Sem retorno. Verso 5.08 Verso 6.09 Verso 7.10

DELETED Reviso: 09/05/2003 Abrangncia Verso 5.07 Sintaxe DELETED ( ) --> lDeleted Retorno Tipo Lgico Descrio Verifica se o registro est com marca de excludo. Quando o registro excludo, permanece fisicamente na tabela, mas fica marcado como excludo. Esta funo verifica este estado. Se nenhuma rea est selecionada, retorna .F.. Quando executada a funo DBPACK todos os registros marcados como deletados so apagados fisicamente. A funo DBRECALL retira todas as marcas. Exemplo // Este exemplo verifica se determinado registro est deletado, caso positivo, mostra uma mensagem: USE "\DADOSADV\AA1990.DBF" SHARED NEW DBGOTO(100) IF DELETED() Messagebox("O registro atual foi deletado","Erro", 0) ENDIF Descrio Se for .T. o registro tem a marca de excludo, se for .F., o registro no tem a marca (ou no h rea em uso). Verso 5.08 Verso 6.09 Verso 7.10

FIELDBLOCK Reviso: 12/06/2003 Abrangncia Verso 5.07 Sintaxe FIELDBLOCK ( < cCampo > ) --> bBloco Parmetros Argumento cCampo Retorno Tipo Descrio Code-Block Bloco de cdigo para o campo especificado na tabela corrente. Descrio Retorna um bloco de cdigo para um campo determinado da tabela corrente. Esta funo utilizada para retornar um bloco de cdigo executvel com o campo especificado. Quando o bloco resultante executado sem parmetro, recupera o valor armazenado no campo. Quando executado com um valor, seta este valor no determinado campo. Portanto, o bloco retornado similar a: &("{|Valor| IF(Valor==NIL, Campo, Campo:=Valor)}") Sendo: Campo = parmetro da funo FIELDBLOCK() Valor = valor executado no bloco de cdigo Exemplo // Este exemplo mostra como se pode usar o FIELDBLOCK para criar o bloco de cdigo para o campo 'Nome' da tabela corrente na varivel bBloco: USE Cliente ALIAS Cliente bBloco := FIELDBLOCK("NOME") NEW VIA "DBFCDX" Tipo Descrio Caract Nome do campo a ser retornado o bloco de cdigo. er Verso 5.08 Verso 6.09 Verso 7.10

HEADER Reviso: 03/10/2002 Abrangncia Verso 5.07 Sintaxe HEADER ( ) --> nBytes Retorno Tipo Caracter Descrio HEADER() uma funao de tratamento de banco de dados utilizado com LASTREC(), RECSIZE(), e DISKSPACE() para criar rotinas de cpia de segurana de arquivos. O padrao que a funao HEADER() opere na rea de trabalho correntemente selecionada. Pode-se faz-la operar em uma rea de trabalho nao selecionada se esta for especificada em uma expresso alias. Descrio HEADER() retorna a quantidade de bytes no cabealho do arquivo de banco de dados corrente na forma de um valor numrico inteiro. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

LUPDATE Reviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe LUPDATE ( ) --> dLastUpdate Retorno Tipo Data Descrio Retorna um valor do tipo Data , indicando a data da ultima modificao e fechamento da Tabela. Caso no haja tabela selecionada na rea de trabalho atual , a funo retornar uma data vazia (ctod ("")) . Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio Verifica a data da ltima modificao da tabela corrente. Esta funo verifica qual a data da ltima modificao e fechamento da tabela corrente, caso no exista tabela corrente retornada uma data em branco. Exemplo : // Mostra a data da ltima modificao da tabela corrente, dModificacao := LUpdate() IF (EMPTY(dModificacao)) CONOUT("No h tabela corrente") ELSE CONOUT(("Data da ultima modificacao : " + DTOS(dModificacao))) ENDIF

SELECT Reviso: 24/02/2003 Abrangncia Verso 5.07 Sintaxe SELECT ( [ cAlias ] ) --> nAreaTrabalho Parmetros Argumento cAlias Retorno Tipo Numrico Descrio SELECT() uma funao de tratamento de bancos de dados que determina o nmero da rea de trabalho de um alias. O nmero retornado pode variar de zero a 250. Se <cAlias> no for especificado, retornado o nmero da rea de trabalho corrente. Caso <cAlias> seja especificado e o alias nao existir, SELECT() retorna zero. Exemplos * O exemplo a seguir ilustra como utilizar SELECT() para determinar qual rea de trabalho o comando USE...NEW selecionou: USE SELECT conout(SELECT("Sales")) Sales // Resulta: 4 NEW 1 Descrio SELECT() retorna a rea de trabalho do alias especificado na forma de um valor numrico inteiro. Tipo Descrio Caract <cAlias> o nome da rea de trabalho a ser er verificada. Verso 5.08 Verso 6.09 Verso 7.10

* Para re-selecionar o valor retornado da funao SELECT(), use o comando SELECT com a sintaxe SELECT (<idVarMem>), desta forma: USE nWorkArea USE SELECT (nWorkArea) Sales := Customer NEW SELECT() NEW

TCGENQRY Reviso: 25/07/2003 Abrangncia Verso 5.07 Sintaxe TCGENQRY ( [ xPar1 ] , [ xPar2 ] , < cQuery > ) --> "" Parmetros Argumento xPar1 xPar2 cQuery Retorno Tipo Caracter Descrio Define a execuo de uma Query. Esta funo determina que a prxima chamada DBUseArea ser a abertura de uma Query e no de tabela. Exemplo cQuery := 'SELECT X2_CHAVE CHAVE, R_E_C_N_O_ RECNO from SX2990' cQuery dbUseArea(.T., while dbSkip() enddo dbCloseArea() USED Reviso: 09/07/2003 Abrangncia 'TOPCONN', := ChangeQuery(cQuery) TCGenQry(,,cQuery),'TRB', .T.) !Eof() conout(TRB->CHAVE) .F., Descrio Sempre retorna uma string vazia. Tipo Descrio (Qualque Parmetros apenas para compatibilizao. No tem r) funo (Qualque Parmetros apenas para compatibilizao. No tem r) funo Caracter Contm a expresso da query que ser aberta. Verso 5.08 Verso 6.09 Verso 7.10

Verso 5.07 Verses Anteriores Sintaxe USED ( ) --> lDbfUsed Retorno Tipo Lgico Descrio

Verso 5.08

Verso 6.09

Verso 7.10

Verso 8.11

Descrio USED() retorna verdadeiro (.T.) caso haja um arquivo de banco de dados em uso; caso contrrio, retorna falso (.F.).

USED() uma funao de tratamento de banco de dados utilizada para determinar se h um arquivo de banco de dados em uso em uma rea de trabalho especfica. O padrao que USED() opere na rea de trabalho correntemente selecionada. Pode-se faz-la operar em uma rea de trabalho nao selecionada se esta for especificada em uma expressao alias.

__DBPACK Reviso: 09/05/2003 Abrangncia Verso 5.07 Sintaxe __DBPACK ( ) --> URET Retorno Tipo (NULO) Descrio Remove todos os registros com marca de excludo da tabela. Esta funo apaga (fisicamente) todos os registros "excludos" da tabela corrente. Exemplo // Este exemplo demonstra como se pode utilizar a funo DBDELETE() para marcar alguns registros como deletados e o comando PACK para delet-los fisicamente. USE DBGOTO(100) DBDELETE() DBGOTO(105) DBDELETE() DBGOTO(110) DBDELETE() // Se __DBPACK() a Clientes NEW Descrio Retorno nulo. Verso 5.08 Verso 6.09 Verso 7.10

excluso

for

confirmada:

Funes de disco e arquivos. ADIR Reviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe ADIR ( [ ] , [ ] , [ ] , [ ] , [ ] , [ ] ) --> nArquivos Parmetros Argumento Tipo Descrio <cEspecArq> a especificaao dos arquivos a serem incluidos na pesquisa do diretrio padrao. uma Caract especificaao de arquivo padrao que pode incluir os er caracteres coringa do tipo * e ?, bem como referncia a diretrio e path. Caso nao seja especificado, o padrao assumido *.*. <aNomesArq> o vetor a ser preenchido com os nomes de arquivo que correspondem a <cEspecArq>. Array Cada elemento contm o nome do arquivo e extensao na forma de uma cadeia de caracteres em letras maisculas. <aTamanhos> o vetor a ser preenchido com os Array tamanhos dos arquivos correspondentes no vetor <aNomesArq>. Cada elemento numrico. <aDatas> o vetor a ser preenchido com as datas dos Array arquivos correspondentes no vetor <aNomesArq>. Cada elemento uma data. <aHoras> o vetor a ser preenchido com as horas dos arquivos correspondentes no vetor <aNomesArq>. Array Cada elemento preenchido contm uma cadeia de caracteres da forma: hh:mm:ss. <aAtributos> o vetor a ser preenchido com os atributos dos arquivos correspondentes no vetor <aFilenames>. Cada elemento uma cadeia de caracteres. Caso <aAtributos> seja especificado, os Array arquivos de diretrio, sistema, e escondidos sao incluidos, assim como os arquivos normais. Se <aAtributos> nao for especificado, somente os arquivos normais sao incluidos. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

<cEspecArq>

<aNomesArq>

<aTamanhos> <aDatas>

<aHoras>

<aAtributos>

Retorno Tipo Descrio

Numrico Descrio

ADIR() retorna a quantidade de arquivos que correspondem ao esqueleto de diretrio especificado.

ADIR() uma funao de tratamento de vetor que executa duas operaoes bsicas. Primeiro, ele retorna a quantidade de arquivos que correspondem especificaao de arquivo. Segundo, preenche uma srie de vetores com nomes de arquivos, tamanhos, datas, horas e atributos. ADIR() uma funao de compatibilidade e portanto desaconselhada. Ele est superado pela funao DIRECTORY(), que retorna todas as informaoes de arquivo em um vetor multi-dimensional. OBSERVAO Diretrios: Caso o argumento <aAtributos> seja especificado e <cEspecArq> seja especificado como *.*, os diretrios serao incluidos em <aNomesArq>. No vetor <aAtributos>, os diretrios sao indicados com um valor atributo de "D." Se ADIR() for executado dentro de um subdiretrio, as duas primeiras entradas do vetor <aNomesArq> sao "." e "..", os "alias" dos diretrios corrente e raiz. A data e hora da ltima atualizaao sao informadas para diretrios, mas o tamanho de um diretrio sempre zero.

CPYS2T Reviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe CPYS2T ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess Parmetros Argumento cOrigem cDestino lCompacta Retorno Tipo Lgico Descrio Copia um arquivo, do servidor para o cliente ( Remote ). .Caso a compactao seja habilitada (lCompacta ), os dados sero transmitidos de maneira compactada e descompactados antes do uso. Exemplo : CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .T. ) // Copia arquivos do servidor para o remote local, compactando antes de transmitir CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .F. ) // Copia arquivos do servidor para o remote local, sem compactar antes de transmitir Descrio lSucess retorna .T. caso o arquivo seja copiado com sucesso , ou .F. em caso de falha na cpia. Tipo Descrio Nome(s) dos arquivos a serem copiados, aceita apenas Caract arquivos er no servidor, WildCards ( * e ? ) so aceitos normalmente. Caract Diretrio com o destino dos arquivos no Client er ( Remote ) Indica se a cpia deve ser feita compactando o arquivo Lgico antes do envio. Verso 5.08 Verso 6.09 Verso 7.10

CPYT2S Reviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe CPYT2S ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess Parmetros Argumento cOrigem cDestino lCompacta Retorno Tipo Lgico Descrio Copia um arquivo, do cliente ( Remote ) para o servidor,. Caso a compactao seja habilitada ( lCompacta ), os dados sero transmitidos de maneira compacta e descompactados antes do uso. Exemplo CpyT2S( "C:\TEMP\MANUAL.DOC","\BKP", .T. ) // cliente( remote ) para o Servidor compactando Copia antes arquivos do de transmitir Descrio lSucess indica , caso verdadeiro , que a cpia foi realizada com sucesso. Caso retorne .F. , houve erro na copia do arquivo. Tipo Descrio Nomes dos arquivos a serem copiados, aceita apenas Caract arquivos locais ( Cliente ), WildCards ( * e ? ) so er aceitos normalmente. Caract Diretrio com o destino dos arquivos no Servidor er lCompacta indica se o(s) arquivo(s) deve(m) ser Lgico enviados em formato compactado. Verso 5.08 Verso 6.09 Verso 7.10

CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP" ) // Copia arquivos do cliente( remote ) para o Servidor sem compactar.

CURDIR Reviso: 28/04/2003 Abrangncia Verso 5.07 Sintaxe CURDIR ( [ cNovoPath ] ) --> cPathAtual Parmetros Argumento cNovoPath Retorno Tipo Caracter Descrio Retorna o diretrio corrente do servidor. O caminho retornado sempre relativo o RootPath definido na configurao do Environment no .INI do Protheus Server. Inicialmente , o diretrio atual da aplicao o constante na chave StartPath , tambm definido na configurao do Environment no .INI do Protheus Server. Caso seja passado o parmetro cNovoPath , este path assumido como sendo o Path atual. Caso o path recebido como parmetro no exista , seja invlido , ou seja um path absoluto ( iniciado com uma letra de drive ou caimnho de rede ) , a funo no ir setar o novo path , mantendo o atual . Descrio Diretrio corrente, sem a primeira barra. Tipo Descrio Caract Caminho relativo , com o novo diretrio que ser er ajustado como corrente. Verso 5.08 Verso 6.09 Verso 7.10

DIRECTORY Reviso: 17/07/2002 Abrangncia Verso 5.07 Sintaxe DIRECTORY ( < cDirSpec > , [ ] ) --> aDiretorio Parmetros Argumento Tipo Descrio <cDirSpec> especifica o drive, diretrio e arquivo para a pesquisa no diretrio. Caracteres do tipo coringa sao permitidos na especificaao de arquivos. Caso Caract <cDirSpec> seja omitido, o valor padrao *.*. er O caminho especificado pode estar na estao (remote) , ou no servidor , obedecendo s definices de Path Absoluto / Relativo de acesso <cAtributos> especifica que arquivos com atributos especiais devem ser incluidos na informaao Caract retornada. <cAtributos> consiste em uma cadeia de er caracteres que contm um ou mais dos seguintes caracteres, contidos na tabela adicional A , especificada abaixo: Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

cDirSpec

<cAtributos>

Retorno Tipo Array Descrio DIRECTORY() uma funao de tratamento de ambiente que retorna informaoes a respeito dos arquivos no diretrio corrente ou especificado. semelhante a ADIR(), porm retorna um nico vetor ao invs de adicionar valores a uma srie de vetores existentes passados por referncia. DIRECTORY() pode ser utilizada para realizar operaoes em conjuntos de arquivos. Em combinaao com AEVAL(), voc pode definir um bloco que pode ser aplicado a todos os arquivos que atendam a <cDirSpec> especificada. Para tornar as referncias aos vrios elementos de cada sub-vetor de arquivo mais legveis, fornecido o arquivo header Directry.ch, que contm os #defines para os subarray subscripts. Descrio DIRECTORY() retorna um vetor de sub-vetores, sendo que cada subvetor contm informaoes sobre cada arquivo que atenda a <cDirSpec>.Veja maiores detalhes na Tabela B, abaixo discriminada.

TABELA A: Atributos de DIRECTORY() Atribut Significado o H Incluir arquivos ocultos S Incluir arquivos de sistema D Incluir diretrios Procura pelo volume DOS e exclui outros V arquivos Arquivos normais sao sempre incluidos na pesquisa, a nao ser que V seja especificado. TABELA B: Estrutura dos Subvetores de DIRECTORY() Posia Metasmbo Directry. o lo ch 1 cNome F_NAME 2 cTamanho F_SIZE 3 dData F_DATE 4 cHora F_TIME 5 cAtributos F_ATT

DIRREMOVE Reviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe DIRREMOVE ( < cDiretorio > ) --> lSucesso Parmetros Argumento cDiretorio Retorno Tipo Lgico Descrio lSucesso ser .T. caso o diretrio tenha sido eliminado , ou .F. caso no seja possvel excluir o diretrio. Quando a funo DirRemove retornar .F. , possvel obter mais detalhes da ocorrncia recuperando o cdigo do Erro atravs da funo FError(). Tipo Descrio Caract Nome do diretrio a ser removido. er Verso 5.08 Verso 6.09 Verso 7.10

Descrio DIRREMOVE() elimina um diretrio especifico. Caso especifiquemos um path sem a unidade de disco , ele ser considerado no ambiente do Servidor , a partir do RootPath do ambiente ( caso o path comee com \ ) , ou a partir do diretrio corrente ( caso o path no seja iniciado com \ ) . E , quando especificado um path absoluto ( com unidade de disco preenchida ) , a funo ser executada na estao onde est sendo executado o Protheus Remote. Quando executamos a funo DirRemove() em JOB ( processo isolado no Server , sem interface ) , no possvel especificar um Path absoluto de disco. Caso isto seja realizado , a funo retornar .F. e FError() retornar -1 ( Syntax Error ) . Note que necessrio ter direitos suficientes para remover um diretrio, e o diretrio a ser eliminado precisa estar vazio, sem subdiretrios ou arquivos dentro do mesmo.

DISKSPACE Reviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe DISKSPACE ( [ nDrive ] ) --> nBytesFree Parmetros Argumento nDrive Retorno Tipo Numrico Descrio DISKSPACE() uma funo de ambiente que determina quantos bytes esto disponveis em uma determinada uinidade de disco. Esta funo obtm a informao sempre relativa estao onde est sendo executado o Protheus Remote. Atravs do parmetro nDRive , selecionamos qual a unidade de disco que desejamos obter a informao do espao livre , onde: 0 1 2 3 4 : Unidade : : : Drive de disco atual da Drive A: da Drive B: da Drive C: da D: da estao remota ... e estao (DEFAULT). estao remota. estao remota. estao remota. assim por diante. Descrio Nmero de bytes disponveis no disco informado como parmetro. Tipo Descrio Nmero do drive, onde 0 o espao na unidade de Numri disco corrente, e 1 o drive A: do cliente, 2 o drive co B: do cliente, etc. Verso 5.08 Verso 6.09 Verso 7.10

Caso a funo DiskSpace seja executada atravs de um Job ( processo isolado no Servidor , sem interface Remota ) , ou seja passado um argumento de unidade de disco inexistente ou indisponvel , a funo DISKSPACE() retornar -1

FCLOSE Reviso: 09/04/2003 Abrangncia Verso 5.07 Sintaxe FCLOSE ( < nHandle > ) --> lError Parmetros Argumento nHandle Retorno Tipo Lgico Descrio FCLOSE() uma funao de tratamento de arquivos de baixo nvel utilizada para fechar arquivos binrios e forar que os respectivos buffers do DOS sejam escritos no disco. Caso a operaao falhe, FCLOSE() retorna falso (.F.). FERROR() pode entao ser usado para determinar a razao exata da falha. Por exemplo, ao tentar-se usar FCLOSE() com um handle (tratamento dado ao arquivo pelo sistema operacional) invlido retorna falso (.F.) e FERROR() retorna erro 6 do DOS, invalid handle. Consulte FERROR() para obter uma lista completa dos cdigos de erro. Aviso Esta funao permite acesso de baixo nvel aos arquivos e dispositivos do DOS. Ela deve ser utilizada com extremo cuidado e exige que se conhea a fundo o sistema operacional utilizado. Exemplos O exemplo a seguir utiliza FCLOSE() para fechar um arquivo binrio recm criado e exibe uma mensagem de erro caso o fechamento falhe: #include nHandle := FCREATE("Testfile", "Fileio.ch" FC_NORMAL) Descrio FCLOSE() retorna falso (.F.) se ocorre um erro enquanto os buffers estao sendo escritos; do contrrio, retorna verdadeiro (.T.). Tipo Descrio Numri <nHandle> o handle do arquivo obtido previamente co atravs de FOPEN() ou FCREATE(). Verso 5.08 Verso 6.09 Verso 7.10

If conout( EndIf "Erro ao fechar arquivo, erro numero:

!FCLOSE(nHandle) ", FERROR() )

FCREATE Reviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe FCREATE ( < cArquivo > , [ nAtributo ] ) --> nHandle Parmetros Argumento cArquivo Tipo Descrio Nome do arquivo a ser criado , podendo ser Caracte especificado um path absoluto ou relativo , para criar r arquivos no ambiente local ( Remote ) ou no Servidor , respectivamente . Atributos do arquivo a ser criado (Vide Tabela de Numri atributos abaixo). Caso no especificado , o DEFAULT co FC_NORMAL. Verso 5.08 Verso 6.09 Verso 7.10

nAtributo Retorno Tipo Numrico

Descrio A funo retornar o Handle do arquivo para ser usado nas demais funes de manuteno de arquivo. O Handle ser maior ou igual a zero. Caso no seja possvel criar o arquivo , a funo retornar o handle -1 , e ser possvel obter maiores detalhes da ocorrencia atravs da funo FERror()

Descrio FCREATE() uma funo de baixo-nvel que permite a manipulao direta dos arquivos textos como binrios. Ao ser executada FCREATE() cria um arquivo ou elimina o seu contedo, e retorna o handle (manipulador) do arquivo, para ser usado nas demais funes de manuteno de arquivo. Aps ser utilizado , o Arquivo deve ser fechado atravs da funo FCLOSE(). Na tabela abaixo , esto descritos os atributos para criao do arquivo , definidos no arquivo header fileio.ch Valo Descrio r Criao normal do Arquivo FC_NORMAL 0 (default/padro). FC_READON Cria o arquivo protegido para 1 LY gravao. FC_HIDDEN 2 Cria o arquivo como oculto. Constante

FC_SYSTEM 4

Cria o arquivo como sistema.

Caso desejemos especificar mais de um atributo , basta som-los . Por exemplo , para criar um arquivo protegiro contra gravao e escondido , passamos como atributo FC_READONLY + FC_HIDDEN . ATENO : Caso o arquivo j exista , o contedo do mesmo ser ELIMINADO , e seu tamanho ser truncado para 0 ( ZERO ) bytes.

FERASE Reviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe FERASE ( < cArquivo > ) --> nStatus Parmetros Argumento cArquivo Tipo Descrio Nome do arquivo a ser apagado . Pode ser Caract especificado um path absoluto ou relativo , para er apagar arquivos na estao local ( Remote ) ou no Servidor , respctivamente . Verso 5.08 Verso 6.09 Verso 7.10

Retorno Tipo Numrico Descrio A funo retornar 0 caso o arquivop seja apagado com sucesso , e -1 caso no seja possvel apagar o arquivo. Caso a funo retorne -1 , possvel obter mauires detalhes da ocorrncia atravs da funo fError()

Descrio Atravs da funo Ferase , possvel apagar um arquivo no disco . O Arquivo pode estar no Servidor ou na estao local (Remote). O Arquivo para ser apagado deve estar fechado. No permitido a utilizao de caracteres coringa (wildcards).

FILE Reviso: 04/05/2003 Abrangncia Verso 5.07 Sintaxe FILE ( < cArquivo > ) --> lExiste Parmetros Argumento cArquivo Tipo Descrio Nome do arquivo , podendo ser especificado um path Caract (caminho ) . Caminhos locais (Remote) ou caminhos de er servidor so aceitos , bem como wildcards ( Caracteres *e?) Verso 5.08 Verso 6.09 Verso 7.10

Retorno Tipo Lgico Descrio Verifica se existe um arquivo ou um padro de arquivos, no diretrio. Pordemos especificar caminhos absolutos ( arquivos na estao - Remote ) ou relativos ( A partir do RootPath do Protheus Server) . Os caracteres * e ? ( wildcards). so aceitos. Descrio O retorno ser .T. caso o arquivo especificado exista. Caso o mesmo no exista no path especificado , a funo retorna .F.

FOPEN Reviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe FOPEN ( < cArq > , [ nModo ] ) --> nRet Parmetros Argumento cArq Tipo Descrio Caracte Nome do arquivo a ser aberto que inclui o path caso r haja um. Modo de acesso DOS solicitado que indica como o arquivo aberto deve ser acessado. O acesso de uma das categorias relacionadas na tabela A e as Numri restries de compartilhamento relacionada na Tabela co B. O modo padrao zero, somente para leitura, com compartilhamento por Compatibilidade. Ao definirmos o modo de acesso , devemos somar um elemento da Tabela A com um elemento da Tabela B. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

nModo

Retorno Tipo Numrico Descrio Abre um arquivo binrio. Descrio FOPEN() retorna o handle de arquivo aberto na faixa de zero a 65.535. Caso ocorra um erro, FOPEN() retorna -1.

FOPEN() uma funao de tratamento de arquivo de baixo nvel que abre um arquivo binrio existente para que este possa ser lido e escrito, dependendo do argumento <nModo>. Toda vez que houver um erro na abertura do arquivo, FERROR() pode ser usado para retornar o cdigo de erro do Sistema Operacional. Por exemplo, caso o arquivo nao exista, FOPEN() retorna -1 e FERROR() retorna 2 para indicar que o arquivo nao foi encontrado. Veja FERROR() para uma lista completa dos cdigos de erro. Caso o arquivo especificado seja aberto, o valor retornado o handle (manipulador) do Sistema Operacional para o arquivo. Este valor semelhante a um alias no sistema de banco de dados, e ele exigido para identificar o arquivo aberto para as outras funoes de tratamento de arquivo. Portanto, importante sempre atribuir o valor que foi retornado a uma varivel para uso posterior, como mostra o exemplo desta funo.

Aviso Esta funao permite acesso de baixo nvel a arquivos e dispositivos. Ela deve ser utilizada com extremo cuidado e exige que se conhea a fundo o sistema operacional utilizado. Notas

FOPEN procura o arquivo no diretrio corrente e nos diretrios configurados na varivel de pesquisa do Sistema Operacional, a nao ser que um path seja declarado explicitamente como parte do argumento <cArq>. Por serem executadas em um ambiente cliente-servidor, as funes de tratamento de arquivos podem trabalhar em arquivos localizados no cliente (estao) ou no servidor. O ADVPL identifica o local onde o arquivo ser manipulado atravs da existncia ou no da letra do drive no nome do arquivo passado em <cArq>. Ou seja, se o arquivo for especificado com a letra do drive, ser aberto na estao. Caso contrrio, ser aberto no servidor com o diretrio configurado como rootpath sendo o diretrio raz para localizao do arquivo.

Tabela A: Modos de Acesso a Arquivos Binrios Mod Constante o (fileio.ch) 0 1 2 FO_READ Operao

Aberto para leitura (padro assumido) FO_WRITE Aberto para gravao FO_READWRITE Aberto para leitura e gravao

Tabela B: Modos de Acesso de Compartilhamento a Arquivos Binrios Mod o 0 16 32 48 64 64 Constante Operao (fileio.ch) FO_COMPAT Modo de Compatibilidade (Default) FO_EXCLUSIVE Acesso total exclusivo Acesso bloqueando a gravao de outros processos ao FO_DENYWRITE arquivo. Acesso bloqueando a leitura de outros processos ao FO_DENYREAD arquivo. Acesso compartilhado. Permite a leitura e gravao por FO_DENYNONE outros processos ao arquivo.. FO_SHARED Igual FO_DENYNONE

FREAD Reviso: 19/10/2002

Abrangncia Verso 5.07 Sintaxe FREAD ( < nHanvle > , < cBuffer > , < nQtdBytes > ) --> nBytesLidos Parmetros Argumento nHanvle Tipo Descrio o manipulador (Handle) retornado pelas funes Numri FOPEN(), co FCREATE(), FOPENPORT(), que faz referncia ao arquivo a ser lido. o nome de uma varivel do tipo String , a ser utilizada como buffer de leitura , onde os dados lidos devero ser armazenados. O tamanho desta varivel deve ser maior ou igual ao tamanho informado em Caracte nQtdBytes. r Esta varivel deve ser sempre passada por referncia. ( @ antes do nome da varivel ), caso contrrio os dados lidos no sero retornados. Numri Define a quantidade de Bytes que devem ser lidas do co arquivo a partor posicionamento do ponteiro atual. Verso 5.08 Verso 6.09 Verso 7.10

cBuffer

nQtdBytes Retorno Tipo Numrico Descrio

Descrio Quantidades de bytes lidos. Caso a quantidade seja menor que a solicitada, isto indica erro de leitura ou final de arquivo, Verifique a funo FERROR() para maiores detalhes.

FREAD() l os dados a partir um arquivo aberto, atravs de FOPEN(), FCREATE() e/ou FOPENPORT(), e armazena os dados lidos por referncia no buffer informado. FREAD() ler at o nmero de bytes informado em nQtdBytes; caso acontea algum erro ou o arquivo chegue ao final, FREAD() retornar um nmero menor que o especificado em nQtdBytes. FREAD() l normalmente caracteres de controle (ASC 128, ASC 0, etc.). A varivel String a ser utiilzada como buffer de leitura deve ser sempre pralocado e passado como referncia. Caso contrrio, os dados no podero ser retornados. FREAD() l a partir da posio atual do ponteiro atual do arquivo , que pode ser ajustado ou modificado pelas funes FSEEK() , FWRITE() ou FREADSTR().

FREADSTR Reviso: 02/06/2003 Abrangncia Verso 5.07 Sintaxe FREADSTR ( < nHandle > , < nQtdBytes > ) --> cLidos Parmetros Argumento nHandle nQtdBytes Retorno Tipo Caracter Descrio L caracteres de um arquivo binrio. Descrio Retorna lidos. Tipo Numri co Numri co Descrio o manipulador retornado pelas funes FOPEN(), FCREATE(), FOPENPORT(). Nmero mximo de bytes que devem ser lidos. Verso 5.08 Verso 6.09 Verso 7.10

uma

string

contendo

os

caracteres

FREADSTR() l de um arquivo aberto, atravs de FOPEN(), FCREATE(), FOPENPORT(). FREADSTR() ler at o nmero de bytes informado em nQtdBytes ou at encontrar um CHR(0). Caso acontea algum erro ou o arquivo chegue ao final, FREADSTR() retornar uma string menor do que nQdBytes e colocar o erro em FERROR(). FREADSTR() l a partir da posio atual do ponteiro, que pode ser ajustado pelo FSEEK(), FWRITE( ) ou FREAD().

FRENAME Reviso: 11/06/2003 Abrangncia Verso 5.07 Sintaxe FRENAME ( < cOldFile > , < cNewFile > ) --> nStatus Parmetros Argumento cOldFile cNewFile Retorno Tipo Numrico Descrio Se o status retornado for -1 , ocorreu algum erro na mudana de nome : Verifique se os dois caminhos esto no mesmo ambiente, verifique a existncia do arquivo de origem, se ele no est em uso no momento por outro processo , e verifique se o nome do arquivo de destino j no existe no path de destino especificado. Tipo Descrio Nome do arquivo ser renomeado, aceita caminhos do Caract servidor e caminhos do cliente. Caso no seja er especificado nenhuma unidade de disco e path, considerado o path atual no servidor. Caract Novo nome do arquivo, aceita tambm caminho do er servidor, e caminho do cliente. Verso 5.08 Verso 6.09 Verso 7.10

Descrio Atravs da funo FRENAME() possvel renomear um arquivo para outro nome, tanto no servidor como na estao. Ao renomear um arquivo no esquea que esta arquivo dever estar fechado ( isto , no pode estar em uso por nenhum outro processo ou estao). Caso o arquivo esteja aberto por outro processo , a operao de renomear o arquivo no possvel. A funo fRename() no aceita wildcards ( * e/ou ? ). Vale lembrar que no possvel renomear um arquivo especificando nos parmetros simultaneamente um caminho de servidor e um de estao remota, bem como especificar dois arquivos remotos e executar a funo fername() atravs de um JOB. Caso isto ocorra, a funo retornar -1 , e fError() retornar tambm -1. Importante : Quando especificamos um path diferente nos arquivos de origem e destino , a funo fRename() realiza a funcionalidade de MOVER o arquivo para o Path especificado. FSEEK

Reviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe FSEEK ( < nHandle > , [ nOffSet ] , [ nOrigem ] ) --> nPos Parmetros Argumento nHandle Tipo Descrio Numri Manipulador obtido atravs das funes co FCREATE,FOPEN. nOffSet corresponde ao nmero de bytes no ponteiro de posicionamento do arquivo a ser movido. Pode ser Numri um numero positivo , zero ou negativo, a ser co considerado a partir do parmetro passado em nOrigem. Numri Indica a partir de qual posio do arquivo, o nOffset co ser considerado. Verso 5.08 Verso 6.09 Verso 7.10

nOffSet

nOrigem Retorno Tipo Numrico

Descrio FSEEK() retorna a nova posiao do ponteiro de arquivo com relaao ao incio do arquivo (posiao 0) na forma de um valor numrico inteiro. Este valor nao leva em conta a posiao original do ponteiro de arquivos antes da execuo da funo FSEEK().

Descrio FSEEK() posiciona o ponteiro do arquivo para as prximas operaes de leitura ou gravao. As movimentaes de ponteiros so relativas nOrigem que pode ter os seguintes valores, definidos em fileio.ch: Tabela A: Origem a ser considerada para a movimentao do ponteiro de posicionamento do Arquivo. Orige Constante Operao m Ajusta a partir do inicio do arquivo. 0 FS_SET (Default) FS_RELATI Ajuste relativo a posio atual do 1 VE arquivo. 2 FS_END Ajuste a partir do final do arquivo. FWRITE Reviso: 27/05/2003

Abrangncia Verso 5.07 Sintaxe FWRITE ( < nHandle > , < cBuffer > , [ nQtdBytes ] ) --> nBytesEscritos Parmetros Argumento nHandle Tipo Descrio Numri o manipulador de arquivo ou device retornado pelas co funes FOPEN(), FCREATE(), ou FOPENPORT(). <cBuffer> a cadeia de caracteres a ser escrita no arquivo especificado. O tamanho desta varivel deve Caracte ser maior ou igual ao tamanho informado em r nQtdBytes (caso seja informado o tamanho). <nQtdBytes> indica a quantidade de bytes a serem Numri escritos a partir da posiao corrente do ponteiro de co arquivos. Caso seja omitido, todo o contedo de <cBuffer> escrito. Verso 5.08 Verso 6.09 Verso 7.10

cBuffer

nQtdBytes

Retorno Tipo Descrio FWRITE() retorna a quantidade de bytes escritos na forma de um valor numrico inteiro. Caso o valor retornado seja igual a <nQtdBytes>, a operaao foi bem sucedida. Caso o valor de retorno seja menor que <nBytes> ou zero, ou o disco est cheio ou ocorreu outro erro. Neste caso , utilize a funo FERROR() para obter maiores detalhes da ocorrncia.

Numrico

Descrio Voc pode escrever todo ou parte do contedo do buffer , limitando a quantidade de Bytes atravs do parmetro nQtdBytes. A escrita comea a partir da posio corrente do ponteiro de arquivos, e a funo FWRITE retornar a quantidade real de bytes escritos. Atravs das funes FOPEN(), FCREATE(), ou FOPENPORT(), podemos abrir ou criar um arquivo ou abrir uma porta de comunicao , para o qual sero gravados ou enviados os dados do buffer informado. Por tratar-se de uma funo de manipulao de contedo binrio , so suportados na String cBuffer todos os caracteres da tabela ASCII , inclusive caracteres de controle ( ASC 0 , ASC 12 , ASC 128 , etc... ). Caso acontea alguma falha na gravao , a funo retornar um nmero menor que o nQtdBytes. Neste caso , a funo FERROR() pode ser utilizada para determinar o erro especfico ocorrido. A gravao no arquivo realizada a partir da posio atual do ponteiro , que pode ser ajustado atravs das funes FSEEK() , FREAD() ou FREADSTR().

GETCLIENTDIR Reviso: 04/05/2003 Abrangncia Verso 5.07 Sintaxe GETCLIENTDIR ( ) --> cPath Retorno Tipo Caracter Descrio Retorna o diretrio completo onde o Remote est instalado, informando inclusive a unidade de disco. Observao : Esta funo apenas retornar um resultdo vlido caso seja executada em um programa atravs do Protheus Remote . Caso esta funo seja chamada em JOB , a mesma ocasionar um erro de execuo ( Error to comunicate with Remote ) . Descrio Retona o path onde est instalado o Protheus Remote. Verso 5.08 Verso 6.09 Verso 7.10

GETREMOTEININAME Reviso: 12/06/2003 Abrangncia Verso 6.09 Sintaxe GETREMOTEININAME ( ) --> cArqConf Retorno Tipo Caracter Descrio Retorna o nome do arquivo de configurao do AP Remote. Descrio Path e nome do arquivo de configurao Verso 7.10

GETSRVPROFSTRING Reviso: 03/09/2002 Abrangncia Verso 5.07 Sintaxe GETSRVPROFSTRING ( < cChave > , < cDefault > ) --> cConteudo Parmetros Argumento cChave cDefault Retorno Tipo Caracter Descrio Atravs da funo GetSrvProfString , podemos obter o contedo de uma chave de configurao do environment atual em uso no arquivo de Inicializao do Server Protheus ( APxSrv.ini ) . Descrio Conteudo da chave especificada Tipo Caract er Caract er Descrio Chave do INI do environment a ser lida, cDefault o conteudo da chave a ser retornado caso a chave no seja encontrada no .ini Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

MAKEDIR Reviso: 12/06/2003 Abrangncia Verso 5.07 Sintaxe MAKEDIR ( < cNovoDir > ) --> nResultado Parmetros Argumento cNovoDir Retorno Tipo Numrico Descrio Cria um diretrio na estao ou no servidor APx. Descrio Retorno zero ( 0 ),o diretrio foi criado com sucesso. Caso contrrio, houve erro na criao do diretrio. Tipo Descrio Caract Nome do diretrio a ser er opcionalmente o caminho (path). Verso 5.08 Verso 6.09 Verso 7.10

criado,

incluindo

Caso o diretrio comece com um drive ( Ex: C:, X: ) o diretrio ser criado na estao, caso contrrio ser criado no servidor. MAKEDIR("c:\teste\um") // Cria um diretrio na estacao nResult := MAKEDIR("\teste\um") // Cria o diretorio no servidor Advanced protheus IF nResult != 0 Conout( "Impossivel Criar o diretrio no servidor Protheus", nResult ) ENDIF MAKEDIR( "teste" ) // Exemplo tambm vlido ( Criando o diretrio no servidor ) dentro do diretrio corrente

MSCOMPRESS Reviso: 07/05/2003 Abrangncia Verso 6.09 Sintaxe MSCOMPRESS ( < cArq | aArquivos > , [ cDestino ] , [ cSenha ] ) --> cFileName Parmetros Argumento Descrio Arquivo(s) a ser(em) compactado(s). Pode ser do tipo (Qualque String , para especificar um nico arquivo , ou do tipo cArq | aArquivos r) Array , contendo um ou mais arquivo(s) a ser(em) compatado(s). Nome do Arquivo destino, caso a extenso seja omitida ser assumido .MZP, se no for informado cDestino Caracter assumir o mesmo nome do cArq com extenso .MZP ou o nome do 1. Arquivo no Array <aArquivos>. Senha a ser utilizada para criptografar o arquivo cSenha Caracter compactado. Retorno Tipo Caracter Descrio Caso a compactao seja executada com sucesso , a funo retornar uma sring contendo o nome do arquivo gerado . Caso no seja possvel a compactao , por falta de espao em disco ou erro de acesso a algum dos arquivos a ser(em) compactado(s), a funo retornar uma string em branco (""). Tipo Verso 7.10

Descrio Compacta um ou vrios arquivos em um nico arquivo com extenso .MZP. MSCOMPRESS() compacta os arquivos informados em um nico arquivo com extenso default .MZP. O formato proprietrio e multiplataforma. Caso a senha seja informada apenas com a senha poderemos descompactar os arquivos. Tanto arquivos no local ( Remote ) como no Servidor so aceitos.

MSDECOMP Reviso: 07/05/2003 Abrangncia Verso 6.09 Sintaxe MSDECOMP ( < cArq > , [ cPathDestino ] , [ cSenha ] ) --> lSucess Parmetros Argumento cArq cPathDestino cSenha Retorno Tipo Descrio Caso a descompactao foi executada com sucesso, a funo retornar .T. , Em caso de erro durante a descompactao, a funo retrornar .F. Verifique o espao disponvel na unidade de disco para descompactar o(s) arquivo(s) e/ou se existe amgum arquivo a ser descompactado no pacote que j exista na unidade de disco , atribudo como "REad-Only". Tipo Descrio Caract Nome do Arquivo no formato MZP a ser er descompactado. Path de destino onde sero gravados o(s) arquivo(s) Caract descompactado(s). Note que podem ser includos er caminhos do servidor como caminhos locais. Caso o arquivo tenha sido compactado com senha , Caract esta deve ser especificada este parmetro para ser er poss;ivel a descompactao do arquivo. Verso 7.10

Lgico

Descrio MSDECOMP() descompacta o arquivo informado em um diretrio. O Formato proprietrio, e multi-plataforma, suporta apenas arquivos compactados pela funo MSCOMPRESS(). Caso o arquivo seja protegido por senha, apenas com a senha poderemos descompact-lo. Tanto arquivos no local ( Remote ) como no Servidor so aceitos.

SPLITPATH Reviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe SPLITPATH ( < cArq > , [ @cDrive ] , [ @cCaminho ] , [ @cNome ] , [ @cExt ] ) --> NIL Parmetros Argumento cArq cDrive cCaminho cNome cExt Retorno Tipo Caracter Descrio A funo SplitPath() divide um caminho completo em todas as suas subpartes ( Drive , Caminho , Nome e Extenso ) . Tanto arquivos locais ( Remote ) quanto arquivos no servidor, podem ser informados. O caminho, caso informado, incluir uma barra como ltimo caracter. A extenso , quando retornada , inclui sempre o ponto ( . ) antes da extenso. Todos os parmetros , a partir do segundo , quando passados devem ser por referncia. Observao : Vale lembrar que a funo SplitPath no valida a sintaxe do caminho e/ou arquivo digitados , nem a existncia do mesmo . Esta funo utilizada para determinar em uma string os elementos que compe um caminho para a localizao de um arquivo. Descrio Esta funo sempre retorna NIL. Tipo Descrio Caract Nome do Arquivo a ser quebrado. Opcionalmente, er pode incluir caminho e drive. Nome do Drive. Exemplo ( C: ). Caso o Arquivo Caract informado no possua drive ou o caminho refira-se ao er servidor, o retorno ser uma string em branco. Caract Nome do Caminho. Caso o Arquivo informado no er possua caminho, ser uma string em branco. Nome do Arquivo sem a extenso. Caso em cArq no Caract seja especificado um nome do Arquivo, ser retornada er uma string em branco. Extenso do arquivo informado em cArq , prefizada Caract com um ponto ".". Caso a extenso em cArq no seja er especificada , o retorno ser uma string em branco. Verso 5.08 Verso 6.09 Verso 7.10

WRITEPPROSTRING Reviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe WRITEPPROSTRING ( < cSecao > , < cChave > , < cConteudo > , < cArqIni > ) --> lSucess Parmetros Argumento cSecao cChave cConteudo Tipo Caract er Caract er Caract er Descrio cSecao corresponde o nome da seo do ni a ser utilizada. Caso a seo no exista , a mesma ser criada. Chave da seo do ini a ter seu conteco alterado . Caso a chave no esxista na seo especificada, a mesma ser criada. cConteudo corresponde o contedo da chave a ser atualizado. cArqIni corresponde ao nome do arquivo de inicializao a ser alterado. Caso o arquivo no exista , ele ser criado . Caso o path do arquivo no seja informado , o mesmo ser criado/atualizado no diretrio onde est instalado o Protheus Server, no servidor. Caso especificado um path absoluto , com unidade de disco , o arquivo .ini ser criado e/ou atualizado na estao remota , no path informado. Verso 5.08 Verso 6.09 Verso 7.10

cArqIni

Caract er

Retorno Tipo Lgico Descrio Caso a chave seja incluida e/ou alterada com sucesso , a funo retornat .T. (true) , e caso ocorra alguma falha ou impossibilidade de acesso ao arquivo .ini , a funo retornar .F. (false). Dentre as causas mais comuns de falha , podemos citar erro de sintaxe no nome do arquivo e/ou path inexistente ou inacessvel.

Descrio Atravs da funcao WritePProString() , possvel criar e/ou alterar uma seo / chave de configurao em um arquivo .ini . Caso o arquivo no exista , o mesmo ser criado . No nome do arquivo , podemos opcionalmente definir um path absoluto , com unidade de disco , de modo que o arquivo .ini ser atualizado na estao remota ( onde est sendo executado o Protheus Remote ) . Caso no seja especificado nenhum path ou caminho do arquivo .ini , o caminho de disco considerado ser o path no Servidor onde est instalado o Protheus Server .

Funes de tratamento de caracteres ALLTRIM Reviso: 26/02/2003 Abrangncia Verso 5.07 Sintaxe ALLTRIM ( < cString > ) --> cTrimString Parmetros Argumento cString Retorno Tipo Caracter Descrio ALLTRIM() uma funo de tratamento de dados do tipo caractere que remove os espaos em branco direita e esquerda de uma cadeia de caracteres. relacionada a LTRIM() e RTRIM(), que removem espaos em branco esquerda e direita de uma cadeia de caracteres, respectivamente. O inverso de ALLTRIM(), LTRIM(), e RTRIM() sao as funoes PADC(), PADR(), e PADL(), as quais centralizam, alinham direita, ou alinham esquerda cadeias de caracteres atravs da insero de caracteres de preenchimento. Descrio ALLTRIM() retorna uma cadeia de caracteres cujos espaos em branco direita e esquerda foram removidos. Tipo Descrio Caract <cString> a expressao caractere cujos espaos em er branco serao eliminados. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

DESCEND Reviso: 08/09/2002 Abrangncia Verso 5.07 Sintaxe DESCEND ( < cString > ) --> cDescend Parmetros Argumento cString Retorno Tipo Caracter Descrio DESCEND() uma funo de converso que retorna a forma complementada da expresso string especificada. Esta funo normalmente utilizada para a criao de indexadores em Ordem Decrescente. Descrio DESCEND() retorna a string especificada como parmetro de uma forma complementada. Um DESCEND() de CHR(0) sempre retorna CHR(0). Tipo Descrio Caract <cString> corresponde sequncia de caracteres a er ser analisada. Verso 5.08 Verso 6.09 Verso 7.10

LTRIM Reviso: 26/02/2003 Abrangncia Verso 5.07 Sintaxe LTRIM ( < cString > ) --> cStringResult Parmetros Argumento cString Retorno Tipo Caracter Descrio LTRIM() retorna uma cpia de <cString>, sendo que os espaos em branco esquerda foram removidos. Caso <cString> seja uma cadeia de caracteres nula ("") ou toda composta de espaos em branco, LTRIM() retorna uma cadeia de caracteres nula (""). Tipo Descrio Caract <cString> a cadeia de caracteres a ser copiada sem er os espaos em branco esquerda. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio LTRIM() uma funao de tratamento de caracteres utilizada para Formatar cadeias de caracteres que possuam espaos em branco esquerda. Pode ser o caso de, por exemplo, nmeros convertidos para cadeias de caracteres atravs da funao STR(). LTRIM() relacionada a RTRIM(), a qual remove espaos em branco direita, e a ALLTRIM(), que remove espaos tanto esquerda quanto direita. O contrrio de ALLTRIM(), LTRIM(), e RTRIM() sao as funoes PADC(), PADR(), e PADL(), as quais centralizam, alinham direita, ou alinham esquerda as cadeias de caracteres, atravs da inserao de caracteres de preenchimento.

PADL / PADR / PADC Reviso: 26/02/2003 Abrangncia Verso 5.07 Sintaxe PADL / PADR / PADC ( < exp > , < nTamanho > , [ cCaracPreench ] ) --> cStringPreench Parmetros Argumento exp nTamanho cCaracPreench Retorno Tipo Caracter Descrio PADC(), PADL(), e PADR() sao funoes de tratamento de caracteres que inserem caracteres de preenchimento em valores caractere, data ou numricos a fim de criar uma nova cadeia de caracteres de tamanho especificado. PADC() centraliza <exp>, adicionando caracteres de preenchimento direita e esquerda; PADL() adiciona caracteres de preenchimento esquerda; e PADR() adiciona caracteres de preenchimento direita. Caso o tamanho de <exp> exceda o argumento <nTamanho>, todas as funoes PAD() truncam cStringPreench ao <nTamanho> especificado. PADC(), PADL(), e PADR() sao utilizadas para exibir cadeias de caracteres de tamanho varivel em uma rea de tamanho fixo. Elas podem ser usadas, por exemplo, para assegurar o alinhamento com comandos ?? consecutivos. Outra utilizaao exibir textos em uma tela de tamanho fixo, para certificar-se de que o texto anterior foi completamente sobreescrito. PADC(), PADL(), e PADR() sao o contrrio das funoes ALLTRIM(), LTRIM(), e LTRIM(), as quais eliminam espaoes em branco esquerda e direita de cadeias de caracteres. Descrio PADC(), PADL(), e PADR() retornam o resultado de <exp> na forma de uma cadeia de caracteres preenchida com <cCaracPreench>, para totalizar o tamanho especificado por <nTamanho>. Tipo Caracte r Numri co Descrio <exp> um valor caractere, data, ou numrico no qual serao inseridos caracteres de preenchimento. <nTamanho> o tamanho da cadeia de caracteres a ser retornada. <cCaracPreench> o caractere a ser inserido em Caracte <exp>. Caso nao seja especificado, o padrao o r espao em branco. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

RTRIM Reviso: 26/02/2003 Abrangncia Verso 5.07 Sintaxe RTRIM ( < cString > ) --> cTrimString Parmetros Argumento cString Retorno Tipo Caracter Descrio RTRIM() retorna uma cpia de <cString>, sendo que os espaos em branco direita foram removidos. Caso <cString> seja uma cadeia de caracteres nula ("") ou totalmente composta por espaos, RTRIM() retorna uma cadeia de caracteres nula (""). Tipo Descrio Caract <cString> a cadeia de caracteres a ser copiada sem er os espaos em branco direita. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio RTRIM() uma funao de tratamento de caracteres utilizada para Formatar cadeias de caracteres que contenham espaos em branco direita. Ela til quando voc deseja eliminar espaos em branco direita ao se concatenar cadeias de caracteres. o caso tpico com campos de banco de dados que sao armazenados em formato de tamanho fixo. Por exemplo, voc pode usar RTRIM() para concatenar o primeiro e o ltimo campos de nome para formar uma cadeia de caracteres de nome. LTRIM() relacionada a RTRIM(), que remove espaos em branco direita, e a ALLTRIM(), que remove espaos em branco direita e esquerda. O contrrio de ALLTRIM(), LTRIM(), e RTRIM() sao as funoes PADC(), PADR(), e PADL(), as quais centralizam, alinham direita, ou alinham esquerda cadeias de caracteres, inserindo caracteres de preenchimento.

Funces de Tratamento de Data / Hora CDOW Reviso: 04/08/2002 Abrangncia Verso 5.07 Sintaxe CDOW ( < dExp > ) --> cNomeDia Parmetros Argumento dExp Retorno Tipo Caracter Descrio CDOW() retorna o nome do dia da semana na forma de uma cadeia de caracteres. A primeira letra ser maiscula e o resto dos caracteres vir em minsculas. Para um valor de data nulo ou invlido, CDOW() retorna uma cadeia de caracteres vazia (""). Tip Descrio o Dat <dExp> o valor data a ser convertido. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio CDOW() uma funo utilizada para obter, a partir de uma data, a cadeia de caracteres contendo o dia da semana correspondente.

CMONTH Reviso: 04/08/2002 Abrangncia Verso 5.07 Sintaxe CMONTH ( < dData > ) --> cMs Parmetros Argumento dData Retorno Tipo Caracter Descrio CMONTH() retorna o nome do ms a partir de uma data como sendo uma cadeia de caracteres com a primeira letra maiscula e o restante da string em letras minsculas. Para uma data nula, CMONTH() retornar uma string nula (""). Tip Descrio o Dat <dData> a data a converter. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio CMONTH() uma funo de converso de datas que , a partir de uma data , retorna uma cadeia de caracteres correspondendo ao nome do ms correspondente.

DATE Reviso: 04/08/2002 Abrangncia Verso 5.07 Sintaxe DATE ( ) --> dSistema Retorno Tipo Data Descrio Retorna a data do sistema. DATE() a funo que retorna a data do atual sistema. O formato de sada controlado pelo comando SET DATE. O formato padro mm/dd/yy. Descrio DATE() retorna a data do sistema como sendo um valor do tipo data. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

DAY Reviso: 22/09/2002 Abrangncia Verso 5.07 Sintaxe DAY ( < dData > ) --> nDia Parmetros Argumento dData Retorno Tipo Numrico Descrio DAY() retorna um nmero na faixa de 0 at 31, sendo este um valor numrico inteiro. Caso o ms seja Fevereiro, os anos bissextos sao considerados. Se o argumento de data 29 de Fevereiro e o ano nao bissexto, DAY() retornar zero. Se o argumento de data vazio, DAY() tambm retornar zero. Tip Descrio o Dat <dData> a data a converter. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio Retorna o dia do ms como valor numrico. DAY() uma funao de conversao de datas utilizada para converter um valor do tipo data para o dia do ms correspondente. Esta funo usada em conjunto com CMONTH() e YEAR() para formatar datas. Alm disso, geralmente usada em clculos que envolvam datas.

DOW Reviso: 13/10/2002 Abrangncia Verso 5.07 Sintaxe DOW ( < dData > ) --> nDia Parmetros Argumento dData Retorno Tipo Numrico Descrio DOW() uma funao de conversao de datas que converte um valor data para um nmero que identifica o dia da semana. Ela til quando voc deseja clculos de data em uma base semanal. DOW() semelhante a CDOW(), a qual retorna o dia da semana na forma de uma cadeia de caracteres ao invs de um nmero. Descrio DOW() retorna o dia da semana na forma de um nmero entre zero e sete. O primeiro dia da semana um (Domingo) e o ltimo sete (Sbado). Se <dData> estiver vazio, DOW() retorna zero. Tip Descrio o Dat <dData> o valor data que ser convertido. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

DTOC Reviso: 13/10/2002 Abrangncia Verso 5.07 Sintaxe DTOC ( < dData > ) --> cData Parmetros Argumento dData Retorno Tipo Caracter Descrio DTOC() retorna uma cadeia de caracteres que representa uma data. O valor de retorno formatado de acordo com o formato de datas corrente. O formato padrao mm/dd/aa. Uma data nula retorna uma cadeia de caracteres em branco igual em tamanho ao formato de data corrente. Tip Descrio o Dat <dData> o valor data que ser convertido. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio DTOC() uma funao de conversao de datas utilizada por motivos de Formataao quando voc deseja exibir a data no formato SET DATE e necessria uma expressao caractere. Caso voc precise de um formato de data especfico, voc pode utilizar TRANSFORM() ou uma expressao customizada. Se voc estiver INDEXando uma data juntamente com uma cadeia de caracteres, use DTOS() ao invs de DTOC() para converter o valor data para uma cadeia de caracteres.

ELAPTIME Reviso: 08/09/2002 Abrangncia Verso 5.07 Sintaxe ELAPTIME ( < cHoraInicial > , < cHoraFinal > ) --> cIntervalo Parmetros Argumento cHoraInicial cHoraFinal Retorno Tipo Caracter Descrio ElapTime() retorna uma cadeia de caracteres contendo a diferena de tempo entre cHoraFinal cHoraInicial , no formato hh:mm:ss. Os dois parmetros , cHoraInicial e cHoraFinal , devem ser especificados no formato hh:mm:ss , com tamanho de 8 bytes . Caso um dos parmetros tenha tamanho diferente de 8 Bytes, gerada uma ocorrncia de Erro Fatal "invalid len". Qualquer caracter invalido nas posices referentes hora (hh) , minuto (mm) e segundo (ss) , sero ignorados na composio de numeros para o clculo. Caso o horrio inicial seja maior que o horrio final , retornada a diferena entre os horrios acrescidos de 24h. Para maiores detalhes , consulte o exemplo da funo ElapTime() Descrio A diferena de tempo no formato hh:mm:ss, onde hh a hora ( 1 a 24 ), mm os minutos e ss os segundos Tipo Caract er Caract er Descrio Informe a hora inicial no formato hh:mm:ss, onde hh a hora ( 1 a 24 ), mm os minutos e ss os segundos Informe a hora final no formato hh:mm:ss, onde hh a hora ( 1 a 24 ), mm os minutos e ss os segundos. Verso 5.08 Verso 6.09 Verso 7.10

MONTH Reviso: 22/09/2002 Abrangncia Verso 5.07 Sintaxe MONTH ( < dData > ) --> nMs Parmetros Argumento dData Retorno Tipo Numrico Descrio MONTH() uma funao de conversao de datas que til quando voc precisa de um valor de ms numrico durante clculos para, por exemplo, relatrios peridicos. MONTH() faz parte de um grupo de funoes que retornam componentes de um valor data na forma de valores numricos. O grupo inclui DAY() e YEAR(), que retornam os valores de dia e ano na Forma de nmericos. CMONTH() uma funao relacionada, que permite a voc retornar o nome do ms a partir de um valor data. Descrio MONTH() retorna um valor numrico inteiro na faixa de 0 (zero) a 12. Uma data nula (CTOD("")) retorna zero. Tip Descrio o Dat <dData> o valor data a ser convertido. a Verso 5.08 Verso 6.09 Verso 7.10

SECONDS Reviso: 09/10/2002 Abrangncia Verso 5.07 Sintaxe SECONDS ( ) --> nSegundos Retorno Tipo Numrico Descrio SECONDS() retorna a hora do sistema como um valor numrico na forma segundos.centsimos. O valor numrico retornado a quantidade de segundos decorridos desde a meia-noite, e tem base em um relgio de vinte e quatro horas em uma faixa de zero a 86399. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio SECONDS() uma funao de horas utilizada para fornecer um mtodo simples de calcular o tempo decorrido, com base no relgio do sistema, durante a execuao do programa. relacionado funao TIME(), a qual retorna a hora do sistema como uma cadeia de caracteres na forma hh:mm:ss.

TIME Reviso: 13/10/2002 Abrangncia Verso 5.07 Sintaxe TIME ( ) --> cStringHora Retorno Tipo Caracter Descrio TIME() retorna a hora do sistema como uma cadeia de caracteres na forma hh:mm:ss. hh indica a hora no formato de 24 horas, mm indica os minutos, e ss indica os segundos. Horas, minutos e segundos sao separadas por dois pontos. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio TIME() uma funao de tratamento de tempo, utilizada para exibir ou imprimir a hora do sistema em um relatrio ou na tela. TIME() est relacionada a SECONDS(), que retorna a quantidade de segundos decorridos desde a meianoite. SECONDS() geralmente utilizada em lugar de TIME() para clculos sobre o tempo.

YEAR Reviso: 13/10/2002 Abrangncia Verso 5.07 Sintaxe YEAR ( < dData > ) --> nAno Parmetros Argumento dData Retorno Tipo Numrico Descrio YEAR() retorna o ano do valor data especificado, inclusive dgitos indicativos de sculo, na forma de um valor numrico de quatro dgitos. O valor retornado nao influenciado pelo formato de DATE ou CENTURY corrente. A especificaao de uma data nula (CTOD("")) retorna zero. Tip Descrio o Dat <dData> o valor data a ser convertido. a Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio YEAR() uma funao de conversao de datas utilizada para converter um valor data para um valor numrico indicativo do ano. Pode ser utilizada em clculos de, por exemplo, relatrios peridicos, ou para Formataao de exibioes de data. YEAR() membro de um grupo de funoes que retornam componentes de um valor data na forma de valores numricos. Este grupo inclui DAY() e MONTH(), que retornam valores de dia e ms na forma de valores numricos.

Funces de Tratamento de Matrizes (Arrays) AADD Reviso: 26/07/2002 Abrangncia Verso 5.07 Sintaxe AADD ( < aDestino > , [ expValor ] ) --> Valor Parmetros Argumento aDestino expValor Retorno Tipo Descrio Avalia expValor e retorna seu (Qualquer) especificado, AADD() retorna NIL. Descrio AADD() uma funo de tratamento de vetor que adiciona um elemento ao vetor. Ao elemento de vetor recm criado atribuido o valor especificado por <expValor>. AADD() utilizado para aumentar o tamanho de um vetor dinamicamente. til na construo de filas ou listas dinmicas. AADD() semelhante funo ASIZE(), mas adiciona apenas um elemento por vez; ASIZE() pode aumentar ou diminuir um vetor a um tamanho especificado. AADD(), porm, possui a vantagem de poder atribuir um valor ao novo elemento, enquanto que ASIZE() nao pode. AADD() pode tambm parecer ser igual a AINS(), mas isso nao verdade: AINS() move elementos dentro de um vetor, mas nao modifica o tamanho do vetor. OBSERVAO : Caso <expValor> seja um outro vetor, o novo elemento no vetor destino conter uma referncia ao vetor especificado por <expValor>. Tipo Descrio Array o array ao qual o novo elemento ser adicionado. (Qualque uma expresso vlida que ser o valor do r) novo elemento. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Valor.

Se

expValor

no

for

ACLONE Reviso: 13/07/2002 Abrangncia Verso 5.07 Sintaxe ACLONE ( < aFonte > ) --> aDuplica Parmetros Argumento aFonte Retorno Tipo Array Descrio ACLONE() uma funao de vetor que cria uma duplicata completa do vetor de <aFonte>. Caso <aFonte> contenha sub-vetores, ACLONE() cria sub-vetores correspondentes e os preenche com cpias dos valores contidos nos sub-vetores de <aFonte>. Ao igualarmos dois arrays, eles ficam associados por referncia, utilizando aClone() no existe referncia. ACLONE() semelhante a ACOPY(), porm ACOPY() nao duplica vetores aninhados. Descrio Array idntico ao aFonte , porem sem nenhuma referncia ao mesmo. Tipo Descrio Arra <aFonte> o vetor a ser duplicado. y Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

ACOPY Reviso: 13/07/2002 Abrangncia Verso 5.07 Sintaxe ACOPY ( < aFonte > , < aDestino > , [ nInicio ] , [ nCont ] , [ nPosDestino ] ) --> aDestino Parmetros Argumento aFonte aDestino nInicio Tipo Descrio <aFonte> o vetor de onde serao copiados os Array elementos. <aDestino> o vetor para onde serao copiados os Array elementos. <nInicio> a posiao do elemento inicial no vetor Numri <aFonte>. Se nao for especificado, o valor assumido co um (01). <nCont> a quantidade de elementos a serem copiados do vetor <aFonte> a partir da posiao Numri <nInicio>. Caso <nCont> nao seja especificado, todos co os elementos em <aFonte> que comeam com o elemento inicial sao copiados. <nPosDestino> a posiao do elemento inicial no Numri vetor <aDestino> que receber os elementos de co <aFonte>. Se nao for especificado, o valor padrao um (01). Verso 5.08 Verso 6.09 Verso 7.10

nCont

nPosDestino

Retorno Tipo Array Descrio ACOPY() uma funao de tratamento de vetor que copia elementos do vetor <aFonte> para o vetor <aDestino>. O vetor <aDestino> j deve existir e ser grande o suficiente para conter os elementos copiados. Caso o vetor <aFonte> tenha mais elementos, alguns elementos nao serao copiados. ACOPY() copia valores de todos os tipos de dados, inclusive NIL e blocos de cdigo. Se um elemento do vetor <aFonte> for um sub-vetor, o elemento correspondente no vetor <aDestino> conter uma referncia ao sub-vetor. Consequentemente, ACOPY() nao cria duplicatas completas de vetores multidimensionais. Para fazer isto, use a funao ACLONE(). Descrio ACOPY() retorna uma referncia ao vetor destino, <aDestino>.

ADEL Reviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe ADEL ( < aFonte > , < nPosicao > ) --> aFonte Parmetros Argumento aFonte nPosicao Retorno Tipo Array Descrio ADEL() uma funao de tratamento de vetor que elimina um elemento de um vetor. O contedo do elemento de vetor especificado perdido, e todos os elementos a partir daquela posiao at o final do elemento sobem uma posiao. O ltimo elemento no vetor torna-se NIL. AVISO : Em ADVPL, vetores multi-dimensionais sao implementados atravs do aninhamento de vetores dentro de outros vetores. Caso o vetor <aFonte> seja um vetor multi-dimensional, ADEL() eliminar todo o sub-vetor especificado por <nPosiao>, forando <aFonte> a nao mais ter dimensoes regulares. Descrio ADEL() retorna uma referncia ao vetor destino, <aFonte>. Tipo Descrio <aFonte> o vetor que contm um elemento a ser Array eliminado. Numri <nPosiao> a posiao do elemento de vetor , a co partir do primeiro , que ser eliminado. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

AEVAL Reviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe AEVAL ( < aVetor > , < bBloco > , [ nInicio ] , [ nCont ] ) --> aVetor Parmetros Argumento aVetor bBloco nInicio nCont Retorno Tipo Array Descrio AEVAL() uma funao de tratamento de vetor que avalia um bloco de cdigo uma vez para cada elemento de um vetor, passando o valor do elemento como um parmetro de bloco. O valor de retorno do bloco ignorado. Todos os elementos no <aVetor> sao processados a nao ser que o argumento <nInicio> ou <nCont> seja especificado. AEVAL() nao faz suposioes sobre o contedo dos elementos de vetor que ele est passando para o bloco. assumido que o bloco sabe qual o tipo de dados haver em cada elemento. AEVAL() semelhante a DBEVAL(), que aplica um bloco para cada registro de um arquivo de banco de dados. Da mesma forma que DBEVAL(), AEVAL() pode ser utilizado como base para a construao de comandos de interaao tanto para estruturas de vetor complexas como simples. Consulte a seao Blocos de Cdigo no na seo A Linguagem ADVPL para maiores informaes sobre Code-Blocks. Descrio AEVAL() retorna uma referncia a <aVetor>. Tipo Array CodeBlock Numric o Descrio <aVetor> o vetor a ser varrido. <bBloco> um bloco de cdigo a ser executado para cada elemento encontrado. <nInicio> o elemento inicial. Caso nao seja especificado, o padrao assumido o elemento um. <nCont> a quantidade de elementos a serem Numric processados a partir de <nIncio>. Se nao for o especificado, o padrao todos os elementos no vetor. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

AFILL Reviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe AFILL ( < aDestino > , < ValorExp > , [ nInicio ] , [ nCont ] ) --> aDestino Parmetros Argumento aDestino ValorExp nInicio Tipo Array Descrio <aDestino> o vetor a ser preenchido. <ValorExp> o valor a ser alocado em cada (Qualque elemento de vetor. Pode ser uma expressao de r) qualquer tipo de dados vlido. <nInicio> a posiao do primeiro elemento a ser Numric preenchido. Caso este argumento seja omitido, o o valor padrao um. <nCont> a quantidade de elementos a serem preenchidos iniciando com o elemento <nInicio>. Se Numric este argumento for omitido, os elementos sao o preenchidos a partir da posiao do elemento inicial at o final do vetor. Verso 5.08 Verso 6.09 Verso 7.10

nCont

Retorno Tipo Array Descrio AFILL() uma funao de vetor que preenche um vetor especificado com um nico valor de qualquer tipo de dados (inclusive vetores, blocos de cdigo ou NIL) atribuindo <ValorExp> a cada elemento de vetor na faixa especificada. ATENO : AFILL() nao pode ser utilizado para preencher vetores multidimensionais. Este tipo de vetores em Clipper sao implementados aninhando-se vetores dentro de outros vetores. A utilizaao de AFILL() com vetores multidimensionais sobre-escrever vetores para as outras dimensoes do vetor. Descrio AFILL() retorna uma referncia ao <aDestino>.

AINS Reviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe AINS ( < aDestino > , < @nPos > ) --> aDestino Parmetros Argumento aDestino nPos Retorno Tipo Array Descrio AINS() uma funo de vetor que insere um novo elemento em um vetor especificado. O elemento recm inserido NIL at que um novo valor seja atribuido a ele. Aps a insero, o ltimo elemento no vetor descartado, e todos os elementos depois do novo elemento descem uma posio. AVISO : AINS() deve ser utilizado com cuidado quando se tratar de vetores multi-dimensionais. Vetores multi-dimensionais em ADVPL sao implementados atravs do aninhamento de vetores dentro de outros vetores. Utilizar AINS() com um vetor multi-dimensional descarta o ltimo sub-vetor no vetor destino especificado, o que causa a perda de uma ou mais dimensoes. Para inserir uma nova dimensao em um vetor, primeiramente adicione um novo elemento ao final do vetor utilizando AADD() ou ASIZE() antes de usar AINS(). Descrio Retorna uma referncia ao vetor aDestino Tipo Array Numri co Descrio o array de onde ser inserido um item NIL. a posio, a partir da 1, na qual ser inserido um elemento NIL Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

ARRAY Reviso: 26/07/2002 Abrangncia Verso 5.07 Sintaxe ARRAY ( < nElementos,... > ) --> aVetor Parmetros Argumento nElementos,... Retorno Tipo Array Descrio ARRAY() uma funao de tratamento de vetor que retorna um vetor nao inicializado com a quantidade especificada de elementos e dimensoes. Se for especificado mais de um argumento <nElementos>, criado um vetor multidimensional ou aninhado, sendo que a quantidade de dimensoes igual quantidade de argumentos <nElementos> especificada. No ADVPL, h vrias formas de se criar um vetor. Voc pode declarar um vetor utilizando LOCAL ou STATIC; voc pode criar um vetor utilizando PRIVATE ou PUBLIC; voc pode atribuir um vetor literal a uma varivel existente; ou voc pode usar a funao ARRAY(). ARRAY() tem a vantagem de possibilitar a voc a criaao de vetores dentro de expressoes ou blocos de cdigo. Descrio ARRAY() retorna um vetor de dimensoes especificadas. Tipo Descrio <nElementos> a quantidade de elementos na Numri dimensao especificada.Os vetores em ADVPL podem co ter um nmero ilimitado de dimensoes. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

ASCAN Reviso: 26/07/2002 Abrangncia Verso 5.07 Sintaxe ASCAN ( < aDestino > , < ProcuraExp > , [ nInicio ] , [ nCont ] ) --> nParouEm Parmetros Argumento aDestino ProcuraExp Tipo Array Descrio <aDestino> o vetor a ser varrido. <ProcuraExp> pode ser um valor simples a ser (Qualque procurado, ou um bloco de cdigo. Caso r) <ProcuraExp> seja um valor simples, este poder ser do tipo numrico, lgico, data, ou caractere. <nInicio> o elemento a partir do qual ter incio a Numric pesquisa. Se este argumento nao for especificado, a o posiao inicial padrao um. <nCont> a quantidade de elementos que serao varridos a partir da posiao inicial. Caso este Numric argumento nao seja especificado, todos os elementos, o desde o elemento inicial at o final do vetor, serao varridos. Verso 5.08 Verso 6.09 Verso 7.10

nInicio

nCont

Retorno Tipo Descrio ASCAN() retorna um valor numrico que representa a posiao ocupada no vetor pelo ltimo elemento varrido. Se <ProcuraExp> for um valor simples, ASCAN() retorna a posiao do primeiro elemento que corresponder ao valor procurado, ou zero caso nao haja correspondncia. Se <ProcuraExp> for um bloco de cdigo, ASCAN() retorna a posiao do elemento onde o bloco retornou verdadeiro (.T.).

Numrico

Descrio ASCAN() uma funao de tratamento de vetor que varre um vetor procurando um valor especificado e opera da mesma forma que o comando SEEK quando pesquisa um valor simples. O valor <ProcuraExp> comparado ao elemento de vetor destino que comea com o caractere mais esquerda no elemento destino e prossegue at que nao haja mais nenhum caractere em <ProcuraExp>. Caso nao haja correspondncia, ASCAN() vai para o prximo elemento no vetor. Como ASCAN() utiliza o operador (=) para comparaoes, ele sensvel ao status de EXACT. Caso EXACT esteja ON, o elemento de vetor destino deve ser

exatamente igual ao resultado de <ProcuraExp> para que haja correspondncia. Se o argumento de <ProcuraExp> seja um bloco de cdigo, ASCAN() varre o vetor <aDestino> executando o bloco para cada elemento acessado. medida em que cada elemento encontrado, ASCAN() passa o valor do elemento como um argumento para o bloco de cdigo, e depois executa um EVAL() no bloco. A operaao de pesquisa pra quando o bloco de cdigo retorna verdadeiro (.T.), ou quando ASCAN() atinge o ltimo elemento no vetor.

ASIZE Reviso: 13/07/2002 Abrangncia Verso 5.07 Sintaxe ASIZE ( < aDestino > , < @nTamanho > ) --> ASIZE() Parmetros Argumento aDestino nTamanho Retorno Tipo Array Descrio ASIZE() uma funo de tratamento de vetor que muda o valor real do vetor <aDestino>. O vetor diminuido ou aumentado para corresponder ao tamanho especificado. Caso o vetor seja diminuido, os elementos no final do vetor sao perdidos. Se o vetor for aumentado, novos elementos sao adicionados ao final do vetor e a eles atribuido NIL. ASIZE() semelhante a AADD(), o qual adiciona somente um novo elemento ao final de um vetor e opcionalmente atribui um novo valor ao mesmo tempo. Observe que ASIZE() diferente de AINS() e ADEL(), os quais na realidade nao modificam o tamanho do vetor. Descrio Retorna uma referncia ao array aDestino. Tipo Descrio Array <aDestino> o vetor a ser aumentado ou diminuido. Numri <nTamanho> o novo tamanho do vetor. co Verso 5.08 Verso 6.09 Verso 7.10

ASORT Reviso: 26/07/2002 Abrangncia Verso 5.07 Sintaxe ASORT ( < aDestino > , [ nInicio ] , [ nCont ] , [ bOrdem ] ) --> aDestino Parmetros Argumento aDestino nInicio Tipo Descrio <aDestino> o vetor cujos elementos serao Array colocados em ordem. <nInicio> o primeiro dos elementos que serao Numric colocados em ordem. Caso nao seja especificada, a o posiao inicial assumida um. <nCont> a quantidade de elementos que serao Numric colocados em ordem. Se nao for especificada, todos o os elementos no vetor que comeam com o elemento inicial sao ordenados. <bOrdem> um bloco de cdigo opcional utilizado para determinar qual a ordem que ser seguida. Caso nao seja especificada, a ordem padrao ascendente. Code*** Ateno : Caso utilizada a funo aSort para um Block array aninhado (milti-dimensional), o parmetro bOrdem deve ser passado ; caso contrrio o array no ser ordenado. Verso 5.08 Verso 6.09 Verso 7.10

nCont

bOrdem

Retorno Tipo Array Descrio ASORT() uma funao de vetor que coloca em ordem todo ou parte de um vetor que contm elementos de um nico tipo de dados. Os tipos de dados que podem ser ordenados incluem caractere, data, lgico e numrico. Se o argumento <bOrdem> nao for especificado, a ordem padrao ascendente. Elementos com valores baixos sao colocados no incio do vetor (primeiro elemento), enquanto elementos com valores altos sao colocados no final do vetor (ltimo elemento). Caso o argumento de bloco <bOrdem> seja especificado, ele utilizado para determinar a ordem em que os elementos serao colocados. Cada vez que o bloco avaliado, dois elementos do vetor destino sao passados como parmetros de bloco. O bloco deve retornar verdadeiro (.T.) se os elementos estiverem Descrio ASORT() retorna uma referncia ao vetor <aDestino>.

ordenados. Isto pode ser usado para criar uma ordem descendente ou de dicionrio. Veja os exemplos abaixo. Quando ordenadas, as cadeias de caracteres sao colocadas na sequncia ASCII; valores lgicos sao ordenados com falso (.F.) sendo considerado o valor menor; valores data sao ordenados cronologicamente; e numricos sao ordenados por magnitude. OBSERVAO : Sendo os vetores multi-dimensionais em Clipper implementados atravs do aninhamento de sub-vetores dentro de outros vetores, ASORT() nao ordena diretamente vetores deste tipo. Para ordenar um vetor aninhado, voc deve fornecer um bloco de cdigo que dar o tratamento adequado aos subvetores.

Funes de Impresso GETIMPWINDOWS Reviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe GETIMPWINDOWS ( < lServer > ) --> aPrinters Parmetros Argumento lServer Tipo Descrio Informar .T. se a lista de impressoras deve ser obtida Lgic do Protheus Server ou .F. para obter lista de o imporessoras da estao Remota. Este parmetro obrigatrio. Verso 5.08 Verso 6.09 Verso 7.10

Retorno Tipo Array Descrio GETIMPWINDOWS( ) retorna uma lista de impressoras disponveis no spool do Server ou Remote. Se o Server est em ambiente Unix, a GETIMPWINDOWS() retornar a lista com os nomes de impressoras cadastradas na chave PRINTERSNAME do arquivo de configurao do Protheus Server. Caso no seja encontrada nenhuma impressora , retornado um array com 1 elemento , contendo a String "Nenhuma Impressora Disponivel". Observao : Caso a funo seja passada com o argumento .F. ( buscar impressoras da estao Remote ) , porm a funo seja executada a partir de um JOB ( programa sem a interface Remota ) , o array retornado ter apenas 1 elemento , contendo a String "Nenhuma Impressora Disponivel". Descrio Array com nome das impressoras disponveis. Vale lembrar que esta funo no verifica o status atual da(s) impressora(s) encontrada(s).

GETPORTACTIVE Reviso: 23/12/2004 Abrangncia Verso 5.07 Sintaxe GETPORTACTIVE ( < lServer > ) --> aPortImp Parmetros Argumento lServer Retorno Tipo Array Descrio Retorna lista de portas de impresso disponveis. A funo GETPORTACTIVE( ) retorna uma lista de portas de impresso disponveis do Protheus Server ou Remote. Se o Protheus Server est em ambiente Unix, a GETPORTACTIVE() retornar uma lista com os nomes de devices possveis para impresso. Caso no sejam encontradas portas para impresso , retornado um array com apenas um elemento , contendo a string "Nao existem portas disponiveis". Observao : Caso a funo seja chamada com o parmetro .F. , para obter as portas de impresso da estao remota , porm a funo seja chamada atravs de um JOB ( programa sem a interface Remote ) , a mesma retornar um array com um elemento , contendo a string "Nao existem portas disponiveis". [RELEASE] Builds superiores a 7.00.041130p Ao verificar os devices de impresso disponveis no SERVER, os devices especificados na configurao de bloqueio de portas de impresso ( DisableDevicePort ) no server no so listados por esta funo. Quando executada em ambiente Linux, os devices de impresso disponveis no SERVER, a funo deixa de retornar os devices como /dev/lp0 e /dev/ttys0 ... e passa a retorn-los a nomenclatura LPT1:...COM1:... , limitando o retorno em no mximo 4 portas paralelas e 4 portas seriais. Descrio Array com as portas de impresso disponveis. Tipo Descrio CAso especificado .T. , a lista de impressoras ser Lgic obtida do Server, caso .F. a lista ser obtida da estao o (Remote). Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

Funes de Interface HTTP GETWEBJOB Reviso: 16/10/2002 Abrangncia Verso 6.09 Sintaxe GETWEBJOB ( ) --> cJobName Retorno Tipo Caracter Descrio cJobName corresponde o nome do job que configura a working Thread atual em uso. Caso a chamada da funo seja realizada a partir de uma thread que no seja uma Working Thread ( como por exemplo , uma thread iniciada a partir de um ApxRemote ) , a funo GetWebJob() retornar uma string vazia (""). Verso 7.10

Descrio Atravs desta funo , possvel recuperar o nome da configurao de Working Threads ( Job ) que est sendo utilizada pela Working Thread atual. Observao : Esta funo est disponvel a partir dos Build's Ap6 gerados a partir de 05/09/2002.

HTTPCACHE Reviso: 16/09/2002 Abrangncia Verso 6.09 Sintaxe HTTPCACHE ( < cCacheControl > ) --> cLastCache Parmetros Argumento cCacheControl Retorno Tipo Caracter Descrio Atravs desta funo , podemos redefinir a etiqueta CACHE-CONTROL do Header de Resposta de requisio HTTP , sobrepondo definio defaut de retorno CACHE-CONTROL , opcionalmente definida na configurao do HOST HTTP no Arquivo de configurao do Protheus Server. Tabela A - Definies CACHE-CONTROL Conted Aplicao o Nenhuma informao deve ser guardada em Cache pelo servidor no-store e/ou proxie(s). Observao : A definio de um novo contedo para o CACHE-CONTROL do Header HTTP apenas ser possvel caso esta funo ADVPL seja executada antes de qualquer envio parcial de html ao browser , realizado pela funo HttpSend(). Descrio Esta funo retorna a definio atualmente utilizada para a etiqueta Cache-Control do Header HTTP. Tipo Descrio Caract Define o novo contedo da etiqueta do Header de er Retorno HTTP Cache-Control. Verso 7.10

HTTPCOUNTSESSION Reviso: 25/08/2002 Abrangncia Verso 6.09 Sintaxe HTTPCOUNTSESSION ( ) --> nCount Retorno Tipo Numrico Descrio Esta funo retorna o nmero de Sessions de usurios que esto atualmente em uso na memria. ** ATENO : Devemos atentar ao fato que esta funo apenas ter o efeito desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web Extended ) ** OBSERVAO : Esta funo foi implementada na Ferramenta Ap6 Server , sendo necessrio adquirir um Build de Protheus Server com data igual ou superior a 22/04/2002. Descrio nCount corresponde ao nmero de usurios que possuem variveis de session em uso no Server PRotheus. Verso 7.10

HTTPFREESESSION Reviso: 25/08/2002 Abrangncia Verso 6.09 Sintaxe HTTPFREESESSION ( ) --> NIL Retorno Tipo (NULO) Descrio Atravs da funo HttpFreeSession , eliminamos da memria do Servidor Protheus todas as variveis de Session do usurio atual. Normalmente utilizamos esta funo em operaes de LOGOFF , onde necessitamos limpar todas os conteudos relacionados Session deste usurio. ** ATENO : Devemos atentar ao fato que esta funo apenas ter o efeito desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web Extended ) ** OBSERVAO : Esta funo foi implementada na Ferramenta Ap6 Server , sendo necessrio adquirir um Build do Servidor Protheus Server com data igual ou superior a 22/04/2002. Descrio Esta funo sempre retorna NIL Verso 7.10

HTTPGET Reviso: 16/08/2002 Abrangncia Verso 6.09 Sintaxe HTTPGET ( < cUrl > , [ cGETParms ] , [ nTimeOut ] ) --> cHttp Parmetros Argumento cUrl cGETParms Tipo Descrio Caracte cUrl corresponde ao endereo http , juntamente com a r pasta e o documento solicitados. cGETParms corresponde StringList de parmetros a Caracte serem enviados ao servidor http atravs da URl . Caso r no especificado , este parmetro considerado vazio ("") Em nTimeOut especificamos o tempo em segundos Numri mximo de inatividade permitido durante a recepo co do documento . Caso no especificado , o valor default assumido 120 segundos ( 2 minutos). Verso 7.10

nTimeOut

Retorno Tipo Caracter Descrio A funo HttpGet() permite a emulao de um Client HTTP atravs de uma funo ADVPL, acessando um determinado documento html publicado em um servidor Web, utiliando o mtodo GET , permitindo a passagem de parmetros via URL, aguardando por um tempo determinado (time-out) pela resposta do servidor solicitado. Observaes : Descrio String Html correspondendo ao documento solicitado.

--- Na passagem de parmtros GET , devemos atentar ao formato da string a ser passada como parmetros , pois a mesma segue o formato URI (Uniform Resource Identifiers) : Query Component. --- Caso nao seja retornado o documento antes do trmino do Time-out especificado na chamada da funo; ou caso no seja possvel localizar o servidor ; seja por falha de resoluo de DNS , ou por erro de sintaxe ao especificar a URL , a funo retornar Nulo (NIL). --- Caso nao seja possvel o acesso ao documento , como por exemplo o documento no exista , ser retornado uma string html com a mensagem de erro html enviada pelo servidor correspondente.

OBSERVACAO : Esta funco est disponivel apenas em Builds Ap6 gerados a partir de 10/07/2002

HTTPLEAVESESSION Reviso: 25/08/2002 Abrangncia Verso 6.09 Sintaxe HTTPLEAVESESSION ( ) --> NIL Retorno Tipo (NULO) Descrio Esta funo , uma vez executada , libera o processamento de requisio de atualizo de contedos de variveis tipo HttpSession para requisies de consulta e/ou atualizaes simultneas para o usurio atual. ** ATENO : Devemos atentar ao fato que esta funo apenas ter o efeito desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web Extended ) ** OBSERVAO : Esta funo foi implementada na Ferramenta Ap6 Server , sendo necessrio adquirir um build de Server PRotheus com data igual ou superior a 22/04/2002. Descrio A funo HttpLeaveSession() sempre retorna NIL Verso 7.10

HTTPLOGONUSER Reviso: 24/09/2002 Abrangncia Verso 6.09 Sintaxe HTTPLOGONUSER ( ) --> cLogonUser Retorno Tipo Caracter Descrio String contendo o login do usurio, no formato DOMINIO\login. Caso a funo no seja executada em uma thread iniciada em uma interface http , ou o acesso annimo o site no IIS esteja habilitado , a funo retornar uma string em branco (""). Verso 7.10

Descrio Atravs da Funo HttpLogonUser() , quando utilizamos o AP Server ISAPI ( AdvplIsapi.dll) , em conjunto com o Microsoft IIS (Internet Information Services ) , obtemos o login do usurio atual. Observao : Para que o usurio seja obrigado a informar um login individual , deve ser desabilitado no IIS a configurao que permite acesso annimo ao site. Caso esta configurao no seja alterada , todos os usurios sero identificados como "annimos" pelo IIS, e a funo retornar uma String em branco.

HTTPOTHERCONTENT Reviso: 10/09/2002 Abrangncia Verso 7.10 Sintaxe HTTPOTHERCONTENT ( ) --> cContent Retorno Tipo Caracter Descrio A funo HttpOtherContent() , quando utilizada em uma thread montada e/ou inicializada para atender uma requisio Http ( .apl , .apw ) , retorna o contedo do pacote html proveniente de uma operao de POSTagem de dados, se e somente se a operaco de POSTagem especificou no HEader HTTP um content-disposition ou content-type no tratados automaticamente pelo Server PRotheus. Caso a requisio no tenha sido realizada por um client HTTP atravs do mtodo de postagem , ou a postagem j possua tratamento nativo no Server Protheus , ou a funo seja chamada em um ambiente que no esteja atendendo uma requisio Http ( como um JOB , por exemplo) , a funo retornar uma string em branco (""). Descrio cContent a string correspondendo ao contedo do corpo do pacote HTML postado no Server.

HTTPPOST Reviso: 07/08/2003 Abrangncia Verso 6.09 Sintaxe HTTPPOST ( < cUrl > , [ cGETParms ] , [ cPOSTParms ] , [ nTimeOut ] , [ aHeadStr ] ) --> cHtml Parmetros Argumento cUrl cGETParms Tipo Descrio Caracte cUrl corresponde ao endereo http , juntamente com a r pasta e o documento solicitados. cGETParms corresponde StringList de parmetros a Caracte serem enviados ao servidor http atravs da URl . Caso r no especificado , este parmetro considerado vazio ("") cPostParms corresponde StringList de parmetros a Caracte serem enviados ao servidor http atravs do pacote r HTTP . Caso no especificado , este parmetro considerado vazio ("") Em nTimeOut especificamos o tempo em segundos Numri mximo de inatividade permitido durante a recepo co do documento . Caso no especificado , o valor default assumido 120 segundos ( 2 minutos). Atravs deste parametro , podemos especificar um Array array com strings a serem acrescentadas ao Header da requisio HTTP a ser realizada. Verso 7.10 Verso 8.11

cPOSTParms

nTimeOut

aHeadStr Retorno Tipo Caracter Descrio

Descrio Atravs de cHtml ser retornada a String Html correspondendo ao documento solicitado.

A funo HttpPost() permite a emulao de um Client HTTP atravs de uma funo ADVPL, postando um bloco de informaes para um determinado documento publicado em um servidor Web, utiliando o mtodo POST , permitindo a passagem de parmetros adicionais via URL e aguardando por um tempo determinado (time-out) pela resposta do servidor solicitado. Observaes :

Na passagem de parmtros GET e POST , devemos atentar ao formato da string a ser passada como parmetros , pois a mesma segue o formato URI (Uniform Resource Identifiers) : Query Component. Caso nao seja retornado o documento antes do trmino do Time-out especificado na chamada da funo; ou caso no seja possvel localizar o servidor ; seja por falha de resoluo de DNS , ou por erro de sintaxe ao especificar a URL , a funo retornar Nulo (NIL). Caso nao seja possvel o acesso ao documento , como por exemplo o documento no exista ,ser retornado uma string html com a mensagem de erro html enviada pelo servidor correspondente. Quando utilizamos a funo HttpPost() , podemos especificar um ContentType diferenciado para o contedo postado. Caso no seja especificado um Content-Type , alguns servidores tratam a informao postada como sendo um dado do tipo 'application/x-www-form-url' , seria o equivalente a um formulrio HTML postado via Browser, outros servidores podero no reconhecer tal informao postada dessa forma. Para especificar que o contedo postado deve ser tratado como um POST de formulrio HTTP , devemos passar no parmetro aHeadStr , um elemento contendo 'ContentType: application/x-www-form-url'.

ATENO 1. Esta funco est disponivel apenas em Builds Ap6 gerados a partir de 10/07/2002 . 2. O parametro aHeadStr apenas est disponvel em Build's Ap6 e posteriores gerados apos 01/10/2002.

HTTPPRAGMA Reviso: 16/09/2002 Abrangncia Verso 6.09 Sintaxe HTTPPRAGMA ( < cPragma > ) --> cOldPragma Parmetros Argumento cPragma Retorno Tipo Caracter Descrio Atravs desta funo , podemos redefinir a etiqueta PRAGMA do Header de Resposta de requisio HTTP , sobrepondo definio defaiut de retorno PRAGMA , opcionalmente definida na configurao do HOST HTTP no Arquivo de configurao do Protheus Server. Tabela A - Definies Pragma Conted Aplicao o Informa ao Client HTTP ( Browser ) que a pgina retornada no deve ser nocolocada em Cache, independente da configurao de Cache do cache Browser. Observao : A definio de um novo contedo para o PRAGMA do Header HTTP apenas ser possvel caso esta funo ADVPL seja executada antes de quaqlquer envio parcial de html ao browser , realizado pela funo HttpSend(). Descrio A funo HttpPragma retornar a definio anterior de PRAGMA utilizada. Tipo Descrio cPragma corresponde ao conteudo do PRAGMA a ser Caract definido no Header de retorno HTTP. Veja tabela "A" de er definies PRAGMA. Verso 7.10

HTTPRCTDISP Reviso: 10/09/2002 Abrangncia Verso 7.10 Sintaxe HTTPRCTDISP ( ) --> cCtDisp Retorno Tipo Caracter Descrio A funo HttpRCtDisp() , quando utilzada em uma thread montada e/ou inicializada para atender uma requisio Http ( .apl , .apw ) , retorna o contedo do identificador Content-disposition do Header HTTP . Caso a requisio tenha sido realizada por um client HTTP que no enviou este identificador no Header HTTP , ou a funo seja chamada em um ambiente que no esteja atendendo uma requisio Http ( como um JOB , por exemplo) , a funo retornar uma String em branco (""). Descrio cCtDisp corresponde o conteudo do identificador Contentdisposition , recebido quando um Web Browser realiza uma requisio via HTTP ao servidor.

HTTPRCTLEN Reviso: 10/09/2002 Abrangncia Verso 7.10 Sintaxe HTTPRCTLEN ( ) --> nCtLen Retorno Tipo Numrico Descrio A funo HttpRCtLen() , quando utilizada em uma thread montada e/ou inicializada para atender uma requisio Http ( .apl , .apw ) , retorna o contedo do identificador Content-length do Header HTTP , como um dado numrico . Caso a requisio tenha sido realizada por um client HTTP que no enviou este identificador no Header HTTP , ou a funo seja chamada em um ambiente que no esteja atendendo uma requisio Http ( como um JOB , por exemplo) , a funo retornar 0 ( Zero ) . Descrio nCtLen corresponde o conteudo do identificador Content-length , recebido quando um Web Browser realiza uma requisio via HTTP ao servidor.

HTTPRCTTYPE Reviso: 10/09/2002 Abrangncia Verso 7.10 Sintaxe HTTPRCTTYPE ( ) --> cCtType Retorno Tipo Caracter Descrio A funo HttpRCtType() , quando utilzada em uma thread montada e/ou inicializada para atender uma requisio Http ( .apl , .apw ) , retorna o contedo do identificador Content-type do Header HTTP . Caso a requisio tenha sido realizada por um client HTTP que no enviou este identificador no Header HTTP , ou a funo seja chamada em um ambiente que no esteja atendendo uma requisio Http ( como um JOB , por exemplo) , a funo retornar uma String em branco (""). Descrio cCtType corresponde o conteudo do identificador Content-type , recebido quando um Web Browser realiza uma requisio via HTTP ao servidor.

HTTPSEND Reviso: 10/09/2002 Abrangncia Verso 6.09 Sintaxe HTTPSEND ( < cHtmlStr > ) --> cHtmlNoSend Parmetros Argumento cHtmlStr Retorno Tipo Descrio Caso a funo obtenha sucesso em enviar a String cHtmlStr para o Browse solicitante , o retorno ser uma string vazia (""). Caso no seja possvel o envio da string , devido o recurso de envio simultneo estar desabilitado ; ou ocorra uma falha de comunicao, ou a funo HttpSend() seja executada a partir de uam thread que no uma Working Thread , a funo ir retornar a string passada como parmetro. Tipo Descrio Caract cHtmlStr corresponde string a ser enviada ao er Browser solicitante de um processamento . Verso 7.10

Caracter

Descrio Atravs desta funo, possivel retornar uma string Html um browser durante o processamento de uma requisio realizada atravs de um link .APW , utilizando Working Threads , durante o processamento da mesma. Observao : Este recurso no funciona em requisies de procesamento realizadas a partir de um link .apl . necessrio que a requisio seja para um link .apw , atendida por uma Working Thread.

HTTPSETPART Reviso: 10/09/2002 Abrangncia Verso 6.09 Sintaxe HTTPSETPART ( < lHttpSend > ) --> NIL Parmetros Argumento lHttpSend Retorno Tipo (NULO) Descrio Atravs desta funco , podemos habilitar ou desabilitar o envio parcial de Html , realizado pela funo HttpSend() , para o Browser solicitante de um processamento ADVPL atravs de uma Working Thread. Descrio Esta funo sempre retorna NIL Tipo Descrio lHttpSend um valor booleano que habilita o envio Lgic parcial ( caso .T. ) ou desabilita o envio parcial de HTML o ( .F. ) Verso 7.10

SOAPRACTION Reviso: 10/09/2002 Abrangncia Verso 7.10 Sintaxe SOAPRACTION ( ) --> cSoapAction Retorno Tipo Caracter Descrio A funo SoapRAction() , quando utilizada em uma thread montada e/ou inicializada para atender uma requisio Http ( .apl , .apw ) , retorna o contedo string do identificador soapaction do Header HTTP . Caso a requisio tenha sido realizada por um client HTTP que no enviou este identificador no Header HTTP , ou a funo seja chamada em um ambiente que no esteja atendendo uma requisio Http ( como um JOB , por exemplo) , a funo retornar uma string em branco (""). Descrio cSoapAction corresponde o conteudo do identificador soapaction , recebido quando um Web Browser realiza uma requisio via HTTP ao servidor.

You might also like