Escolar Documentos
Profissional Documentos
Cultura Documentos
GUIA DE REFERNCIA
Escola conveniada
ADVPL
GUIA DE REFERNCIA
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
NDICE
Converso entre tipos de dados.................................................................................................................8
CTOD().............................................................................................................................................................8
CVALTOCHAR()..............................................................................................................................................8
DTOC().............................................................................................................................................................8
DTOS()..............................................................................................................................................................9
STOD()..............................................................................................................................................................9
STR()...............................................................................................................................................................10
STRZERO()....................................................................................................................................................10
VAL()...............................................................................................................................................................11
Matemticas..............................................................................................................................................11
ACOS()............................................................................................................................................................11
CEILING()......................................................................................................................................................12
COS()..............................................................................................................................................................12
LOG10()..........................................................................................................................................................13
SIN()................................................................................................................................................................13
SQRT()............................................................................................................................................................13
TAN()..............................................................................................................................................................14
Anlise de variveis..................................................................................................................................14
TYPE()............................................................................................................................................................14
VALTYPE().....................................................................................................................................................15
Manipulao de arrays............................................................................................................................16
AADD()...........................................................................................................................................................16
ACLONE()......................................................................................................................................................17
ACOPY().........................................................................................................................................................17
ADEL()............................................................................................................................................................18
ADIR()............................................................................................................................................................18
AFILL()...........................................................................................................................................................19
AINS().............................................................................................................................................................20
ARRAY().........................................................................................................................................................20
ASCAN().........................................................................................................................................................21
ASCANX()......................................................................................................................................................22
ASIZE()...........................................................................................................................................................22
ASORT().........................................................................................................................................................23
ATAIL()...........................................................................................................................................................24
Manipulao de strings............................................................................................................................27
ALLTRIM().....................................................................................................................................................27
ASC()..............................................................................................................................................................28
AT().................................................................................................................................................................28
BITON()..........................................................................................................................................................29
CAPITAL()......................................................................................................................................................29
CHR()..............................................................................................................................................................30
DESCEND()....................................................................................................................................................30
GETDTOVAL()...............................................................................................................................................31
ISALPHA().....................................................................................................................................................31
ISDIGIT()........................................................................................................................................................31
ISLOWER()....................................................................................................................................................32
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
ISUPPER()......................................................................................................................................................32
LEN()..............................................................................................................................................................33
LOWER()........................................................................................................................................................33
LTRIM()..........................................................................................................................................................33
MATHC()........................................................................................................................................................34
OEMTOANSI()...............................................................................................................................................34
PADL() / PADR() / PADC()............................................................................................................................35
RAT()...............................................................................................................................................................35
REPLICATE().................................................................................................................................................36
RTRIM()..........................................................................................................................................................36
SPACE()..........................................................................................................................................................36
STRTOKARR()...............................................................................................................................................37
STRTRAN()....................................................................................................................................................37
STUFF()..........................................................................................................................................................38
SUBSTR().......................................................................................................................................................38
TRANSFORM()..............................................................................................................................................39
UPPER()..........................................................................................................................................................39
Manipulao de arquivos.........................................................................................................................49
ADIR()............................................................................................................................................................49
CGETFILE()...................................................................................................................................................49
Funo Principal: SELFILE().........................................................................................................................51
Funo auxiliar: PARBOXFILE()...................................................................................................................52
Funo auxiliar: MARKFILE().......................................................................................................................53
Funo auxiliar: TROCA()..............................................................................................................................54
Funo auxiliar: MARCAOK().......................................................................................................................54
CPYS2T()........................................................................................................................................................55
CPYT2S()........................................................................................................................................................55
CURDIR().......................................................................................................................................................56
DIRECTORY()................................................................................................................................................57
DIRREMOVE()..............................................................................................................................................58
DISKSPACE().................................................................................................................................................58
EXISTDIR()....................................................................................................................................................59
FCLOSE().......................................................................................................................................................60
FCREATE().....................................................................................................................................................61
FERASE().......................................................................................................................................................61
FILE()..............................................................................................................................................................62
FILENOEXT()................................................................................................................................................63
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
FOPEN()..........................................................................................................................................................63
FREAD().........................................................................................................................................................65
FREADSTR ().................................................................................................................................................65
FRENAME()...................................................................................................................................................66
FSEEK()..........................................................................................................................................................66
FT_FEOF()......................................................................................................................................................67
FT_FGOTO()..................................................................................................................................................67
FT_FGOTOP()................................................................................................................................................68
FT_FLASTREC()............................................................................................................................................68
FT_FREADLN().............................................................................................................................................69
FT_FRECNO()................................................................................................................................................69
FT_FSKIP().....................................................................................................................................................70
FT_FUSE()......................................................................................................................................................70
FWRITE().......................................................................................................................................................70
MSCOPYFILE().............................................................................................................................................73
MSCOPYTO()................................................................................................................................................73
MSCREATE().................................................................................................................................................74
MSERASE()....................................................................................................................................................75
MSRENAME()................................................................................................................................................75
RETFILENAME()..........................................................................................................................................76
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
DBSETNICKNAME()....................................................................................................................................99
DBSELECTAREA().....................................................................................................................................100
DBSETORDER()..........................................................................................................................................101
DBORDERNICKNAME()............................................................................................................................101
DBSEEK() E MSSEEK()..............................................................................................................................101
DBSKIP()......................................................................................................................................................103
DBSETFILTER()..........................................................................................................................................103
DBSTRUCT()...............................................................................................................................................104
DBUNLOCK()..............................................................................................................................................105
DBUNLOCKALL()......................................................................................................................................105
DBUSEAREA()............................................................................................................................................105
DELETED()..................................................................................................................................................106
FCOUNT()....................................................................................................................................................107
FOUND()......................................................................................................................................................107
INDEXKEY()................................................................................................................................................108
INDEXORD()...............................................................................................................................................108
LUPDATE()..................................................................................................................................................109
MSAPPEND()...............................................................................................................................................109
MSUNLOCK()..............................................................................................................................................109
ORDBAGEXT()............................................................................................................................................110
ORDKEY()....................................................................................................................................................111
RECLOCK()..................................................................................................................................................111
RECNO().......................................................................................................................................................112
SELECT()......................................................................................................................................................113
SET FILTER TO............................................................................................................................................113
SOFTLOCK()................................................................................................................................................114
USED()..........................................................................................................................................................115
Validao.................................................................................................................................................116
ALLWAYSFALSE()......................................................................................................................................116
ALLWAYSTRUE().......................................................................................................................................116
EXISTCHAV()..............................................................................................................................................117
EXISTCPO().................................................................................................................................................117
LETTERORNUM().......................................................................................................................................117
NAOVAZIO()................................................................................................................................................118
NEGATIVO()................................................................................................................................................118
PERTENCE()................................................................................................................................................118
POSITIVO()..................................................................................................................................................118
TEXTO().......................................................................................................................................................119
VAZIO()........................................................................................................................................................119
Controle de impresso............................................................................................................................121
AVALIMP()...................................................................................................................................................121
CABEC().......................................................................................................................................................122
IMPCADAST().............................................................................................................................................125
MS_FLUSH()................................................................................................................................................125
OURSPOOL()...............................................................................................................................................127
RODA().........................................................................................................................................................128
SETDEFAULT()............................................................................................................................................130
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
SETPRC()......................................................................................................................................................131
SETPRINT()..................................................................................................................................................131
Controle de processamentos..................................................................................................................133
ABREEXCL()...............................................................................................................................................133
CLOSEOPEN().............................................................................................................................................133
CLOSESFILE().............................................................................................................................................133
CHKFILE()...................................................................................................................................................134
CONOUT()....................................................................................................................................................134
CRIAVAR()...................................................................................................................................................135
DISARMTRANSACTION()........................................................................................................................135
EXECBLOCK()............................................................................................................................................136
EXISTBLOCK()...........................................................................................................................................137
ERRORBLOCK().........................................................................................................................................138
FINAL()........................................................................................................................................................139
FINDFUNCTION().......................................................................................................................................140
FUNDESC()..................................................................................................................................................140
FUNNAME()................................................................................................................................................140
GETAREA()..................................................................................................................................................141
GETCOUNTRYLIST().................................................................................................................................141
ISINCALLSTACK().....................................................................................................................................141
REGTOMEMORY().....................................................................................................................................142
RESTAREA()................................................................................................................................................142
USEREXCEPTION()....................................................................................................................................143
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
X6CONTEUD()............................................................................................................................................165
X6DESCRIC()..............................................................................................................................................166
XADESCRIC()..............................................................................................................................................167
XBDESCRI()................................................................................................................................................168
XFILIAL().....................................................................................................................................................168
Interfaces de cadastro............................................................................................................................175
AXCADASTRO().........................................................................................................................................175
MBROWSE()................................................................................................................................................175
AXPESQUI()................................................................................................................................................175
AXVISUAL()................................................................................................................................................176
AXINCLUI().................................................................................................................................................176
AXALTERA()...............................................................................................................................................177
AXDELETA()...............................................................................................................................................178
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: CTOD(cData)
Parmetros
cData
Exemplo:
LOCAL cData := 31/12/2006
LOCAL dData := CTOD(cData)
IF dDataBase >= dData
MSGALERT(Data do sistema fora da competncia)
ELSE
MSGINFO(Data do sistema dentro da competncia)
ENDIF
CVALTOCHAR()
Realiza a converso de uma informao do tipo numrico em uma string, sem a adio de
espaos a informao.
Sintaxe: CVALTOCHAR(nValor)
Parmetros
nValor
Exemplo:
FOR nPercorridos := 1 to 10
MSGINFO(Passos percorridos: +CVALTOCHAR(nPercorridos))
NEXT nPercorridos
DTOC()
Realiza a converso de uma informao do tipo data para em caracter, sendo o resultado no
formato DD/MM/AAAA.
Sintaxe: DTOC(dData)
Parmetros
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
dData
Exemplo:
MSGINFO(Database do sistema: +DTOC(dData))
DTOS()
Realiza a converso de uma informao do tipo data em um caracter, sendo o resultado no
formato AAAAMMDD.
Sintaxe: DTOS(dData)
Parmetros
dData
Exemplo:
cQuery := SELECT A1_COD, A1_LOJA, A1_NREDUZ FROM SA1010 WHERE
cQuery += A1_DULTCOM >=+DTOS(dDataIni)+
STOD()
Realiza a converso de uma informao do tipo string com contedo no formato AAAAMMDD
em data, no formato DD/MM/AAAA.
Sintaxe: STOD(sData)
Parmetros
sData
Exemplo:
LOCAL sData := 20080601
LOCAL dData := STOD(sData)
MSGINFO(dData)
SP
ADVPL
GUIA DE REFERNCIA
Escola conveniada
STR()
Realiza a converso de uma informao do tipo numrico em uma string, adicionando espaos
direita.
Sintaxe: STR(nValor)
Parmetros
nValor
Exemplo:
LOCAL nPassos := 6
MSGINFO(Passos percorridos: +STR(nPassos)
STRZERO()
Realiza a converso de uma informao do tipo numrico em uma string, adicionando zeros
esquerda do nmero convertido, de forma que a string gerada tenha o tamanho especificado
no parmetro.
nValor
nTamanho
Exemplo:
LOCAL nPassos := 6
MSGINFO(Passos percorridos: +STRZERO(nPassos,6))
SP
10
ADVPL
GUIA DE REFERNCIA
Escola conveniada
VAL()
Realiza a converso de uma informao do tipo caracter em numrica.
Sintaxe: VAL(cValor)
Parmetros
cValor
Exemplo:
LOCAL cValor := 12345
LOCAL nValor := VAL( cValor ) + 1
MSGINFO( nValor )
Matemticas
ACOS()
Funo utilizada para calcular o valor do arco co-seno.
Sintaxe: ACOS(nValor)
Parmetros:
nValor
Retorno:
SP
11
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Numrico
Range de 0 a radianos.
Se o valor informado no parmetro for menor que 1 ou maior que 1, acos
retorna um valor indefinido por default [+ , -]
CEILING()
Funo utilizada para calcular o valor mais prximo possvel de um valor nMax informado como
parmetro para a funo.
Sintaxe: CELLING(nMax)
Parmetros
nMax
Retorno:
Numrico
Valor do tipo double, representando o menor inteiro que maior ou igual ao
valor de nX. No h retorno de erro na funo.
COS()
Funo utilizada para calcular o valor do co-seno ou co-seno hiperblico.
Sintaxe: COS(nAngulo)
Parmetros:
nAngulo
Retorno:
Numrico
Situaes invlidas:
Entrada
QNAN,IND
(cosf, cos)
x 7.104760e+002 (cosh, coshf)
Exceo apresentada
None
INVALID
INEXACT+OVERFLOW
Significado da Exceo
Sem Domnio
Sem Domnio
OVERFLOW
SP
12
ADVPL
GUIA DE REFERNCIA
Escola conveniada
LOG10()
Funo utilizada para calcular o logaritmo natural de um valor numrico, em base 10.
LOG10() uma funo numrica que calcula o logaritmo natural de um nmero. O logaritmo
natural tem como base o valor 10. Devido ao arredondamento matemtico, os valores
retornados por LOG() podem no coincidir exatamente.
Sintaxe: LOG10(nNatural)
Parmetros:
nNatural
Retorno:
Numrico
SIN()
Funo utilizada para calcular o valor do seno ou seno hiperblico. Devemos informar como
parmetro para a funo um valor que representa o angulo em radianos.
Sintaxe: SIN(nAngulo)
Parmetros:
nAngulo
Retorno:
Numrico
Situaes invlidas:
Entrada
QNAN,IND
(senf, sen)
x 7.104760e+002 (senh, senhf)
Exceo apresentada
None
INVALID
INEXACT+OVERFLOW
Significado da Exceo
Sem Domnio
Sem Domnio
OVERFLOW
SQRT()
Funo utilizada para calcular a raiz quadrada de um nmero positivo.
Sintaxe: SQRT(nValor)
Parmetros:
SP
13
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nValor
Retorno:
Numrico
TAN()
Funo utilizada para calcular o valor da tangente ou tangente hiperblica.
Sintaxe: TAN(nAngulo)
Parmetros:
nAngulo
Retorno:
Numrico
Situaes invlidas:
Entrada
QNAN,IND
Exceo apresentada
None
INVALID
Significado da Exceo
Sem Domnio
Sem Domnio
Anlise de variveis
TYPE()
Determina o tipo do contedo de uma varivel, a qual no foi definida na funo em execuo.
Sintaxe: TYPE(cVariavel)
Parmetros
cVariavel
Exemplo:
IF TYPE(dDataBase) == D
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
14
ADVPL
GUIA DE REFERNCIA
Escola conveniada
ELSE
ENDIF
VALTYPE()
Determina o tipo do contedo de uma varivel, a qual no foi definida na funo em execuo.
Sintaxe: VALTYPE(cVariavel)
Parmetros
cVariavel
Exemplo:
STATIC FUNCTION GETTEXTO(nTamanho, cTitulo, cSay)
LOCAL cTexto
:=
LOCAL nColF, nLargGet
:= 0
PRIVATE oDlg
Default cTitulo
:= "Tela para informar texto"
Default cSay
:= "Informe o texto:"
Default nTamanho := 1
nTamanho
cTexto
nColf
SP
15
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Manipulao de arrays
AADD()
A funo AADD() permite a insero de um item em um array j existente, sendo que este
item podem ser um elemento simples, um objeto ou outro array.
aArray
xItem
Exemplo:
aDados := {} // Define que a varivel aDados um array, sem especificar suas dimenses.
aItem := {} // Define que a varivel aItem um array, sem especificar suas dimenses.
AADD(aItem, cVariavel1) // Adiciona um elemento no array aItem de acordo com o cVariavel1
AADD(aItem, cVariavel2) // Adiciona um elemento no array aItem de acordo com o cVariavel2
AADD(aItem, cVariavel3) // Adiciona um elemento no array aItem de acordo com o cVariavel3
//
//
//
//
Neste ponto o array a Item possui 03 elementos os quais podem ser acessados com:
aItem[1] -> corresponde ao contedo de cVariavel1
aItem[2] -> corresponde ao contedo de cVariavel2
aItem[3] -> corresponde ao contedo de cVariavel3
Neste ponto, o array a aDados possui apenas um elemento, que tambm um array
contendo 03 elementos:
aDados [1][1] -> corresponde ao contedo de cVariavel1
aDados [1][2] -> corresponde ao contedo de cVariavel2
aDados [1][3] -> corresponde ao contedo de cVariavel3
AADD(aDados, aItem)
AADD(aDados, aItem)
// Neste ponto, o array aDados possui 03 elementos, aonde cada qual um array com outros
// 03 elementos, sendo:
// aDados [1][1] -> corresponde ao contedo de cVariavel1
// aDados [1][2] -> corresponde ao contedo de cVariavel2
// aDados [1][3] -> corresponde ao contedo de cVariavel3
// aDados [2][1] -> corresponde ao contedo de cVariavel1
// aDados [2][2] -> corresponde ao contedo de cVariavel2
// aDados [2][3] -> corresponde ao contedo de cVariavel3
// aDados [3][1] -> corresponde ao contedo de cVariavel1
// aDados [3][2] -> corresponde ao contedo de cVariavel2
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
16
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: ACLONE(aArray)
Parmetros
aArray
Array pr-existente que ter seu contedo copiado para o array especificado.
Exemplo:
Utilizando o array aDados utilizado no exemplo da funo AADD()
Neste ponto, o array aItens possui exatamente a mesma estrutura e informaes do array
aDados
aItens := ACLONE(aDados)
ACOPY()
Funo de array que copia elementos do array aOrigem para array aDestino. O array destino
aDestino j deve ter sido declarado e grande o bastante para conter os elementos que sero
copiados. Se o array aOrigem contiver mais elementos, alguns dos elementos no sero
copiados. ACOPY() copia os valores de todos os dados, incluindo valores nulos (NIL) e cdigos
de bloco.
Se um elemento for um subarray, o elemento correspondente no array aDestino, conter o
mesmo subarray. Portanto, ACOPY() no produzir uma cpia completa de array
multidimensionais.
aOrigem
aDestino
nInicio
SP
17
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nPosDestino
Retorno:
aDestino
Exemplo:
LOCAL nCount := 2, nStart := 1, aOne, aTwo
aOne := { 1, 1, 1 }
aTwo := { 2, 2, 2 }
ACOPY(aOne, aTwo, nStart, nCount)
// Result: aTwo is now { 1, 1, 2 }
ADEL()
A funo ADEL() permite a excluso de um elemento do array. Ao efetuar a excluso de um
elemento, todos os demais so reorganizados de forma que a ultima posio do array passar
a ser nula.
aArray
nPosio
Exemplo:
// Utilizando o array aItens do exemplo da funo ACLONE() temos:
ADEL(aItens,1) // Ser removido o primeiro elemento do array aItens.
//
//
//
//
ADIR()
Funo que preenche os arrays passados com os dados dos arquivos encontrados, atravs da
mscara informada. Tanto arquivos locais (Remote) como do servidor podem ser informados.
Importante: ADir uma funo obsoleta, utilize sempre Directory().
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
18
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cArqEspec
aNomeArq
aTamanho
aData
aHora
aAtributos
Retorno:
nArquivos
Exemplo:
LOCAL aFiles[ADIR("*.TXT")]
ADIR("*.TXT", aFiles)
AEVAL(aFiles, { |element| QOUT(element) })
AFILL()
Funo de manipulao de arrays, que preenche os elementos do array com qualquer tipo de
dado. Incluindo code-block. Esta funo no deve ser usada para preencher um array com
outro array.
aDestino
xExpValor
nInicio
nCount
Retorno:
SP
19
ADVPL
GUIA DE REFERNCIA
Escola conveniada
aDestino
Exemplo:
LOCAL aLogic[3]
// Resultado: aLogic { NIL, NIL, NIL }
AFILL(aLogic, .F.)
// Resultado: aLogic { .F., .F., .F. }
AFILL(aLogic, .T., 2, 2)
// Resultado: aLogic { .F., .T., .T. }
AINS()
A funo AINS() permite a insero de um elemento no array especificado em qualquer ponto
da estrutura do mesmo, diferindo desta forma da funo AADD() a qual sempre insere um
novo elemento ao final da estrutura j existente.
aArray
nPosicao
Exemplo:
aAlunos := {Edson, Robson, Renato, Tatiana}
AINS(aAlunos,3)
// Neste ponto o array aAlunos ter o seguinte contedo:
// {Edson, Robson, nulo, Renato, Tatiana}
ARRAY()
A funo Array() utilizada na definio de variveis de tipo array, como uma opo a sintaxe
utilizando chaves ({}).
nLinhas
nColunas
SP
20
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
aDados := Array(3,3) // Cria um array de trs linhas, cada qual com 3 colunas.
ASCAN()
A funo ASCAN() permite que seja identificada a posio do array que contm uma
determinada informao, atravs da anlise de uma expresso descrita em um bloco de
cdigo.
aArray
bSeek
Exemplo:
aAlunos := {Mrcio, Denis, Arnaldo, Patrcia}
bSeek := {|x| x == Denis}
nPosAluno := aScan(aAlunos,bSeek) // retorno esperado 2
SP
21
ADVPL
GUIA DE REFERNCIA
Escola conveniada
ASCANX()
Funo utilizada para varrer um vetor procurando um valor especificado, operando de forma
similar a funo ASCAN.
A diferena fundamental da funo ASCANX que esta funo recebe um segundo parmetro
em seu code-block representando o ndice do array.
Sintaxe: ASCANX ( < xDestino > , < bSeek > , [ nInicio ] , [ nCont ] )
Parmetros:
xDestino
bSeek
nInicio
nCont
Exemplo:
nPos := aScanX( ARRAY, { |X,Y| X[1] == cNome .OR. y<=100})
No cdigo demonstrado acima, note a incluso no code-block do Y, onde a
funo ir terminar sua execuo em 3 condies:
1) At encontrar o elemento no ARRAY com a ocorrncia cNome, retornando a
posio desse elemento.
2) Essa novidade, ASCANX ir verificar o Array at a posio 100.
3) O elemento cNome no foi encontrado no ARRAY e a condio de Y at 100
no satisfaz, pois o array menor do que 100 posies!
ASIZE()
A funo ASIZE permite a redefinio da estrutura de um array pr-existente, adicionando ou
removendo itens do mesmo.
SP
22
ADVPL
GUIA DE REFERNCIA
Escola conveniada
aArray
nTamanho
Exemplo:
// Utilizando o array aItens, o qual teve um elemento excludo pelo uso da funo ADEL()
ASIZE(aItens,Len(aItens-1))
// Neste ponto o array aItens possui 02 elementos, ambos com contedos vlidos.
ASORT()
A funo ASORT() permite que os itens de um array sejam ordenados a partir de um critrio
pr-estabelecido.
aArray
nInicio
nItens
bOrdem
SP
23
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Ao1... AoZ -> intervalo de expresses que sero executadas pelo bloco
de cdigo, no formato de lista de expresses.
Retorno -> resultado da ultima ao executada pelo bloco de cdigo, no caso
AoZ.
Para maiores detalhes sobre a estrutura e utilizao de blocos de cdigo
consulte o tpico 6.2 Listas de Expresses e Blocos de cdigo.
Exemplo 1:
Ordenao ascendente
aAlunos := { Mauren, Soraia, Andria}
aSort(aAlunos)
// Neste ponto, os elementos do array aAlunos sero {Andria, Mauren, Soraia}
Exemplo 2 :
Ordenao descendente
aAlunos := { Mauren, Soraia, Andria}
bOrdem := {|x,y| x > y }
//
//
//
//
//
//
Durante a execuo da funo aSort(), a varivel x receber o contedo do item que est
posicionado. Como o item que est posicionado a posio aAlunos[x] e aAlunos[x] ->
string contendo o nome de um aluno, pode-se substituir x por cNomeAtu.
A varivel y receber o contedo do prximo item a ser avaliado, e usando a mesma
analogia de x, pode-se substituir y por cNomeProx. Desta forma o bloco de cdigo
bOrdem pode ser re-escrito como:
aArray
Retorno:
SP
24
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nUltimo
Exemplo:
aArray := {"a", "b", "c", "d"}
ATAIL(aArray) // Resultado: d
bBloco
xParamZ
Exemplo:
nInt := 10
bBloco := {|N| x:= 10, y:= x*N, z:= y/(x*N)}
nValor := EVAL(bBloco, nInt)
// O retorno ser dado pela avaliao da ultima ao da lista de expresses, no caso z.
// Cada uma das variveis definidas em uma das aes da lista de expresses fica disponvel
// para a prxima ao.
// Desta forma temos:
// N recebe nInt como parmetro (10)
// X tem atribudo o valor 10 (10)
// Y resultado da multiplicao de X por N (100)
// Z resultado a diviso de Y pela multiplicao de X por N ( 100 / 100) 1
DBEVAL()
A funo DBEval() permite que todos os registro de uma determinada tabela sejam analisados
e para cada registro ser executado o bloco de cdigo definido.
bBloco
SP
25
ADVPL
GUIA DE REFERNCIA
Escola conveniada
bFor
bWhile
Exemplo 1:
// Considerando o trecho de cdigo abaixo:
dbSelectArea(SX5)
dbSetOrder(1)
dbGotop()
While !Eof() .And. X5_FILIAL == xFilial("SX5") .And.; X5_TABELA <= mv_par02
nCnt++
dbSkip()
End
// O mesmo pode ser re-escrito com o uso da funo DBEVAL():
dbEval( {|x| nCnt++ },,{||X5_FILIAL==xFilial("SX5") .And. X5_TABELA<=mv_par02})
Exemplo 2:
// Considerando o trecho de cdigo abaixo:
dbSelectArea(SX5)
dbSetOrder(1)
dbGotop()
While !Eof() .And. X5_TABELA == cTabela
AADD(aTabela,{X5_CHAVE, Capital(X5_DESCRI)})
dbSkip()
End
// O mesmo pode ser re-escrito com o uso da funo DBEVAL():
dbEval({|| AADD(aTabela,{X5_CHAVE,Capital(X5_DESCRI)})},,{|| X5_TABELA==cTabela})
AEVAL()
A funo AEVAL() permite que todos os elementos de um determinada array sejam analisados
e para cada elemento ser executado o bloco de cdigo definido.
SP
26
ADVPL
GUIA DE REFERNCIA
Escola conveniada
aArray
bBloco
nInicio
nFim
Exemplo 1:
Considerando o trecho de cdigo abaixo:
AADD(aCampos,A1_FILIAL)
AADD(aCampos,A1_COD)
SX3->(dbSetOrder(2))
For nX:=1 To Len(aCampos)
SX3->(dbSeek(aCampos[nX]))
AADD(aTitulos,AllTrim(SX3->X3_TITULO))
Next nX
O mesmo pode ser re-escrito com o uso da funo AEVAL():
aEval(aCampos,{|x| SX3->(dbSeek(x)),IIF(Found(), AADD(aTitulos,;
AllTrim(SX3->X3_TITULO)))})
Manipulao de strings
ALLTRIM()
Retorna uma string sem os espaos direita e esquerda, referente ao contedo informado
como parmetro.
A funo ALLTRIM() implementa as aes das funes RTRIM (right trim) e LTRIM (left
trim).
Sintaxe: ALLTRIM(cString)
Parmetros
cString
String que ser avaliada para remoo dos espaos a direita e a esquerda.
Exemplo:
cNome := ALLTRIM(SA1->A1_NOME)
MSGINFO(Dados do campo A1_NOME:+CRLF
Tamanho: + CVALTOCHAR(LEN(SA1->A1_NOME))+CRLF
Texto: + CVALTOCHAR(LEN(cNome)))
ASC()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
27
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Converte uma informao caractere em seu valor de acordo com a tabela ASCII.
Sintaxe: ASC(cCaractere)
Parmetros
cCaractere
Exemplo:
USER FUNCTION NoAcento(Arg1)
Local nConta := 0
Local cLetra := ""
Local cRet := ""
Arg1 := Upper(Arg1)
For nConta:= 1 To Len(Arg1)
cLetra := SubStr(Arg1, nConta, 1)
Do Case
Case (Asc(cLetra) > 191 .and. Asc(cLetra) < 198) .or.;
(Asc(cLetra) > 223 .and. Asc(cLetra) < 230)
cLetra := "A"
Case (Asc(cLetra) > 199 .and. Asc(cLetra) < 204) .or.;
(Asc(cLetra) > 231 .and. Asc(cLetra) < 236)
cLetra := "E"
Exemplo (continuao):
Case (Asc(cLetra) > 204 .and. Asc(cLetra) < 207) .or.;
(Asc(cLetra) > 235 .and. Asc(cLetra) < 240)
cLetra := "I"
Case (Asc(cLetra) > 209 .and. Asc(cLetra) < 215) .or.;
(Asc(cLetra) == 240) .or. (Asc(cLetra) > 241 .and. Asc(cLetra) < 247)
cLetra := "O"
Case (Asc(cLetra) > 216 .and. Asc(cLetra) < 221) .or.;
(Asc(cLetra) > 248 .and. Asc(cLetra) < 253)
cLetra := "U"
Case Asc(cLetra) == 199 .or. Asc(cLetra) == 231
cLetra := "C"
EndCase
cRet := cRet+cLetra
Next
Return UPPER(cRet)
AT()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
28
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cCaractere
cString
Exemplo:
STATIC FUNCTION NOMASCARA(cString,cMascara,nTamanho)
LOCAL cNoMascara
LOCAL nX := 0
:= ""
BITON()
Funo utilizada para ligar determinados bits de uma String passada por parmetro para a
funo. Alm da string ser alterada, a funo tambm recebe como parmetro um numrico
que indica o bit de inicio a ser alterado, um numrico que indica a quantidade de bits a serem
alterados(ligados) e o tamanho da string passada.
Sintaxe: BITON ( < cValue > , < nBitIni > , < nBitEnd > , < nStrLen > )
Parmetros
cValue
nBitIni
nBitEnd
nStrLen
CAPITAL()
Funo que avalia a string passada como parmetro alterando a primeira letra de cada palavra
para maiscula e as demais letras como minsculas.
Sintaxe: CAPITAL(cFrase)
SP
29
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cFrase
Retorno:
String
CHR()
Converte um valor nmero referente a uma informao da tabela ASCII no caractere que esta
informao representa.
Sintaxe: CHR(nASCII)
Parmetros
nASCII
Exemplo:
#DEFINE CRLF CHR(13)+CHR(10) // FINAL DE LINHA
DESCEND()
Funo de converso que retorna a forma complementada da expresso string especificada.
Esta funo normalmente utilizada para a criao de indexadores em ordem decrescente
cString
Retorno:
Caracter
Exemplo:
// Este exemplo utiliza DESCEND() em uma expresso INDEX para criar um ndice de datas de
// ordem descendente:
USE Sales NEW
INDEX ON DESCEND(DTOS(OrdDate)) TO SalesDate
// Depois, DESCEND() pode ser utilizado para fazer uma pesquisa (SEEK) no ndice
// descendente:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
30
ADVPL
GUIA DE REFERNCIA
Escola conveniada
DbSEEK(DESCEND(DTOS(dFindDate)))
GETDTOVAL()
Funo utilizada para retornar um numero formatado, de acordo com o valor passado por
parmetro, sendo que ir apenas manter os valores numricos contidos na string passada por
parmetro, verificando se existe algum caractere '.' retornando um numero fracionrio, na
ordem dos nmeros contidos na string.
A funo muito til quando desejamos utilizar o valor numrico de uma data que est
contida em uma string.
Parmetros:
cDtoVal
Retorno:
Numrico
Exemplo:
GetDtoVal('123456')
//retorno 123456.0000
GetDtoVal('1/2/3/4/5/6') //retorno 123456.0000
GetDtoVal('fim.123456') //retorno 0.123456
GetDtoVal('teste')
//retorno 0.0
ISALPHA()
Funo utilizada para determinar se o caractere mais esquerda em uma cadeia de
caracteres alfabtico, permitindo avaliar se o string especificado comea com um caractere
alfabtico. Um caractere alfabtico consiste em qualquer letra maiscula ou minscula de A
a Z.
Parmetros:
cString
Retorno:
Lgico
ISDIGIT()
SP
31
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cString
Retorno:
Lgico
ISLOWER()
Funo utilizada para determinar se o caractere mais esquerda uma letra minscula,
permitindo avaliar se o primeiro caractere de um string uma letra minscula. o contrrio
de ISUPPER(), a qual determina se a cadeia de caracteres comea com uma letra maiscula.
ISLOWER() e ISUPPER() ambas so relacionadas s funes LOWER() e UPPER(), que
convertem caracteres minsculos para maisculos, e vice-versa.
Parmetros:
cString
Retorno:
Lgico
ISUPPER()
Funo utilizada para determinar se o caractere mais esquerda uma letra maiscula,
permitindo avaliar se o primeiro caractere de um string uma letra maiscula. o contrrio
de ISLOWER (), a qual determina se a cadeia de caracteres comea com uma letra minscula.
ISLOWER() e ISUPPER() ambas so relacionadas s funes LOWER() e UPPER(), que
convertem caracteres minsculos para maisculos, e vice-versa.
Parmetros:
cString
Retorno:
Lgico
SP
32
ADVPL
GUIA DE REFERNCIA
Escola conveniada
LEN()
Retorna o tamanho da string especificada no parmetro.
Sintaxe: LEN(cString)
Parmetros
cString
Exemplo:
cNome := ALLTRIM(SA1->A1_NOME)
MSGINFO(Dados do campo A1_NOME:+CRLF
Tamanho: + CVALTOCHAR(LEN(SA1->A1_NOME))+CRLF
Texto: + CVALTOCHAR(LEN(cNome)))
LOWER()
Retorna uma string com todos os caracteres minsculos, tendo como base a string passada
como parmetro.
Sintaxe: LOWER(cString)
Parmetros
cString
Exemplo:
cTexto := ADVPL
MSGINFO(Texto:+LOWER(cTexto))
LTRIM()
Funo para 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 funo 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() so as funes PADC(), PADR(), e PADL(), as
quais centralizam, alinham direita, ou alinham esquerda as cadeias de caracteres, atravs
da insero de caracteres de preenchimento.
cString
SP
33
ADVPL
GUIA DE REFERNCIA
Escola conveniada
esquerda.
Retorno:
Caracter
MATHC()
Funo utilizada para realizar operaes matemticas com strings que contm um valor
numrico. MATHC() realiza algumas operaes matemticas como: Soma, Subtrao, Diviso,
Multiplicao e Exponenciao.
A funo ir retornar uma string contendo o resultado da operao matemtica, com uma
especificao de at 18 casas de preciso no numero.
Sintaxe: MATHC ( < cNum1 > , < cOperacao > , < cNum2 > )
Parmetros:
cNum1
cOperacao
cNum2
Retorno:
Caracter
OEMTOANSI()
Funo que transforma uma string no Formato OEM / MS-DOS Text para uma string ANSI
Text ( formato do Windows ).
Quando utilizamos um programa baseado no MS-DOS para alimentar uma base de dados , os
acentos e caracteres especiais so gravados como texto OEM . Para tornar possvel a correta
visualizao destes dados em uma interface Windows , utilizamos a funo OemToAnsi() para
realizar a converso.
Ao utilizarmos um programa baseado no Windows para alimentar uma base de dados , o texto
capturado no formato ANSI Text . Caso este texto seja utilizado para alimentar uma base de
dados a ser acessada atravs de um programa MS-DOS , devemos converter o dado para OEM
antes de grav-lo , atravs da funo AnsiToOem().
cStringOEM
SP
34
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Caracter
Sintaxe: PADL / PADR / PADC ( < cExp > , < nTamanho > , [ cCaracPreench ] )
Parmetros
cExp
nTamanho
cCaracPreench
Retorno:
Caracter
RAT()
Retorna a ltima posio de um caracter ou string dentro de outra string especificada.
cCaractere
cString
SP
35
ADVPL
GUIA DE REFERNCIA
Escola conveniada
REPLICATE()
A funo Replicate() utilizada para gerar uma cadeira de caracteres repetidos a partir de um
caracter base informado, podendo a string gerada conter at 64KB. Caso seja especificado no
parmetro de itens a repetir o nmero zero, ser retornada uma string vazia.
Parmetros:
cString
nCount
Retorno:
cReplicated
RTRIM()
Funo para 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 so 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() so as funes PADC(), PADR(), e PADL(), as
quais centralizam, alinham direita, ou alinham esquerda cadeias de caracteres, inserindo
caracteres de preenchimento.
Parmetros:
cString
Retorno:
Caracter
SPACE()
SP
36
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
nCont
Retorno:
Caracter
STRTOKARR()
Funo utilizada para retornar um array, de acordo com os dados passados como parmetro
para a funo. Esta funo recebe uma string <cValue> e um caracter <cToken> que
representa um separador, e para toda ocorrncia deste separador em <cValue> adicionado
um item no array.
Parmetros:
cValue
cToken
Retorno:
Array
Exemplo:
STRTOKARR('1;2;3;4;5', ';')
//retorna {'1','2','3','4','5'}
STRTRAN()
Funo utilizada para realizar a busca da ocorrncia da string, sendo case sensitive.
Sintaxe: STRTRAN ( < cString > , < cSearch > , [ cReplace ] , [ nStart ] ,
[ nCount ] )
Parmetros:
cString
SP
37
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cSearch
cReplace
nStart
nCount
Retorno:
Code-Block
STUFF()
Funo que permite substituir um contedo caractere em uma string j existente,
especificando a posio inicial para esta adio e o nmero de caracteres que sero
substitudos.
Parmetros:
cString
nExcluir
cAdicao
nPosInicial
Retorno:
Caracter
Exemplo:
cLin := Space(100)+cEOL // Cria a string base
cCpo := PADR(SA1->A1_FILIAL,02) // Informao que ser armazenada na string
cLin := Stuff(cLin,01,02,cCpo) // Substitui o contedo de cCpo na string base
SUBSTR()
Retorna parte do contedo de uma string especificada, de acordo com a posio inicial deste
contedo na string e a quantidade de caracteres que dever ser retornada a partir daquele
ponto (inclusive).
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
38
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cString
nPosInicial
nCaracteres
Exemplo:
cCampo := A1_NOME
nPosUnder := AT(cCampo)
cPrefixo := SUBSTR(cCampo,1, nPosUnder) // A1_
TRANSFORM()
Funo de converso que formata valores caractere, data, lgicos e numricos conforme um
string de mscara especificado, a qual inclui uma combinao de strings de template e funes
de picture. Ela faz o mesmo que a clusula PICTURE do comando @...SAY, sendo normalmente
utilizada para formatar dados a serem enviados tela ou impressora.
Parmetros:
cExp
cSayPictur
e
O valor a ser formatado. Esta expresso pode ser qualquer tipo de dados
vlidos, exceto vetor, bloco de cdigo, e NIL.
Uma string de caracteres de mscara e template usado para descrever o
formato da cadeia de caracteres a ser retornada.
Retorno:
UPPER()
Retorna uma string com todos os caracteres maisculos, tendo como base a string passada
como parmetro.
Sintaxe: UPPER(cString)
Parmetros
cString
Exemplo:
SP
39
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cTexto := ADVPL
MSGINFO(Texto:+LOWER(cTexto))
dExp
Retorno:
cDayWeek
Exemplo:
dData := DATE() // Resultado: 09/01/90
cDiaDaSemana := CDOW(DATE()) // Resultado: Friday
cDiaDaSemana := CDOW(DATE() + 7) // Resultado: Friday
cDiaDaSemana := CDOW(CTOD("06/12/90")) // Resultado: Tuesday
CMONTH()
Funo de converso de datas que retorna uma cadeia de caracteres com o nome do ms em
ingls.
dData
Retorno:
cMonth
Exemplo:
SP
40
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cMes
cMes
cMes
cMes
:=
:=
:=
:=
DATE()
Funo que retorna a data do atual sistema. O formato de sada controlado pelo comando
SET DATE, sendo que o formato padro mm/dd/yy.
Sintaxe: DATE()
Parmetros:
Nenhum
Retorno:
dData
Data do sistema.
Exemplo:
dData := DATE() // Resultado: 09/01/01
dData := DATE() + 30 // Resultado: 10/01/01
dData := DATE() - 30 // Resultado: 08/02/90
dData := DATE()
cMes := CMONTH(dData) // Resultado: September
DAY()
Funo de converso de datas usada para converter o valor data em um nmero inteiro que
representa o dia do ms. Esta funo pode ser usada em conjunto com CMONTH() e YEAR()
para formatar datas. Pode ser usada tambm em diversos clculos envolvendo datas.
dData
Retorno:
nDias
Exemplo:
// Estes exemplos mostram a funo DAY() de diversas maneiras:
dData := DATE() // Resultado: 09/01/01
nDia := DAY(DATE()) // Resultado: 1
nDia := DAY(DATE()) + 1 // Resultado: 2
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
41
ADVPL
GUIA DE REFERNCIA
Escola conveniada
dData
Retorno:
nDia
Exemplo:
dData := DATE() // Resultado: 09/01/01
nDiaDaSemana := DOW(DATE()) // Resultado: 3
cDiaDaSemana := CDOW(DATE()) // Resultado: Tuesday
nDiaDaSemana := DOW(DATE() - 2) // Resultado: 1
cDiaDaSemana := CDOW(DATE() - 2) // Resultado: Sunday
DTOC()
Funo para converso de uma data para uma cadeia de caracteres formatada segundo o
padro corrente, definido pelo comando SET DATE. Se for necessria a utilizao de
formatao especial, use a funo TRANSFORM().
Em expresses de ndices de arquivo, use DTOS() no lugar de DTOC() para converter datas
para cadeia de caracteres.
dData
Retorno:
cData
SP
42
ADVPL
GUIA DE REFERNCIA
Escola conveniada
dData
Retorno:
sData
Exemplo:
cData := DATE() // Resultado: 09/01/90
cData := DTOS(DATE()) // Resultado: 19900901
nLen := LEN(DTOS(CTOD(""))) // Resultado: 8
ELAPTIME()
Funo que retorna uma cadeia de caracteres contendo a diferena de tempo no formato
hh:mm:ss, onde hh a hora ( 1 a 24 ), mm os minutos e ss os segundos.
cHoraInicial
CHoraFinal
Retorno:
Caracter
SP
43
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
cHoraInicio := TIME() // Resultado: 10:00:00
...
<instrues>
...
cElapsed := ELAPTIME(TIME(), cHoraInicio)
MONTH()
Funo de converso que extrai da data o valor numrico do ms, semelhante a funo que
retorna o nome do ms a partir do valor de dData.
dData
Retorno:
Numrico
Exemplo:
dData := DATE() // Resultado: 09/01/01
nMes := MONTH(DATE()) // Resultado: 9
nMes := MONTH(DATE()) + 1 // Resultado: 10
SECONDS()
Esta funo retorna o nmero de segundos decorridos desde a meia-noite, segundo a hora do
sistema. Est relacionada funo TIME() que retorna a hora do sistema como uma cadeia de
caracteres no formato hh:mm:ss.
Sintaxe: SECONDS()
Parmetros:
Nenhum
Retorno:
Numrico
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
44
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: TIME()
Parmetros:
Nenhum
Retorno:
Caracter
Exemplo:
cTime := TIME() // Resultado: 10:37:17
cHora := SUBSTR(cTime, 1, 2) // Resultado: 10
cMinutos := SUBSTR(cTime, 4, 2) // Resultado: 37
cSegundos := SUBSTR(cTime, 7, 2) // Resultado: 17
YEAR()
YEAR() uma funo de converso de data que extrai o valor numrico do ano. YEAR()
membro de um grupo de funes que retornam valores numricos de uma data. O grupo inclui
DAY() e MONTH() que retornam o dia e o ms como valores numricos.
dData
Retorno:
Numrico
SP
45
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo 1:
dData := DATE() // Resultado: 09/20/01
dAno := YEAR(dData) // Resultado: 2001
dAno := YEAR(dData) + 11 // Resultado: 2012
Exemplo 2:
// Este exemplo cria uma funo de usurio que usa a funo YEAR() para formatar o valor da
// data:
cData := Mdy(DATE()) // Result: September 20, 1990
FUNCTION Mdy( dDate )
RETURN CMONTH(dDate) + " " + LTRIM(STR(DAY(dDate))) + "," + STR(YEAR(dDate))
Sintaxe: ABS(nValor)
Parmetros
nValor
Exemplo:
nPessoas := 20
nLugares := 18
IF nPessoas < nLugares
MSGINFO(Existem +CVALTOCHAR(nLugares- nPessoas)+disponveis)
ELSE
MSGSTOP(Existem +CVALTOCHAR(ABS(nLugares- nPessoas))+faltando)
ENDIF
ALEATORIO()
Gera um nmero aleatrio de acordo com a semente passada. Esta funo retorna um nmero
aleatrio menor ou igual ao primeiro parmetro informado, usando como semente o segundo
parmetro. recomendado que esta semente seja sempre o ltimo nmero aleatrio gerado
por esta funo.
Sintaxe: Aleatorio(nMax,nSeed)
Parmetros
nMax
SP
46
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nSeed
Exemplo:
Funo ALEATORIO()
nSeed := 0
For i := 1 to 100
nSeed := Aleatorio(100,nSeed)
? Str(i,3)+ numero aleatorio gerado: +Str(nSeed,3)
Next i
inkey(0)
Return
INT()
Retorna a parte inteira de um valor especificado no parmetro.
Sintaxe: INT(nValor)
Parmetros
nValor
Exemplo:
STATIC FUNCTION COMPRAR(nQuantidade)
LOCAL nDinheiro := 0.30
LOCAL nPrcUnit := 0.25
IF nDinheiro >= (nQuantidade*nPrcUnit)
RETURN nQuantidade
ELSEIF nDinheiro > nPrcUnit
nQuantidade := INT(nDinheiro / nPrcUnit)
ELSE
nQuantidade := 0
ENDIF
RETURN nQuantidade
NOROUND()
Retorna um valor, truncando a parte decimal do valor especificado no parmetro de acordo
com a quantidade de casas decimais solicitadas.
nValor
SP
47
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nCasas
Exemplo:
Funo NOROUND()
nBase := 2.985
nValor := NOROUND(nBase,2) 2.98
RANDOMIZE()
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 .
Parmetros
nMinimo
nMaximo
Retorno:
Numrico
ROUND()
Retorna um valor, arredondando a parte decimal do valor especificado no parmetro de acordo
com a quantidades de casas decimais solicitadas, utilizando o critrio matemtico.
nValor
nCasas
SP
48
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
nBase := 2.985
nValor := ROUND(nBase,2) 2.99
Manipulao de arquivos
ADIR()
Funo que preenche os arrays passados com os dados dos arquivos encontrados, atravs da
mscara informada. Tanto arquivos locais (Remote) como do servidor podem ser informados.
Importante: ADir uma funo obsoleta, utilize sempre Directory().
Parmetros:
cArqEspec
aNomeArq
aTamanho
aData
aHora
aAtributos
Retorno:
nArquivos
Exemplo:
LOCAL aFiles[ADIR("*.TXT")]
ADIR("*.TXT", aFiles)
AEVAL(aFiles, { |element| QOUT(element) })
CGETFILE()
Funo utilizada para seleo de um arquivo ou diretrio, disponibilizando uma interface
grfica para amigvel para o usurio. Esta funo est normalmente associada ao recurso de
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
49
ADVPL
GUIA DE REFERNCIA
Escola conveniada
abrir ou salvar arquivos, permitindo para esta ltima a digitao opcional do nome do arquivo
que ser gravado.
Parmetros:
ExpC1
ExpC2
Titilo da Janela
ExpN1
ExpC3
Expl1
.T. para mostrar boto como 'Salvar' e .F. para boto 'Abrir'
ExpN2
ExpL2
GETF_OVERWRITEPROMPT
GETF_MULTISELECT
GETF_NOCHANGEDIR
GETF_LOCALFLOPPY
GETF_LOCALHARD
GETF_NETWORKDRIVE
GETF_SHAREWARE
No implementado
GETF_RETDIRECTORY
Retorna um diretrio
Exemplo:
cGetFile ( '*.PRW|*.CH'
GETF_LOCALFLOPPY)
'Fontes',
1,
'C:\VER507',
.F.,
GETF_LOCALHARD
Aparncia:
SP
50
ADVPL
GUIA DE REFERNCIA
Escola conveniada
#include "protheus.ch"
//+--------------------------------------------------------------------+
//| Rotina | SELFILE | Autor |
| Data | 01.01.2007 |
//+--------------------------------------------------------------------+
//| Descr. | Funo exemplo para seleo de mltiplos arquivos.
|
//+--------------------------------------------------------------------+
//| Uso
| CURSO DE ADVPL
|
//+--------------------------------------------------------------------+
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
51
ADVPL
GUIA DE REFERNCIA
Escola conveniada
//+--------------------------------------------------------------------+
//| Rotina | PARBOXFILE | Autor |
| Data | 01.01.2007 |
//+--------------------------------------------------------------------+
//| Descr. | Funo exemplo de uso da PARAMBOX em conjunto com CGETFILE|
//+--------------------------------------------------------------------+
//| Uso
| CURSO DE ADVPL
|
//+--------------------------------------------------------------------+
STATIC FUNCTION PARBOXFILE()
Local
Local
Local
Local
Local
Local
Local
Local
aParamBox := {}
cTitulo
:= "Filtros Adicionais"
aRet := {}
bOk
:= {|| .T.}
aButtons
:= {}
lCentered
:= .T.
nPosx
nPosy
SP
52
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Local
Local
Local
Local
Local
cLoad := ""
lCanSave
:= .F.
lUserSave := .F.
nX
:= 0
lRet := .T.
SP
53
ADVPL
GUIA DE REFERNCIA
Escola conveniada
//+--------------------------------------------------------------------+
AADD(aChaveArq,{.F.,aArquivos[nX][1],cDiretorio})
Next nX
//+--------------------------------------------------------------------+
//| Monta tela para seleo dos arquivos contidos no diretrio
|
//+--------------------------------------------------------------------+
DEFINE MSDIALOG oDlg TITLE cTitulo STYLE DS_MODALFRAME From 145,0 To 445,628;
OF oMainWnd PIXEL
oDlg:lEscClose := .F.
@ 05,15 TO 125,300 LABEL UPPER(cDriver) OF oDlg PIXEL
@ 15,20 CHECKBOX oChkQual VAR lQual PROMPT "Inverte Seleo" SIZE 50, 10;
OF oDlg PIXEL;
ON CLICK (AEval(aChaveArq, {|z| z[1] := If(z[1]==.T.,.F.,.T.)}),;
oQual:Refresh(.F.))
@ 30,20 LISTBOX oQual VAR cVarQ Fields HEADER "","Cdigo","Descrio" SIZE;
273,090 ON DBLCLICK (aChaveArq:=Troca(oQual:nAt,aChaveArq),oQual:Refresh());
NoScroll OF oDlg PIXEL
oQual:SetArray(aChaveArq)
oQual:bLine := { || {If(aChaveArq[oQual:nAt,1],oOk,oNo),;
aChaveArq[oQual:nAt,2],aChaveArq[oQual:nAt,3]}}
DEFINE SBUTTON FROM 134,240 TYPE 1 ACTION IIF(MarcaOk(aChaveArq),;
(lSelecao := .T., oDlg:End(),.T.),.F.) ENABLE OF oDlg
DEFINE SBUTTON FROM 134,270 TYPE 2 ACTION (lSelecao := .F., oDlg:End());
ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED
RETURN aChaveArq
//+--------------------------------------------------------------------+
//| Rotina | MARCAOK | Autor |
| Data | 01.01.2007 |
//+--------------------------------------------------------------------+
//| Uso
| CURSO DE ADVPL
|
//+--------------------------------------------------------------------+
STATIC FUNCTION MarcaOk(aArray)
Local lRet:=.F.
Local nx:=0
SP
54
ADVPL
GUIA DE REFERNCIA
Escola conveniada
CPYS2T()
Funo utilizada para copiar um arquivo do servidor para o cliente (Remote), sendo que os
caracteres * e ? so aceitos normalmente. Caso a compactao seja habilitada
(lCompacta), os dados sero transmitidos de maneira compacta e descompactados antes do
uso.
Sintaxe: CPYS2T ( < cOrigem > , < cDestino > , [ lCompacta ] )
Parmetros:
cOrigem
cDestino
lCompacta
Retorno:
Lgico
lSucess retorna .T. caso o arquivo seja copiado com sucesso , ou .F. em caso
de falha na cpia.
Exemplo:
// Copia arquivos do servidor para o remote local, compactando antes de transmitir
CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .T. )
// Copia arquivos do servidor para o remote local, sem compactar antes de transmitir
CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .F. )
CPYT2S()
Funo utilizada para copiar um arquivo do cliente (Remote) para o servidor, sendo que os
caracteres * e ? so aceitos normalmente. Caso a compactao seja habilitada
(lCompacta), os dados sero transmitidos de maneira compacta e descompactados antes do
uso.
Sintaxe: CpyT2S( cOrigem, cDestino, [ lCompacta ])
Parmetros:
cOrigem
SP
55
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cDestino
lCompacta
Retorno:
Lgico
Exemplo:
// Copia arquivos do cliente( remote ) para o Servidor compactando antes de transmitir
CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP", .T. )
// Copia arquivos do cliente( remote ) para o Servidor sem compactar.
CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP" )
CURDIR()
Funo que retorna o diretrio corrente do servidor. O caminho retornado sempre relativo ao
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 caminho de rede), a funo no ir setar o novo path,
mantendo o atual .
Parmetros:
cNovoPath
Caminho relativo , com o novo diretrio que ser ajustado como corrente.
Retorno:
Caracter
Exemplo:
cOldDir := curdir()
cNewDir := '\webadv\xis'
curdir(cNewDir) // Troca o path
If cNewDir <> '\'+curdir() // E verifica se trocou mesmo
conout('Falha ao Trocar de Path de '+cOldDir + ' para '+cNewDir)
Else
conout('Path de '+cOldDir + ' trocado para '+cNewDir+' com sucesso.')
Endif
DIRECTORY()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
56
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Significado
Incluir diretrios
Nota: Arquivos normais so sempre includos na pesquisa, a no ser que V seja especificado.
Metasmbolo
Directry.ch
cNome
F_NAME
cTamanho
F_SIZE
dData
F_DATE
cHora
F_TIME
cAtributos
F_ATT
Parmetros:
cDirSpec
cAtributos>
Retorno:
Array
SP
57
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
#INCLUDE "Directry.ch"
aDirectory := DIRECTORY("*.*","D")
AEVAL( aDirectory, {|aFile| CONOUT(aFile[F_NAME])} )
DIRREMOVE()
Funo que 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 comece com \ ), ou a partir do diretrio corrente (caso o path no seja iniciado com \ ).
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.
Parmetros:
cDiretorio
Retorno:
Lgico
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().
Exemplo:
cDelPath := 'c:\TmpFiles'
lRemoveOk := DIRREMOVE(cDelPath)
IF !lRemoveOk
MsgStop('Falha ao remover a pasta '+cDelPath+' ( File Error '+str(Fewrror(),4)+' ) ')
Else
MsgStop('Pasta '+cDelPath+' removida com sucesso.')
Endif
DISKSPACE()
Funo de ambiente que determina quantos bytes esto disponveis em uma determinada
unidade de disco. Esta funo obtm a informao sempre relativa estao onde est sendo
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
58
ADVPL
GUIA DE REFERNCIA
Escola conveniada
:
:
:
:
:
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
Parmetros:
nDrive
Retorno:
Numrico
Exemplo:
nBytesLocal := DISKSPACE( ) // Retorna o espao disponvel na unidade de disco local
IF nBytesLocal < 1048576
MsgStop('Unidade de Disco local possui menos de 1 MB livre.')
Else
MsgStop('Unidade de disco local possui '+str(nBytes_A,12)+' bytes livres.')
Endif
nBytes_A := DISKSPACE( 1 ) // Retorna o espao disponvel no drive A: local ( remote ).
If nBytes_A == -1
MsgStop('Unidade A: no est disponvel ou no h disco no Drive')
ElseIf nBytes_A < 8192
MsgStop('No h espao disponvel no disco. Substitua o disco na Unidade A:')
Else
MsgStop('Unidade A: Verificada . '+str(nBytes_A,12)+' bytes livres.')
Endif
EXISTDIR()
Funo utilizada para determinar se um path de diretrio existe e valido.
Parmetros:
cPath
String contendo o diretrio que ser verificado, caso seja feita uma
SP
59
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Lgico
Parmetros:
nHandle
Retorno:
Lgico
Exemplo:
#include "Fileio.ch"
nHandle := FCREATE("Testfile", FC_NORMAL)
If !FCLOSE(nHandle)
conout( "Erro ao fechar arquivo, erro numero: ", FERROR() )
EndIf
SP
60
ADVPL
GUIA DE REFERNCIA
Escola conveniada
FCREATE()
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
Valor
Descrio
FC_NORMAL
FC_READONLY
FC_HIDDEN
FC_SYSTEM
Caso desejemos especificar mais de um atributo , basta som-los . Por exemplo , para criar
um arquivo protegido contra gravao e escondido , passamos como atributo FC_READONLY +
FC_HIDDEN.
.
Nota: Caso o arquivo j exista , o contedo do mesmo ser ELIMINADO , e seu tamanho ser
truncado para 0 ( ZERO ) bytes.
Parmetros:
cArquivo
nAtributo
Retorno:
Numrico
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 ocorrncia atravs da funo FERROR() .
FERASE()
Funo utilizada para 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 sendo permitido a
utilizao de caracteres coringa (wildcards).
Parmetros:
SP
61
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cArquivo
Retorno:
Numrico
Exemplo:
#include 'DIRECTRY.CH'
aEval(Directory("*.BAK"), { |aFile| FERASE(aFile[F_NAME]) })
// Este exemplo apaga um arquivo no cliente ( Remote ) , informando o status da operao
IF FERASE("C:\ListaTXT.tmp") == -1
MsgStop('Falha na deleo do Arquivo ( FError'+str(ferror(),4)+ ')')
Else
MsgStop('Arquivo deletado com sucesso.')
ENDIF
FILE()
Funo que verifica se existe um arquivo ou um padro de arquivos, no diretrio. Podem ser
especificados caminhos absolutos ( arquivos na estao - Remote ) ou relativos ( a partir do
RootPath do Protheus Server) , sendo os caracteres * e ? ( wildcards) aceitos.
Parmetros:
cArquivo
Retorno:
Lgico
Exemplo:
//Verifica no diretrio corrente do servidor se existe o arquivo teste.dbf
FILE("teste.dbf")
// Verifica no diretrio Sigaadv do servidor se existe o arquivo teste.dbf
FILE("\SIGAADV\TESTE.dbf")
// Verifica no diretrio Temp do cliente (Remote) se existe o arquivo teste.dbf
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
62
ADVPL
GUIA DE REFERNCIA
Escola conveniada
FILE("C:\TEMP\TESTE.dbf")
FILENOEXT()
Funo que retorna o nome de um arquivo contido em uma string, ignorando a extenso.
Parmetros
cString
Exemplo:
Local cString := '\SIGAADV\ARQZZZ.DBF'
cString := FileNoExt( cString )
// Retorno \SIGAADV\ARQZZZ
FOPEN()
Funo 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 no exista, FOPEN() retorna -1 e FERROR()
retorna 2 para indicar que o arquivo no 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 funes 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.
Nota: Esta funo 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.
FOPEN procura o arquivo no diretrio corrente e nos diretrios configurados
na varivel de pesquisa do Sistema Operacional, a no 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
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
63
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cArq
Nome do arquivo a ser aberto que inclui o path caso haja um.
nModo
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
restries de compartilhamento relacionada na Tabela B. O modo padro
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.
Retorno:
Numrico
Exemplo:
#include 'fileio.ch'
...
nH := fopen('\sigaadv\error.log' , FO_READWRITE + FO_SHARED )
If nH == -1
MsgStop('Erro de abertura : FERROR '+str(ferror(),4))
Else
MsgStop('Arquivo aberto com sucesso.')
...
fclose(nH)
Endif
...
Modo
Constate(fileio.ch)
Operao
FO_READ
FO_WRITE
FO_READWRITE
Modo
0
Constate(fileio.ch)
Operao
FO_COMPAT
16
FO_EXCLUSIVE
32
FO_DENYWRITE
SP
64
ADVPL
GUIA DE REFERNCIA
Escola conveniada
processos ao arquivo.
48
FO_DENYREAD
64
FO_DENYNONE
FREAD()
Funo que realiza a leitura dos 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.) e l a partir
da posio atual do ponteiro atual do arquivo , que pode ser ajustado ou modificado pelas
funes FSEEK() , FWRITE() ou FREADSTR().
A varivel String a ser utilizada como buffer de leitura deve ser sempre pr-alocado e passado
como referncia. Caso contrrio, os dados no podero ser retornados.
Sintaxe: FREAD ( < nHandle > , < cBuffer > , < nQtdBytes > )
Parmetros:
nHandle
cBuffer
nQtdBytes
Retorno:
Numrico
FREADSTR ()
Funo que realiza a leitura de caracteres de um arquivo binrio. 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().
Parmetros:
SP
65
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nHandle
nQtdBytes
Retorno:
Caracter
FRENAME()
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 fRename() atravs de um JOB. Caso isto ocorra, a
funo retornar -1 , e fError() retornar tambm -1.
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.
Parmetros:
cOldFile
cNewFile
Retorno:
Numrico
FSEEK()
Funo que 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:
SP
66
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Origem
Constate(fileio.ch)
Operao
FS_SET
FS_RELATIVE
FS_END
Parmetros:
nHandle
nOffSet
nOrigem
Retorno:
Numrico
FT_FEOF()
Funo que retorna verdadeiro (.t.) se o arquivo texto aberto pela funo FT_FUSE() estiver
posicionado no final do arquivo, similar funo EOF() utilizada para arquivos de dados.
Sintaxe: FT_FEOF( )
Parmetros:
Nenhum
Retorno:
Lgico
Retorna true caso o ponteiro do arquivo tenha chegado ao final, false caso
contrrio.
FT_FGOTO()
Funo utilizada para mover o ponteiro, que indica a leitura do arquivo texto, para a posio
absoluta especificada pelo argumento <nPos>.
Parmetros:
nPos
Indica a posio que ser colocado o ponteiro para leitura dos dados no
SP
67
ADVPL
GUIA DE REFERNCIA
Escola conveniada
arquivo.
Retorno:
Nenhum
FT_FGOTOP()
A funo tem como objetivo mover o ponteiro, que indica a leitura do arquivo texto, para a
posio absoluta especificada pelo argumento <nPos>.
Parmetros:
nPos
Indica a posio que ser colocado o ponteiro para leitura dos dados no
arquivo.
Retorno:
Nenhum
FT_FLASTREC()
Funo que retorna o nmero total de linhas do arquivo texto aberto pela FT_FUse. As linhas
so delimitadas pela seqncia de caracteres CRLF o LF.
Verifique maiores informaes sobre formato do arquivo e tamanho
mximo da linha de texto na funo FT_FREADLN().
Sintaxe: FT_FLASTREC( )
Parmetros:
Nenhum
Retorno:
Numrico
Exemplo:
FT_FUse('teste.txt') // Abre o arquivo
CONOUT("Linhas no arquivo ["+str(ft_flastrec(),6)+"]")
FT_FGOTOP()
While !FT_FEof()
conout("Ponteiro ["+str(FT_FRECNO(),6)+"] Linha ["+FT_FReadln()+"]")
FT_FSkip()
Enddo
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
68
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: FT_FREADLN( )
Parmetros:
Nenhum
Retorno:
Caracter
FT_FRECNO()
A funo tem o objetivo de retornar a posio do ponteiro do arquivo texto.
A funo FT_FRecno retorna a posio corrente do ponteiro do arquivo texto aberto pela
FT_FUse.
Sintaxe: FT_FRECNO ( )
Parmetros:
Nenhum
SP
69
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Caracter
FT_FSKIP()
Funo que move o ponteiro do arquivo texto aberto pela FT_FUSE() para a prxima linha,
similar ao DBSKIP() usado para arquivos de dados.
nLinhas
Retorno
Nenhum
FT_FUSE()
Funo que abre ou fecha um arquivo texto para uso das funes FT_F*. As funes FT_F* so
usadas para ler arquivos texto, onde as linhas so delimitadas pela seqncia de caracteres
CRLF ou LF (*) e o tamanho mximo de cada linha 1022 bytes.. O arquivo aberto em uma
rea de trabalho, similar usada pelas tabelas de dados.
Verifique maiores informaes sobre formato do arquivo e tamanho
mximo da linha de texto na funo FT_FREADLN().
cTXTFile
Retorno:
Numrico
FWRITE()
Funo que permite a escrita em todo ou em 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.).
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
70
ADVPL
GUIA DE REFERNCIA
Escola conveniada
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().
Parmetros:
nHandle
cBuffer
nQtdBytes
Retorno:
Numrico
Exemplo:
#INCLUDE "FILEIO.CH"
#DEFINE F_BLOCK 1024 // Define o bloco de Bytes a serem lidos / gravados por vez
User Function TestCopy()
Local cBuffer := SPACE(F_BLOCK)
Local nHOrigem , nHDestino
Local nBytesLidos , nBytesFalta , nTamArquivo
Local nBytesLer , nBytesSalvo
Local lCopiaOk := .T.
// Abre o arquivo de Origem
nHOrigem := FOPEN("ORIGEM.TXT", FO_READ)
Exemplo (continuao):
// Testa a abertura do Arquivo
If nHOrigem == -1
MsgStop('Erro ao abrir origem. Ferror = '+str(ferror(),4),'Erro')
Return .F.
Endif
// Determina o tamanho do arquivo de origem
nTamArquivo := Fseek(nHOrigem,0,2)
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
71
ADVPL
GUIA DE REFERNCIA
Escola conveniada
SP
72
ADVPL
GUIA DE REFERNCIA
Escola conveniada
If lCopiaOk
MsgStop('Cpia de Arquivos finalizada com sucesso. '+;
str(nTamArquivo,12,0)+' bytes copiados.','Final')
Else
MsgStop( 'Falha na Cpia. Arquivo de Destino incompleto. '+;
'Do total de '+str(nTamArquivo,12,0)+' bytes, faltaram
'+str(nBytesFalta,12,0)+' bytes.','Final')
Endif
Return
MSCOPYFILE()
Funo que executa a cpia binria de um arquivo para o destino especificado.
Parmetros:
cArqOrig
cArqDest
Retorno:
Lgico
Exemplo:
Local cArqOrig := 'ARQ00001.DBF'
Local cArqDest := 'ARQ00002.XXX'
If MsCopyFile( cArqOrig, cArqDest )
APMsgInfo('Copia realizada com sucesso!')
EndIf
MSCOPYTO()
Funo que realiza a cpia dos registros de uma base de dados para outra, criando o arquivo
destino de acordo com a estrutura da base de dados origem.
Parmetros:
cArqOrig
cArqDest
Retorno:
SP
73
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Lgico
Exemplo:
Local cArqDest := 'SX2ZZZ.DBF'
DbSelectArea('SX2')
If MsCopyTo( , cArqDest )
APMsgInfo('Copia realizada com sucesso!')
Else
APMsgInfo('Problemas ao copiar o arquivo SX2!')
EndIf
MSCREATE()
Funo que cria um arquivo (tabela) de acordo com a estrutura informada no parmetro
aStruct. Se o parmetro cDriver no for informado o RDD corrente ser assumido como
padro. Para criao de tabelas no TopConnect necessrio estar conectado ao banco e o
environment do protheus ser TOP.
aStruct: array contendo a estrutura da tabela aonde:
1 - caracter, nome do campo;
2 - caracter, tipo do campo;
3 - numrico, tamanho do campo;
4 - numrico, decimais.
Parmetros:
cArquivo
Nome do arquivo.
aStruct
Estrutura do arquivo.
cDriver
RDD do arquivo.
Retorno:
Lgico
Exemplo:
Local cTarget := '\sigaadv\'
Local aStrut
aStrut := { { 'Campo', 'C', 40, 0 } }
If MsCreate( cTarget+'ARQ1001', aStrut )
APMsgInfo('Criado com sucesso!')
Else
APMsgInfo('Problemas ao criar o arquivo!')
EndIf
SP
74
ADVPL
GUIA DE REFERNCIA
Escola conveniada
MSERASE()
Funo utilizada para deletar fisicamente o arquivo especificado.
Parmetros:
cArquivo
cIndice
cDriver
Retorno:
Lgico
Exemplo:
Local cArquivo := 'SX2ZZZ.DBF'
Local cIndice := 'SX2ZZZ'+ OrdBagExt()
If MsErase( cArquivo, cIndice )
APMsgInfo( 'Arquivo deletado com sucesso!' )
Else
APMsgInfo( 'Problemas ao deletar arquivo!' )
EndIf
MSRENAME()
Funo que verifica a existncia do arquivo especificado.
Parmetros:
cArquivo
cIndice
cDriver
Retorno:
Lgico
Exemplo:
Local cArquivo := 'SX2ZZZ.DBF'
Local cIndice := 'SX2ZZZ'+ OrdBagExt()
If !MsFile ( cArquivo, cIndice )
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
75
ADVPL
GUIA DE REFERNCIA
Escola conveniada
EndIf
RETFILENAME()
Funo que retorna o nome de um arquivo contido em uma string, ignorando o caminho e a
extenso.
Parmetros:
cArquivo
Retorno:
Caracter
Exemplo:
Local cArquivo := '\SIGAADV\ARQZZZ.DBF'
cArquivo := RetFileName( cArquivo )
// retorno ARQZZZ
Caso o parmetro lDbf seja definido como .T., a funo criar um arquivo DBF com este
nome e a estrutura definida em aArray.
Caso o parmetro lDbf seja definido como .F., a funo no criar arquivo de nenhum
tipo, apenas fornecer um nome vlido.
Sintaxe: CriaTrab(aArray,lDbf)
Parmetros:
aArray
lDbf
Retorno:
Caracter
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
76
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
nAreaTrabalho
Retorno:
Caracter
SP
77
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
cAlias := alias()
IF empty(cAlias)
alert('No h Area em uso')
Else
alert(Area em uso atual : '+cAlias)
Endif
BOF() / EOF()
As funes BOF() e EOF() so utilizadas para determinar se o ponteiro de leitura do arquivo
encontra-se no comeo ou no final do mesmo conforme abaixo:
testar uma
se movendo
testar uma
se movendo
Parmetros:
Nenhum
Retorno:
Lgico
Lgico
SP
78
ADVPL
GUIA DE REFERNCIA
Escola conveniada
COPY()
O comando COPY TO permite a cpia de todos ou parte dos registros da tabela atualmente
selecionada como rea de trabalho atual, para um novo arquivo. Os registros considerados
para a cpia podem ser limitados pela clusula <escopo>, atravs de expresses FOR/WHILE,
e/ou atravs de um filtro.
Se o filtro para registros deletados ( SET DELETED ) estiver desligado (OFF), registros
deletados ( marcados para deleo ) so copiados para o arquivo de destino, mantendo este
status. Caso contrrio, nenhum registro deletado copiado. Da mesma maneira, caso exista
uma condio de filtro na tabela atual ( SET FILTER ), apenas os registros que satisfaam a
condio de fintro sero copiados.
Os registros so lidos na tabela atual, respeitando a ordem de ndice setada. Caso no hajam
ndices abertos, ou a ordem de navegao nos ndices (SET ORDER ) seja 0 (zero), os registros
so lidos em orden natural ( ordem de RECNO ) .
A tabela de destino dos dados copiados criada, e aberta em modo exclusivo, antes da
operao de cpia efetiva ser iniciada.
Elemento do Arquivo
Formato
T ou F
(campo ignorado)
Delimitador de Campos
Nenhum
Separador de Registros
Nenhum
SP
79
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Elemento do Arquivo
Formato
T ou F
(campo ignorado)
Delimitador de Campos
Vrgula
Separador de Registros
Nenhum
Sintaxe:
Parmetros:
FIELDS <campo,...>
TO cFile
cEscopo
SP
80
ADVPL
GUIA DE REFERNCIA
Escola conveniada
WHILE <lCondicao>
FOR <lCondicao>
[SDF|DELIMITED]
VIA <cDriver>
Retorno:
Nenhum
COPY STRUCTURE()
O comando COPY STRUCTURE cria uma nova tabela vazia, com a estrutura da tabela ativa na
rea de trabalho atual. Se a tabela a ser criada j exista, a mesma sobrescrita. A tabela de
destino criada utiliza o mesmo RDD da tabela de origem ( tabela ativa na rea de trabalho
atual ).
A Linguagem Advpl, antes do Protheus, suportava a parametrizao de uma
lista de campos da tabela atual, para compor a estrutura da tabela de destino,
atravs da clusula FIELDS <campo,...>. Esta opo no suportada no
Protheus. Caso seja utilizada, o programa ser abortado com a ocorrncia de
erro fatal : 'DBCopyStruct - Parameter <Fields> not supported in
Protheus'
Sintaxe:
SP
81
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
TO <xcDataBase>
Retorno:
Nenhum
DBAPPEND()
A funo DBAPPEND() acrescenta mais um registro em branco no final da tabela corrente. Se
no houver erro da RDD, o registro acrescentado e bloqueado.
Parmetros:
lLiberaBloqueios
Retorno:
Nenhum
Exemplo:
USE Clientes NEW
FOR i:=1 to 5
DBAPPEND(.F.)
NOME := "XXX"
END : ="YYY"
NEXT
// Os 5 registros includos permanecem bloqueados
DBAPPEND()
// Todos os bloqueios anteriores so liberados
DBCLEARALLFILTER()
A funo DBCLEARALLFILTER() salva as atualizaes realizadas e pendentes de todas as
tabelas e depois limpa as condies de filtro de todas as tabelas.
Sintaxe: DBCLEARALLFILTER()
Parmetros:
Nenhum
SP
82
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Nenhum
Exemplo:
USE Clientes NEW
DBSETFILTER( {|| Idade < 40}, 'Idade < 40') // Seta a expresso de filtro
...
DBCLEARALLFILTER()
// Limpa a expresso de filtro de todas as ordens
DBCLEARFILTER()
A funo 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.
Sintaxe: DBCLEARFILTER()
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo:
USE Clientes NEW
DBSETFILTER( {|| Idade < 40}, "Idade < 40" ) // Seta a expresso de filtro
...
DBCLEARFILTER()
// Limpa a expresso de filtro
DBCLEARINDEX()
A funo 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.
Sintaxe: DBCLEARINDEX()
Parmetros:
Nenhum
Retorno:
SP
83
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Nenhum
Exemplo:
USE Clientes NEW
DBSETINDEX("Nome") // Abre o arquivo de ndice "Nome"
...
DBCLEARINDEX()
// Fecha todos os arquivos de ndices
DBCLOSEALL()
A funo DBCLOSEALL() salva as atualizaes pendentes,
bloqueados e fecha todas as tabelas abertas (reas
chamasse DBCLOSEAREA para cada rea de trabalho.
Sintaxe: DBCLOSEALL()
Parmetros:
Nenhum
Retorno:
Nenhum
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
DBCLOSEAREA()
A funo DBCLOSEAREA() permite que um alias presente na conexo seja fechado, o que
viabiliza seu reuso em outro operao. Este comando tem efeito apenas no alias ativo na
conexo, sendo necessria sua utilizao em conjunto com o comando DbSelectArea().
Sintaxe: DBCLOSEAREA()
Parmetros:
Nenhum
SP
84
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Nenhum
Exemplo:
DbUserArea(.T., DBFCDX, \SA1010.DBF, SA1DBF, .T., .F.)
DbSelectArea(SA1DBF)
MsgInfo(A tabela SA1010.DBF possui: + STRZERO(RecCount(),6) + registros.)
DbCloseArea()
DBCOMMIT()
A funo DBCOMMIT() salva em disco todas as atualizaes pendentes na rea de
trabalho corrente.
Sintaxe: DBCOMMIT()
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo:
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
DBCOMMITALL()
A funo DBCOMMITALL() salva em disco todas as atualizaes pendentes em todas
as reas de trabalho.
Sintaxe: DBCOMMITALL()
Parmetros:
Nenhum
Retorno:
SP
85
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Nenhum
Exemplo:
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
DBCREATE()
A funo 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}.
Parmetros:
cNOME
aESTRUTURA
cDRIVER
Retorno:
Nenhum
Exemplo:
// Este exemplo mostra como se pode criar novo arquivo 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}}
// Cria a tabela com o RDD corrente
DBCREATE('\teste\cliente.dbf', aEstrutura)
USE '\teste\cliente.dbf' VIA 'DBFCDX' NEW
SP
86
ADVPL
GUIA DE REFERNCIA
Escola conveniada
(len>1) .and. (len< dec + 2): Se o tamanho total maior que 1, ele
deve ser maior que o nmero de decimais mais 2, para comportar o
separador de decimais e ter pelo menos um algarismo na parte inteira.
Exemplo: O nmero 12.45 poderia ser o valor de um campo com
len=5 e dec=2 (no mnimo).
DBCREATEINDEX()
A funo 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:
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.
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
87
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe:
[lUNICO])
Parmetros:
DBCREATEINDEX(<cNOME>,
<cEXPCHAVE>,
[bEXPCHAVE],
cNOME
cEXPCHAVE
bEXPCHAVE
lUNICO
Retorno:
Nenhum
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()
A funo DBDELETE() marca o registro corrente como apagado logicamente(), sendo
necessria sua utilizao em conjunto com as funes RecLock() e MsUnLock().
Para filtrar os registro marcados do alias corrente pode-se utilizar o comando SET DELETED e
para apag-los fisicamente pode-se utilizar a funo __DBPACK().
Sintaxe: DBDELETE ( )
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo:
DbSelectArea(SA1)
DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA
DbSeek(01 + 900001 + 01) // Busca exata
IF Found()
RecLock(SA1,.F.) // Define que ser realizada uma alterao no registro posicionado
DbDelete() // Efetua a excluso lgica do registro posicionado.
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
88
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: DBF()
Parmetros:
Nenhum
Retorno:
Caracter
Retorna o Alias corrente. Caso no exista Alias corrente retorna "" (String
vazia).
Exemplo:
dbUseArea( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. )
MessageBox("O Alias corrente : "+DBF(),"Alias", 0) //Resultado: "O Alias corrente : SSS"
DBFIELDINFO()
A funo DBFIELDINFO() utilizada para obter informaes sobre determinado campo da
tabela corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as
constantes abaixo:
Descrio
Retorno
DBS_NAME
Nome do campo.
Caracter
DBS_DEC
Numrico
DBS_LEN
Tamanho.
Numrico
DBS_TYPE
Tipo.
Caracter
Parmetros:
nINFOTIPO
SP
89
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nCAMPO
SP
90
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Indefinido
Exemplo:
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()
A funo DBFILTER() utilizada para verificar a expresso de filtro ativo na rea de trabalho
corrente.
Sintaxe: DBFILTER()
Parmetros:
Nenhum
Retorno:
Caracter
Exemplo:
USE Cliente INDEX Ind1 NEW
SET FILTER TO Nome > "Jose"
DBFILTER() // retorna: Nome > "Jose"
SET FILTER TO Num < 1000
DBFILTER() // retorna: Num < 1000
DBGOTO()
Move o cursor da rea de trabalho ativa para o record number (recno) especificado, realizando
um posicionamento direto, sem a necessidade uma busca (seek) prvio.
Sintaxe: DbGoto(nRecno)
Parmetros
SP
91
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nRecno
Exemplo:
DbSelectArea(SA1)
DbGoto(100) // Posiciona no registro 100
IF !EOF() // Se a rea de trabalho no estiver em final de arquivo
MsgInfo(Voc est no cliente:+A1_NOME)
ENDIF
DBGOTOP()
Move o cursor da rea de trabalho ativa para o primeiro registro lgico.
Sintaxe: DbGoTop()
Parmetros
Nenhum
Exemplo:
nCount := 0 // Varivel para verificar quantos registros h no intervalo
DbSelectArea(SA1)
DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA
DbGoTop()
While !BOF() // Enquanto no for o incio do arquivo
nCount++ // Incrementa a varivel de controle de registros no intervalo
DbSkip(-1)
End
MsgInfo(Existem :+STRZERO(nCount,6)+ registros no intervalo).
// Retorno esperado :000001, pois o DbGoTop posiciona no primeiro registro.
DBGOBOTTON()
Move o cursor da rea de trabalho ativa para o ltimo registro lgico.
Sintaxe: DbGoBotton()
Parmetros
Nenhum
Exemplo:
nCount := 0 // Varivel para verificar quantos registros h no intervalo
DbSelectArea(SA1)
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
92
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Descrio
Retorno
DBI_GETRECSIZE
Numrico
DBI_TABLEEXT
Caracter
DBI_FULLPATH
Caracter
DBI_BOF
Lgico
DBI_EOF
Lgico
DBI_FOUND
Lgico
DBI_FCOUNT
Numrico
DBI_ALIAS
Caracter
DBI_LASTUPDATE
Data
Sintaxe: DBINFO(<nINFOTIPO>)
Parmetros:
nINFOTIPO
da
Retorno:
Indefinido
SP
93
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
USE Clientes NEW
DBINFO(DBI_FULLPATH) // Retorno: C:\Teste\Clientes.dbf
DBINFO(DBI_FCOUNT) // Retorno: 12
DBGOTOP()
DBINFO(DBI_BOF) // Retorno: .F.
DBSKIP(-1)
DBINFO(DBI_BOF) // Retorno: .T.
DBNICKINDEXKEY()
Funo que retorna o IndexKey,ou seja, a expresso de ndice da ordem especificada pelo
NickName. Se no existe ndice com o nickname, retorna uma string vazia.
Sintaxe: DBNICKINDEXKEY(<cNick>)
Parmetros:
cNick
Retorno:
Caracter
DBORDERINFO()
A funo 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:
Descrio
Retorno
DBOI_BAGNAME
Caracter
DBOI_FULLPATH
Caracter
DBOI_ORDERCOUNT
Caracter
Sintaxe: DBORDERINFO(<nINFOTIPO>)
Parmetros:
nINFOTIPO
SP
94
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Caracter
Exemplo:
DBORDERINFO(DBOI_BAGNAME) // retorna: Ind
DBORDERINFO(DBOI_FULLPATH) // retorna: C:\AP6\Teste\Ind.cdx
DBORDERNICKNAME()
A funo DBORDERNICKNAME() utilizada para selecionar a ordem ativa atravs de seu
apelido. Esta ordem a responsvel pela seqncia lgica dos registros da tabela corrente.
Sintaxe: DBORDERNICKNAME(<cAPELIDO>)
Parmetros:
cAPELIDO
Retorno:
Lgico
Exemplo:
USE Cliente NEW
SET INDEX TO Nome, Idade
IF !DBORDERNICKNAME("IndNome")
Messagebox("Registro no encontrado","Erro", 0)
ENDIF
DBPACK()
A funo DBPACK() remove fisicamente todos os registros com marca de excludo da tabela.
Sintaxe: __DBPACK()
Parmetros:
Nenhum
Retorno:
Nenhum
SP
95
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
USE Clientes NEW
DBGOTO(100)
DBDELETE()
DBGOTO(105)
DBDELETE()
DBGOTO(110)
DBDELETE()
// Se a excluso for confirmada:
__DBPACK()
DBRECALL()
A funo 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.
Sintaxe: DBRECALL()
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo 01:
Desfazendo a deleo do registro posicionado do alias corrente
USE Cliente
DBGOTO(100)
DBDELETE()
DELETED() // Retorna: .T.
DBRECALL()
DELETED() // Retorna: .F.
Exemplo 02:
Desfazendo as delees do alias corrente
USE Cliente
DBGOTOP()
WHILE !EOF()
DBRECALL()
DBSKIP()
ENDDO
SP
96
ADVPL
GUIA DE REFERNCIA
Escola conveniada
DBRECORDINFO()
A funo 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:
Descrio
Retorno
DBRI_DELETED
Lgico
DBRI_RECSIZE
Numrico
DBRI_UPDATED
Lgico
Parmetros:
nINFOTIPO
nREGISTRO
Retorno:
Indefinido
Exemplo:
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)
DBRECORDINFO(DBRI_UPDATED) // Retorno: .F.
DBRECORDINFO(DBRI_UPDATED,100) // Retorno: .T.
DBREINDEX()
A funo DBREINDEX() reconstri todos os ndices da rea de trabalho corrente e posiciona as
tabelas no primeiro registro lgico.
Sintaxe: DBREINDEX()
SP
97
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo:
USE Clientes NEW
DBSETINDEX("IndNome")
DBREINDEX()
DBRLOCK()
A funo 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.
Sintaxe: DBRLOCK([nREGISTRO])
Parmetros:
nREGISTRO
Retorno:
Lgico
Exemplo:
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
DBRLOCKLIST()
A funo DBRLOCKLIST() utilizada para verificar quais registros esto locados na tabela
corrente. Para tanto, retornada uma tabela unidimensional com os nmeros dos registros.
Sintaxe: DBRLOCKLIST()
SP
98
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
Nenhum
Retorno:
Array
Exemplo:
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()
A funo 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.
Sintaxe: DBRUNLOCK([nREGISTRO])
Parmetros:
nREGISTRO
Retorno:
Nenhum
Exemplo:
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
DBSETDRIVER()
A funo 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.
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
99
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: DBSETDRIVER([cNOVORDD])
Parmetros:
cNOVORDD
Retorno:
Caracter
Exemplo:
DBSETDRIVER("CTREECDX") // Retorna: DBFCDX
DBSETDRIVER() // Retorna: CTREECDX
DBSETINDEX()
A funo 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 utilizar os arquivos de extenso padro do RDD este dado deve ser
especificado.
Sintaxe: DBSETINDEX(<@cARQINDICE>)
Parmetros:
cARQINDICE
Retorno:
Nenhum
Exemplo:
USE Cliente NEW
DBSETINDEX("Ind1")
DBSETINDEX("\teste\Ind2.cdx")
DBSETNICKNAME()
SP
100
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cINDICE
cAPELIDO
Retorno:
Caracter
Exemplo:
USE Cliente NEW
DBSETNICKNAME("IndNome") // retorna: ""
DBSETNICKNAME("IndNome","NOME") // retorna: ""
DBSETNICKNAME("IndNome") // retorna: "NOME"
DBSELECTAREA()
Define a rea de trabalho especificada com sendo a rea ativa. Todas as operaes
subseqentes que fizerem referncia a uma rea de trabalho a utilizao, a menos que a rea
desejada seja informada explicitamente.
nArea
cArea
Exemplo 01:
DbselectArea(nArea)
nArea := Select(SA1) // 10 (proposto)
DbSelectArea(nArea) // De acordo com o retorno do comando Select()
ALERT(Nome do cliente: +A1_NOME) // Como o SA1 o alias selecionado, os comandos
// a partir da seleo do alias compreendem que ele
// est implcito na expresso, o que causa o mesmo
// efeito de SA1->A1_NOME
SP
101
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo 02:
DbselectArea(cArea)
DbSelectArea(SA1) // Especificao direta do alias que deseja-se selecionar
ALERT(Nome do cliente: +A1_NOME) // Como o SA1 o alias selecionado, os comandos
// a partir da seleo do alias compreendem que ele
// est implcito na expresso, o que causa o mesmo
// efeito de SA1->A1_NOME
DBSETORDER()
Define qual ndice ser utilizada pela rea de trabalho ativa, ou seja, pela rea previamente
selecionada atravs do comando DbSelectArea(). As ordens disponveis no ambiente Protheus
so aquelas definidas no SINDEX /SIX, ou as ordens disponibilizadas por meio de ndices
temporrios.
Sintaxe: DbSetOrder(nOrdem)
Parmetros
nOrdem
Nmero de referncia da ordem que deseja ser definida como ordem ativa
para a rea de trabalho.
Exemplo:
DbSelectArea(SA1)
DbSetOrder(1) // De acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA
DBORDERNICKNAME()
Define qual ndice criado pelo usurio seja utilizado. O usurio pode incluir os seus prprios
ndices e no momento da incluso deve criar o NICKNAME para o mesmo.
Sintaxe: DbOrderNickName(NickName)
Parmetros
NickName
Exemplo:
DbSelectArea(SA1)
DbOrderNickName(Tipo) // De acordo com o arquivo SIX -> A1_FILIAL+A1_TIPO
NickName: Tipo
DBSEEK() E MSSEEK()
SP
102
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cChave
lSoftSeek
lLast
Exemplo 01:
Busca exata
DbSelectArea(SA1)
DbSetOrder(1) // acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA
IF DbSeek(01 + 000001 + 02 ) // Filial: 01, Cdigo: 000001, Loja: 02
MsgInfo(Cliente localizado, Consulta por cliente)
Else
MsgAlert(Cliente no encontrado, Consulta por cliente)
Endif
Exemplo 02:
Busca aproximada
DbSelectArea(SA1)
DbSetOrder(1) // acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA
DbSeek(01 + 000001 + 02, .T. ) // Filial: 01, Cdigo: 000001, Loja: 02
// Exibe os dados do cliente localizado, o qual pode no ser o especificado na chave:
MsgInfo(Dados do cliente localizado: +CRLF +;
Filial:
+ A1_FILIAL + CRLF +;
Cdigo: + A1_COD
+ CRLF +;
Loja:
+ A1_LOJA + CRLF +;
Nome:
+ A1_NOME + CRLF, Consulta por cliente)
MsSeek(): Funo desenvolvida pela rea de Tecnologia da Microsiga, a qual possui as
mesmas funcionalidades bsicas da funo DbSeek(), com a vantagem de no necessitar
SP
103
ADVPL
GUIA DE REFERNCIA
Escola conveniada
acessar novamente a base de dados para localizar uma informao j utilizada pela thread
(conexo) ativa.
Desta forma, a thread mantm em memria os dados necessrios para reposicionar os
registros j localizados atravs do comando DbSeek (no caso o Recno()) de forma que a
aplicao pode simplesmente efetuar o posicionamento sem executar novamente a busca.
A diferena entre o DbSeek() e o MsSeek() notada em aplicaes com grande volume de
posicionamentos, como relatrios, que necessitam referenciar diversas vezes o mesmo registro
durante uma execuo.
DBSKIP()
Move o cursor do registro posicionado para o prximo (ou anterior dependendo do parmetro),
em funo da ordem ativa para a rea de trabalho.
Sintaxe: DbSkip(nRegistros)
Parmetros
Define em quantos registros o cursor ser deslocado. Padro 1
nRegistros
Exemplo 01:
Avanando registros
DbSelectArea(SA1)
DbSetOrder(2) // A1_FILIAL + A1_NOME
DbGotop() // Posiciona o cursor no incio da rea de trabalho ativa
While !EOF() // Enquanto o cursor da rea de trabalho ativa no indicar fim de arquivo
MsgInfo(Voc est no cliente: + A1_NOME)
DbSkip()
End
Exemplo 02:
Retrocedendo registros
DbSelectArea(SA1)
DbSetOrder(2) // A1_FILIAL + A1_NOME
DbGoBotton() // Posiciona o cursor no final da rea de trabalho ativa
While !BOF() // Enquanto o cursor da rea de trabalho ativa no indicar incio de arquivo
MsgInfo(Voc est no cliente: + A1_NOME)
DbSkip(-1)
End
DBSETFILTER()
Define um filtro para a rea de trabalho ativa, o qual pode ser descrito na forma de um bloco
de cdigo ou atravs de uma expresso simples.
104
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo - SP
Tel:
ADVPL
GUIA DE REFERNCIA
Escola conveniada
bCondicao
cCondicao
Exemplo 01:
Filtro com bloco de cdigo
bCondicao := {|| A1_COD >= 000001 .AND. A1_COD <= 001000}
DbSelectArea(SA1)
DbSetOrder(1)
DbSetFilter(bCondicao)
DbGoBotton()
While !EOF()
MsgInfo(Voc est no cliente:+A1_COD)
DbSkip()
End
// O ltimo cliente visualizado deve ter o cdigo menor do que 001000.
Exemplo 02:
Filtro com expresso simples
cCondicao := A1_COD >= 000001 .AND. A1_COD <= 001000
DbSelectArea(SA1)
DbSetOrder(1)
DbSetFilter(,cCondicao)
DbGoBotton()
While !EOF()
MsgInfo(Voc est no cliente:+A1_COD)
DbSkip()
End
// O ltimo cliente visualizado deve ter o cdigo menor do que 001000.
DBSTRUCT()
Retorna um array contendo a estrutura da rea de trabalho (alias) ativo. A estrutura ser um
array bidimensional conforme abaixo:
ID*
Nome campo
Tipo campo
Tamanho
Decimais
ndice do array
SP
105
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: DbStruct()
Parmetros
Nenhum
Exemplo:
cCampos :=
DbSelectArea(SA1)
aStructSA1 := DbStruct()
FOR nX := 1 to Len(aStructSA1)
cCampos += aStructSA1[nX][1] + /
NEXT nX
ALERT(cCampos)
DBUNLOCK()
A funo DBUNCLOK() retira os bloqueios dos registros e do arquivo da tabela corrente.
Sintaxe: DBUNLOCK()
Parmetros:
Nenhum
Retorno:
Nenhum
DBUNLOCKALL()
A funo DBUNLOCKALL() Retira os bloqueios de todos os registros e dos 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.
Sintaxe: DBUNLOCKALL()
Parmetros:
Nenhum
Retorno:
Nenhum
SP
106
ADVPL
GUIA DE REFERNCIA
Escola conveniada
DBUSEAREA()
Define um arquivo de base de dados como uma rea de trabalho disponvel na aplicao.
Sintaxe: DbUseArea(lNovo, cDriver, cArquivo, cAlias, lComparilhado,;
lSoLeitura)
Parmetros
cAlias
lComparilhado
lSoLeitura
lNovo
cDriver
cArquivo
Exemplo:
DbUserArea(.T., DBFCDX, \SA1010.DBF, SA1DBF, .T., .F.)
DbSelectArea(SA1DBF)
MsgInfo(A tabela SA1010.DBF possui: + STRZERO(RecCount(),6) + registros.)
DbCloseArea()
DELETED()
A funo DELETED() 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.
Sintaxe: DELETED()
Parmetros:
Nenhum
Retorno:
Nenhum
SP
107
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
USE "\DADOSADV\AA1990.DBF" SHARED NEW
DBGOTO(100)
IF DELETED()
Messagebox("O registro atual foi deletado","Erro", 0)
ENDIF
FCOUNT()
A funo FCOUNT() avalia a quantidade de campos existentes na estrutura do arquivo ativo
como rea de trabalho.
Sintaxe: FCOUNT()
Parmetros:
Nenhum
Retorno:
Numrico
Exemplo:
DbSelectArea(SA1)
nFields := FCOUNT()
IF nFields > 0
MSGINFO(A estrutura da tabela contm :+CvalToChar(nFields)+campos.)
ENDIF
FOUND()
A funo FOUND() recupera o resultado de sucesso referente a ltima operao de busca
efetuada pelo processamento corrente.
Sintaxe: FOUND()
Parmetros:
Nenhum
Retorno:
Lgico
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
108
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Pergunte(cPerg,.T.)
DbSelectArea(SA1)
DbSetOrder(1)
DbSeek(xFilial(SA1)+MVPAR01)
IF Found()
MSGINFO(Cliente encontrado)
ELSE
MSGALERT(Dados no encontrados)
ENDIF
INDEXKEY()
A funo INDEXKEY() determina a expresso da chave de um ndice especificado na rea de
trabalho corrente, e o retorna na forma de uma cadeia de caracteres, sendo normalmente
utilizada na rea de trabalho correntemente selecionada.
Sintaxe: INDEXKEY()
Parmetros:
nOrdem
Retorno:
Caracter
Exemplo:
cExpressao := SA1->(IndexKey())
INDEXORD()
A funo INDEXORD() verifica a posio do ndice corrente na lista de ndices do respectivo
alias.
Sintaxe: INDEXORD()
Parmetros:
Nenhum
Retorno:
Numrico
SP
109
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
USE Cliente NEW
SET INDEX TO Nome, End, Cep
nOrd:=INDEXORD() // Return: 1 - o primeiro ndice da lista
LUPDATE()
A funo LUPDATE() verifica qual a data da ltima modificao e fechamento da tabela
corrente, sendo que caso no exista tabela corrente retornada uma data em branco.
Sintaxe: LUPDATE()
Parmetros:
Nenhum
Retorno:
Data
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
MSAPPEND()
A funo MsAppend() adiciona registros de um arquivo para outro, respeitando a estrutura das
tabelas.
Parmetros:
cArqDest
cArqOrig
Retorno:
Lgico
SP
110
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
dbSelectArea(XXX)
MsAppend(,ARQ00001)
MSUNLOCK()
Libera o travamento (lock) do registro posicionado confirmando as atualizaes efetuadas
neste registro.
Sintaxe: MsUnLock()
Parmetros
Nenhum
Exemplo:
DbSelectArea(SA1)
DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA
DbSeek(01 + 900001 + 01) // Busca exata
IF Found() // Avalia o retorno do ltimo DbSeek realizado
RecLock(SA1,.F.)
SA1->A1_NOME := CLIENTE CURSO ADVPL BSICO
SA1->A1_NREDUZ := ADVPL BSICO
MsUnLock() // Confirma e finaliza a operao
ENDIF
ORDBAGEXT()
A funo ORDBAGEXT utilizada no gerenciamento de indices para os arquivos de dados do
sistema, permitindo avaliar qual a extenso deste ndices atualmente em uso, de acordo com a
RDD ativa.
Sintaxe: ORDBAGEXT()
Parmetros:
Nenhum
Retorno:
cBagExt
Exemplo:
cArqTRB := CriaTrab(aStruTRB,.T.)
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
111
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cOrdem
nPosicao
cArqIndice
Retorno:
Caracter
Exemplo:
USE Cliente NEW
INDEX ON Nome+Cod TO Ind1 FOR Nome+Cod > 'AZZZZZZZ'
ORDKEY('Ind1')
// Retorna: Nome+Cod
RECLOCK()
Efetua o travamento do registro posicionado na rea de trabalho ativa, permitindo a incluso
ou alterao das informaes do mesmo.
Sintaxe: RecLock(cAlias,lInclui)
Parmetros
SP
112
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cAlias
lInclui
Exemplo 01:
Incluso
DbSelectArea(SA1)
RecLock(SA1,.T.)
SA1->A1_FILIAL := xFilial(SA1) // Retorna a filial de acordo com as configuraes do ERP
SA1->A1_COD := 900001
SA1->A1_LOJA := 01
MsUnLock() // Confirma e finaliza a operao
Exemplo 02
Alterao
DbSelectArea(SA1)
DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA
DbSeek(01 + 900001 + 01) // Busca exata
IF Found() // Avalia o retorno do ltimo DbSeek realizado
RecLock(SA1,.F.)
SA1->A1_NOME := CLIENTE CURSO ADVPL BSICO
SA1->A1_NREDUZ := ADVPL BSICO
MsUnLock() // Confirma e finaliza a operao
ENDIF
RLOCK()
DBRLOCK()
UNLOCK()
DBUNLOCK()
DBUNLOCKALL()
SP
113
ADVPL
GUIA DE REFERNCIA
Escola conveniada
RECNO()
A funo RECNO() retorna o nmero do registro atualmente posiconado na rea de trabalho
ativa.
Sintaxe: RECNO()
Parmetros:
Nenhum
Retorno:
nRecno
Exemplo:
DbSelectArea(SA1)
DbGoto(100) // Posiciona no registro de recno 100.
MSGINFO(Registro posicionado:+cValToChar(RECNO()))
SELECT()
A funo SELECT() 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.
Sintaxe: SELECT([cAlias])
Parmetros:
cAlias
Retorno:
Numrico
Exemplo:
nArea := Select(SA1)
ALERT(Referncia do alias SA1: +STRZERO(nArea,3)) // 10 (proposto)
SET FILTER TO
SP
114
ADVPL
GUIA DE REFERNCIA
Escola conveniada
O comando SET FILTER TO define uma condio de filtro que ser aplicada a rea de trabalho
ativa.
Parmetros:
cCondicao
Expresso que ser avaliada pela SET FILTER, definindo os registros que
ficaro disponveis na rea de trabalho ativa.
Esta expresso obrigatoriamente deve ter um retorno lgico.
Retorno:
Nenhum
Exemplo:
USE Employee INDEX Name NEW
SET FILTER TO Age > 50
LIST LastName, FirstName, Age, Phone
SET FILTER TO
SOFTLOCK()
Permite a reserva do registro posicionado na rea de trabalho ativa de forma que outras
operaes, com exceo da atual, no possam atualizar este registro. Difere da funo
RecLock() pois no gera uma obrigao de atualizao, e pode ser sucedido por ele.
Na aplicao ERP Protheus, o SoftLock() utilizado nos browses, antes da confirmao da
operao de alterao e excluso, pois neste momento a mesma ainda no foi efetivada, mas
outras conexes no podem acessar aquele registro pois o mesmo est em manuteno, o que
implementa da integridade da informao.
Sintaxe: SoftLock(cAlias)
Parmetros
cAlias
SP
115
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
cChave := GetCliente() // Funo ilustrativa que retorna os dados de busca de um cliente
DbSelectArea(SA1)
DbSetOrder(1)
DbSeek(cChave)
IF Found()
SoftLock() // Reserva o registro localizado
lConfirma := AlteraSA1() // Funo ilustrativa que exibe os dados do registro
// posicionado e pemite a alterao dos mesmos.
IF lConfirma
RecLock(SA1,.F.)
GravaSA1() // Funo ilustrativa que altera os dados conforme a AlertaSA1()
MsUnLock() // Liberado o RecLock() e o SoftLock() do registro.
Endif
Endif
USED()
A funo USED() utilizada para determinar se h um arquivo de banco de dados em uso em
uma rea de trabalho especfica. O padro que USED() opere na rea de trabalho
correntemente selecionada.
Sintaxe: USED()
Parmetros:
Nenhum
Retorno:
Lgico
Exemplo:
USE Customer NEW
CONOUT(USED()) // Resulta: .T.
CLOSE
CONOUT (USED()) // Resulta: .F.
SP
116
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cAlias
cCampo
cAliasSXE
nOrdem
CONFIRMSXE()
Confirma o nmero alocado atravs do ltimo comando GETSXENUM().
Sintaxe: CONFIRMSXE(lVerifica)
Parmetros
lVerifica
ROLLBACKSXE()
Descarta o nmero fornecido pelo ltimo comando GETSXENUM(), retornando a numerao
disponvel para outras conexes.
Sintaxe: ROLLBACKSXE()
Parmetros
Nenhum
Validao
ALLWAYSFALSE()
A funo AllwaysFalse() foi criada com o objetivo de compatibilidade, sendo que sempre ir
retornar um valor lgico falso, facilitando a especificao desta situao nas parametrizaes
de validaes de modelos de interface pr-definidos no sistema.
Sintaxe: ALLWAYSFALSE()
Parmetros:
SP
117
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Nenhum
Retorno:
Lgico
ALLWAYSTRUE()
A funo AllwaysTrue() foi criada com o objetivo de compatibilidade, sendo que sempre ir
retornar um valor lgico verdadeiro, facilitando a especificao desta situao nas
parametrizaes de validaes de modelos de interface pr-definidos no sistema.
Sintaxe: ALLWAYSTRUE()
Parmetros:
Nenhum
Retorno:
Lgico
EXISTCHAV()
Retorna .T. ou .F. se o contedo especificado existe no alias especificado. Caso exista ser
exibido um help de sistema com um aviso informando da ocorrncia.
Funo utilizada normalmente para verificar se um determinado cdigo de cadastro j existe
na tabela na qual a informao ser inserida, como por exemplo o CNPJ no cadastro de
clientes ou fornecedores.
cAlias
cConteudo
nIndice
EXISTCPO()
Retorna .T. ou .F. se o contedo especificado no existe no alias especificado. Caso no exista
ser exibido um help de sistema com um aviso informando da ocorrncia.
Funo utilizada normalmente para verificar se a informao digitada em um campo, a qual
depende de outra tabela, realmente existe nesta outra tabela, como por exemplo o cdigo de
um cliente em um pedido de venda.
SP
118
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cAlias
cConteudo
nIndice
LETTERORNUM()
A funo LETTERORNUM() avalia se um determinado contedo composto apenas de letras e
nmeros (alfanumrico).
Sintaxe: LETTERORNUM(cString)
Parmetros:
cString
Retorno:
Lgico
NAOVAZIO()
Retorna .T. ou .F. se o contedo do campo posicionado no momento no est vazio.
Sintaxe: NaoVazio()
Parmetros
Nenhum
NEGATIVO()
Retorna .T. ou .F. se o contedo digitado para o campo negativo.
Sintaxe: Negativo()
Parmetros
Nenhum
PERTENCE()
Retorna .T. ou .F. se o contedo digitado para o campo est contido na string definida como
parmetro da funo. Normalmente utilizada em campos com a opo de combo, pois caso
contrrio seria utilizada a funo ExistCpo().
Sintaxe: Pertence(cString)
SP
119
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros
cString
POSITIVO()
Retorna .T. ou .F. se o contedo digitado para o campo positivo.
Sintaxe: Positivo()
Parmetros
Nenhum
TEXTO()
Retorna .T. ou .F. se o contedo digitado para o campo contm apenas nmeros ou
alfanumricos.
Sintaxe: Texto()
Parmetros
Nenhum
VAZIO()
Retorna .T. ou .F. se o contedo do campo posicionado no momento est vazio.
Sintaxe: Vazio()
Parmetros
Nenhum
Sintaxe: GETMV(cParametro)
Parmetros
SP
120
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cParametro
GETNEWPAR()
Retorna o contedo do parmetro especificado no arquivo SX6, considerando a filial
parametrizada na conexo. Caso o parmetro no exista ser exibido um help do sistema
informando a ocorrncia.
Difere do SuperGetMV() pois considera que o parmetro pode no existir na verso atual do
sistema, e por conseqncia no ser exibida a mensagem de help.
Sintaxe: GETNEWPAR(cParametro, cPadrao, cFilial)
Parmetros
cParametro
cPadrao
cFilial
Define para qual filial ser efetuada a consulta do parmetro. Padro filial
corrente da conexo.
PUTMV()
Atualiza o contedo do parmetro especificado no arquivo SX6, de acordo com as
parametrizaes informadas.
cParametro
cConteudo
SUPERGETMV()
Retorna o contedo do parmetro especificado no arquivo SX6, considerando a filial
parametrizada na conexo. Caso o parmetro no exista ser exibido um help do sistema
informando a ocorrncia.
Difere do GetMv() pois os parmetros consultados so adicionados em uma rea de memria,
que permite que em uma nova consulta no seja necessrio acessar e pesquisar o parmetro
na base de dados.
SP
121
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros
cParametro
lHelp
cPadrao
cFilial
Define para qual filial ser efetuada a consulta do parmetro. Padro filial
corrente da conexo.
Controle de impresso
AVALIMP()
A funo AVALIMP() utilzada em relatrios especficos em substituio da funo CABEC(),
configurando a impressora de acordo com o driver escolhido e os parmetros de impresso
disponveis no array aReturn, respeitando o formato utilizado pela funo SETPRINT().
Sintaxe: AVALIMP(nLimite)
Parmetros:
nLimite
Retorno:
Caracter
Exemplo:
/*/
+----------------------------------------------------------------------------| Funo
| XAVALIMP
| Autor |
| Data | 01.01.2007 |
+----------------------------------------------------------------------------| Descrio | Exemplo de utilizao da funo AXCADASTRO()
|
|+---------------------------------------------------------------------------| Uso
| Curso ADVPL
|
|+---------------------------------------------------------------------------/*/
USER FUNCTION XAVALIMP()
LOCAL cTitulo
:= PADC(AVALIMP,74)
SP
122
ADVPL
GUIA DE REFERNCIA
Escola conveniada
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
cDesc1
cDesc2
cDesc3
cTamanho
cLimite
cNatureza
aReturn
cNomeProg
cPerg
nLastKey
cString
SP
123
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cTitulo
Ttulo do relatrio
cCabec1
cCabec2
cNomeProg
nTamanho
nCompress
aCustomText
lPerg
Parmetros (continuao):
Redefine o bitmap que ser impresso no relatrio, no necessitando que
ele esteja no formato padro da Microsiga:
"LGRL"+SM0->M0_CODIGO+SM0->M0_CODFIL+".BMP"
cLogo
Retorno:
Nenhum
Exemplo:
#INCLUDE "protheus.ch"
/*/
+----------------------------------------------------------------------------| Funo
| MPTR001
| Autor |
| Data | 01.01.2007 |
+----------------------------------------------------------------------------| Descrio | Exemplo de utilizao das funes de impresso CABEC()
|
|+---------------------------------------------------------------------------| Uso
| Curso ADVPL
|
|+---------------------------------------------------------------------------/*/
User Function MPTR001()
Local
Local
Local
Local
Local
cDesc1
cDesc2
cDesc3
cTitulo
lImprime
:=
:=
:=
:=
:=
// Parametros da SetPrint()
Local cString
:= "SA1"
Local cPerg
:= ""
Local lDic
:= .T. // Habilita a visalizacao do dicionario
Local aOrd
:= RetSixOrd(cString)
Local lCompres
:= .T. // .F. - Normal / .T. - Comprimido
Local lFilter
:= .T. // Habilita o filtro para o usuario
Local cNomeProg
:= "MPTR002"
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
124
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Local cTamanho
Local nTipo
Local nLimite
:= "M"
:= 18
:= 132
:= 0
:= 01
:= "MPTR002"
dbSelectArea("SA1")
dbSetOrder(1)
Exemplo (continuao):
//
// Monta a interface padrao com o usuario...
//
wnrel :=
SetPrint(cString,cNomeProg,cPerg,@cTitulo,cDesc1,cDesc2,cDesc3,lDic,aOrd,lCompre
s,cTamanho,,lFilter)
If nLastKey == 27
Return
Endif
SetDefault(aReturn,cString,,,cTamanho,aReturn[4]) // nFormato: 1- Retrato, 2Paisagem
If nLastKey == 27
Return
Endif
nTipo := IIF(aReturn[4]==1,15,18)
//
// Processamento. RPTSTATUS monta janela com a regua de processamento.
//
RptStatus({||
RunReport(cTitulo,cString,cNomeProg,cTamanho,nTipo,nLimite)},cTitulo)
Return
/*/
+----------------------------------------------------------------------------| Funo
| RUNREPORT
| Autor | -------------------- | Data | 01.01.2007 |
+----------------------------------------------------------------------------| Descrio | Funo interna de processamento utilizada pela MPTR001()
|
|+---------------------------------------------------------------------------| Uso
| Curso ADVPL
|
|+---------------------------------------------------------------------------/*/
SP
125
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nLin
cCabec1
cCabec2
cArqInd
cCabec1
cCabec1
cCabec1
cCabec2
:=
+=
+=
:=
:= 80
:= ""
:= ""
"CODIGO"+Space(2)+"LOJA"+Space(2)+"NOME REDUZIDO"+Space(9)
"RAZAO SOCIAL"+Space(30)+"CNPJ"+Space(18)+"INSCR.ESTADUAL"+Space(8)
"CEP"
"ESTADO"+Space(2)+"MUNICIPIO"+Space(8)+"ENDERECO"
dbSelectArea("TRBSA1")
dbGoTop()
SetRegua(RecCount())
Exemplo (continuao):
While !EOF()
If lAbortPrint .OR. nLastKey == 27
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Exit
Endif
If nLin > 55 // Salto de Pgina. Neste caso o formulario tem 55 linhas...
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
...
IMPCADAST()
A funo IMPCADAST() cria uma interface simples que permite a impresso dos cadastros do
sistema com parametrizao DE/ATE.
Parmetros:
cCab1
cCab2
cCab3
cNomeProg
Nome do programa
cTam
nLimite
cAlias
SP
126
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Nenhum
MS_FLUSH()
A funo MS_FLUSH() envia o spool de impresso para o dispositivo previamente especificado
com a utilizao das funes AVALIMP() ou SETPRINT().
Sintaxe: MS_FLUSH()
Parmetros:
Nenhum
Retorno:
Nenhum
Exemplo:
/*/
+----------------------------------------------------------------------------| Funo
| RUNREPORT
| Autor |
| Data | 01.01.2007 |
+----------------------------------------------------------------------------| Descrio | Funo interna de processamento utilizada pela MPTR001()
|
|+---------------------------------------------------------------------------| Uso
| Curso ADVPL
|
|+---------------------------------------------------------------------------| Observao| Continuao do exemplo da funo CABEC()
|
|+---------------------------------------------------------------------------/*/
Static Function RunReport(cTitulo,cString,cNomeProg,cTamanho,nTipo,nLimite)
Local
Local
Local
Local
nLin
cCabec1
cCabec2
cArqInd
cCabec1
cCabec1
cCabec1
cCabec2
:=
+=
+=
:=
:= 80
:= ""
:= ""
"CODIGO"+Space(2)+"LOJA"+Space(2)+"NOME REDUZIDO"+Space(9)
"RAZAO SOCIAL"+Space(30)+"CNPJ"+Space(18)+"INSCR.ESTADUAL"+Space(8)
"CEP"
"ESTADO"+Space(2)+"MUNICIPIO"+Space(8)+"ENDERECO"
dbSelectArea("TRBSA1")
dbGoTop()
SetRegua(RecCount())
While !EOF()
If lAbortPrint .OR. nLastKey == 27
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
127
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exit
Endif
If nLin > 55 // Salto de Pgina. Neste caso o formulario tem 55 linhas...
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
// Primeira linha de detalhe:
@nLin,000 PSAY TRBSA1->A1_COD
@nLin,008 PSAY TRBSA1->A1_LOJA
@nLin,014 PSAY TRBSA1->A1_NREDUZ
@nLin,036 PSAY TRBSA1->A1_NOME
@nLin,078 PSAY TRBSA1->A1_CGC
@nLin,100 PSAY TRBSA1->A1_INSCR
@nLin,122 PSAY TRBSA1->A1_CEP
nLin++
Exemplo (continuao):
// Segunda linha de detalhe
@nLin,000 PSAY TRBSA1->A1_EST
@nLin,008 PSAY TRBSA1->A1_MUN
@nLin,025 PSAY TRBSA1->A1_END
nLin++
//Linha separadora de detalhes
@nLin,000 PSAY Replicate("-",nLimite)
nLin++
dbSkip() // Avanca o ponteiro do registro no arquivo
EndDo
SET DEVICE TO SCREEN
If aReturn[5]==1
dbCommitAll()
SET PRINTER TO
OurSpool(wnrel)
Endif
MS_FLUSH()
RETURN
OURSPOOL()
A funo OURSPOOL() executa o gerenciador de impresso da aplicao Protheus, permitindo
a visualizao do arquivo de impresso gerado pelo relatrio no formato PostScrip com
extenso ##R.
Sintaxe: OURSPOOL(cArquivo)
Parmetros:
cArquivo
SP
128
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Exemplo:
If aReturn[5]==1 // Indica impresso em disco.
dbCommitAll()
SET PRINTER TO
OurSpool(wnrel)
Endif
RODA()
A funo RODA() imprime o rodap da pgina do relatrio, o que pode ser feito a cada pgina,
ou somente ao final da impresso.
Pode ser utilizado o ponto de entrada "RodaEsp" para tratamento de
uma impresso especfica.
Parmetros:
uPar01
No mais utilizado
uPar02
No mais utilizado
cSize
Retorno:
Nenhum
Exemplo:
/*/
+----------------------------------------------------------------------------| Funo
| TESTIMPR
| Autor |
| Data | 01.01.2007 |
+----------------------------------------------------------------------------| Descrio | Exemplo de utilizao da funo RODA() em conjunto com a CABEC.|
|+---------------------------------------------------------------------------| Uso
| Curso ADVPL
|
|+---------------------------------------------------------------------------/*/
#include "protheus.ch"
User Function TestImpr()
Local wnrel
Local cString := "SA1"
Local titulo
:= "Teste Impresso de Relatorios"
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
129
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cabec1,cabec2
cRodaTxt := oemtoansi("Rodap")
nCntImpr
nTipo
nCntImpr := 0
li := 80
m_pag := 1
nTipo := 15
titulo:= oemtoansi("Lista de Clientes")
cabec1:= oemtoansi("COD LOJA NOME"+Space(27)+ "NOME FANTASIA")
cabec2:=""
dbSelectArea("SA1")
dbGoTop()
SetRegua(LastRec())
While !Eof()
IncRegua()
If Li > 60
cabec(titulo,cabec1,cabec2,nomeprog,tamanho,15)
@ Li,0 PSAY __PrtThinLine()
Endif
nCntImpr++
Li++
@ Li,01 PSAY A1_COD
@ Li,05 PSAY A1_LOJA
@ Li,10 PSAY A1_NOME
@ Li,51 PSAY A1_NREDUZ
If Li > 60
Li:=66
Endif
dbSkip()
EndDO
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
130
ADVPL
GUIA DE REFERNCIA
Escola conveniada
If li != 80
Roda(nCntImpr,cRodaTxt,Tamanho)
EndIf
Set Device to Screen
If aReturn[5] = 1
Set Printer To
dbCommitAll()
OurSpool(wnrel)
Endif
MS_FLUSH()
Return
SETDEFAULT()
A funo SetDefault() prepara o ambiente de impresso de acordo com as informaes
configuradas no array aReturn, obtidas atravs da funo SetPrint().
Sintaxe: SetDefault ( < aReturn > , < cAlias > , [ uParm3 ] , [ uParm4 ] , [cSize] ,
[ nFormat ] )
Parmetros:
aReturn
Configuraes de impresso.
cAlias
uParm3
Parmetro reservado.
uParm4
Parmetro reservado.
cSize
nFormat
Retorno:
Nenhum
Estrutura aReturn:
aReturn[1]
aReturn[2]
aReturn[3]
Caracter, destinatrio
aReturn[4]
aReturn[5]
aReturn[6]
aReturn[7]
aReturn[8]
Numrico, ordem
aReturn[x]
A partir a posio [9] devem ser informados os nomes dos campos que
devem ser considerados no processamento, definidos pelo uso da opo
Dicionrio da SetPrint().
SP
131
ADVPL
GUIA DE REFERNCIA
Escola conveniada
SP
132
ADVPL
GUIA DE REFERNCIA
Escola conveniada
SETPRC()
A funo SETPRC() utilizada para posicionar o dispositivo de impresso ativo, previamente
definido pelo uso das funes AVALIMP() ou SETPRINT() , em uma linha/coluna especificada.
Parmetros:
nLinha
nColuna
Retorno:
Nenhum
Exemplo:
aReturn := { "", 1, "" , 2, 3, cPorta , "",IndexOrd() }
SetPrint(Alias(),"","","",,,,.F.,,,,,,,'EPSON.DRV',.T.,,cPorta)
if nLastKey == 27
Return (.F.)
Endif
SetDefault(aReturn,Alias())
SetPrc(0,0)
SETPRINT()
A funo SetPrint() cria uma interface padro onde as opes de impresso de um relatrio
podem ser configuradas. Basicamente duas variveis m_pag e aReturn precisam ser
declaradas como privadas (private) antes de executar a SetPrint(), sendo que:
Aps confirmada, os dados so armazenados no vetor aReturn que ser passado como
parmetro para funo SetDefault().
Sintaxe: SetPrint ( < cAlias > , < cProgram > , [ cPergunte ] , [ cTitle ] ,
[ cDesc1 ] , [ cDesc2 ] , [ cDesc3 ] , [ lDic ] , [ aOrd ] , [ lCompres ] , [ cSize ] ,
[ uParm12 ] , [ lFilter ] , [ lCrystal ] , [ cNameDrv ] , [ uParm16 ] , [ lServer ] ,
[ cPortPrint ] ) --> cReturn
Parmetros:
cAlias
cProgram
cPergunte
SP
133
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cTitle
Ttulo do relatrio.
Parmetros (continuao):
cDesc1
Descrio do relatrio.
cDesc2
cDesc3
lDic
aOrd
lCompres
cSize
uParm12
cNameDrv
Parmetro reservado
Se verdadeiro (.T.) permite a utilizao do assistente de filtro, o valor padro
assumido ser .T.
Se verdadeiro (.T.) permite integrao com Crystal Report, o valor padro
assumido ser .F.
Nome de um driver de impresso.
uParm16
Parmetro reservado.
lServer
cPortPrint
lFilter
lCrystal
Retorno:
Caracter
Nome do Relatrio
Estrutura aReturn:
aReturn[1]
aReturn[2]
aReturn[3]
Caracter, destinatrio
aReturn[4]
aReturn[5]
aReturn[6]
aReturn[7]
aReturn[8]
Numrico, ordem
aReturn[x]
A partir a posio [9] devem ser informados os nomes dos campos que
devem ser considerados no processamento, definidos pelo uso da opo
Dicionrio da SetPrint().
SP
134
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Controle de processamentos
ABREEXCL()
A funo ABREEXCL() fecha o arquivo cujo alias est expresso em <cAlias> e o reabre em
modo exclusivo para proceder operaes em que isto necessrio, como por exemplo, PACK.
Se outra estao estiver usando o arquivo, o retorno ser .F..
Sintaxe: ABREEXCL(cAlias)
Parmetros:
cAlias
Retorno:
Lgico
CLOSEOPEN()
A funo CLOSEOPEN() utilizada para fechar e re-abrir uma lista de arquivos especificada.
Parmetros:
aClose
aOpen
Retorno:
Lgico
CLOSESFILE()
A funo CLOSESFILE() fecha todos os arquivos em uso pela conexo, com exceo dos SXs
(inclusive SIX), SM2 e SM4.
Sintaxe: CLOSESFILE(cAlias)
Parmetros:
cAlias
String contendo os nomes dos demais Aliases que no devero ser fechados,
separando os itens com /.
Retorno:
SP
135
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Lgico
CHKFILE()
A funo CHKFILE() retorna verdadeiro (.T.) se o arquivo j estiver aberto ou se o Alias no for
informado. Sempre que desejar mudar o modo de acesso do arquivo (de compartilhado para
exclusivo ou vice-versa), feche-o antes de cham-la.
Sintaxe: ChkFile(cAlias,lExcl,cNewAlias)
Parmetros:
cAlias
lExcl
cNewAlias
Retorno:
Lgico
Exemplo:
dbSelectArea(SA1)
dbCloseArea()
lOk := .T.
While .T.
IF !ChkFile(SA1,.T.)
nResp := Alert(Outro usurio usando! Tenta de novo?,{Sim,Nao})
If nResp == 2
lOk := .F.
Exit
Endif
Endif
EndDo
If lOk
// Faz o processamento com o arquivo...
Endif
// Finaliza
If Select(SA1)
dbCloseArea()
Endif
ChkFile(SA1,.F.)
Return
CONOUT()
SP
136
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: CONOUT(cMensagem)
Parmetros:
cMensagem
Retorno:
Nenhum
CRIAVAR()
A funo CRIAVAR() cria uma varivel, retornando o valor do campo, de acordo com o
dicionrio de dados, inclusive avaliando o inicializador padro, permitindo um retorno de
acordo com o tipo de dado definido no dicionrio.
Sintaxe: CriaVar(cCampo,lIniPad,cLado)
Parmetros:
cCampo
Nome do campo
lIniPad
cLado
Retorno:
Indefinido
Exemplo:
// Exemplo do uso da funo CriaVar:
cNumNota := CriaVar(F2_DOC) // Retorna o contedo do
// inicializador padro,
// se existir, ou espaos em branco
Alert(cNumNota)
Return
DISARMTRANSACTION()
A funo DISARMTRANSATCION() utilizada para realizar um RollBack de uma transao
aberta com o comando BEGIN TRANSACTION e delimitada com o comando END
TRANSACTION.
SP
137
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Ao utilizar esta funo, todas as alteraes realizadas no intervalo delimitado pela transao
so desfeitas, restaurando a situao da base de dados ao ponto imediatamente anterior ao
incio do processamento.
O uso da funo DISARMTRANSACTION() no finaliza a conexo ou o
processamento corrente.
Caso seja necessrio alm de desfazer as alteraes,
processamento, dever ser utilizada a funo USEREXCEPTION().
Sintaxe: DISARMTRANSACTION()
Parmetros:
Nenhum
finalizar
Retorno:
Nenhum
Exemplo:
lMsErroAuto := .F.
MSExecAuto({|x,y| MATA240(x,y)}, aCampos, 3)
If lMsErroAuto
aAutoErro := GETAUTOGRLOG()
DisarmTransaction()
MostraErro()
EndIf
EXECBLOCK()
A funo EXECBLOCK() executa uma funo de usurio que esteja compilada no repositrio.
Esta funo normalmente utilizada pelas rotinas padres da aplicao Protheus para executar
pontos de entrada durante seu processamento.
A funo de usurio executada atravs da EXECBLOCK() no recebe
parmetros diretamente, sendo que estes estaro disponveis em uma varivel
private denominada PARAMIXB.
SP
138
ADVPL
GUIA DE REFERNCIA
Escola conveniada
EXISTBLOCK()
A funo EXISTBLOCK() verifica a existncia de uma funo de usurio compilada no
repositrio de objetos da aplicao Protheus. Esta funo normalmente utilizada nas rotinas
padres da apliao Protheus para determinar a existncia de um ponto de entrada e permitir
sua posterior execuo.
Sintaxe: EXISTBLOCK(cFuno)
Parmetros:
cFuno
Retorno:
Lgico
Exemplo:
IF EXISTBLOCK(MT100GRV)
EXECBLOCK(MT100GRV,.F.,.F.,aParam)
ENDIF
Parmetros:
cFuno
lReserv1
lReserv2
xParam
Retorno:
Indefinido
Exemplo:
aParam := {cNota, cSerie, cFornece, cLoja)
IF EXISTBLOCK(MT100GRV)
lGravou := EXECBLOCK(MT100GRV,.F.,.F.,aParam)
ENDIF
USER FUNCTION MT100GRV()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
139
ADVPL
GUIA DE REFERNCIA
Escola conveniada
LOCAL
LOCAL
LOCAL
LOCAL
cNota := PARAMIXB[1]
cSerie:= PARAMIXB[1]
cFornece:= PARAMIXB[1]
cLoja:= PARAMIXB[1]
RETURN .T.
ERRORBLOCK()
A funo ERRORBLOCK() efetua o tratamento de erros e define a atuao de um handler de
erros sempre que ocorrer um erro em tempo de execuao. O manipulador de erros
especificado como um bloco de cdigo da seguinte forma:
<objError> um error object que contm informaoes sobre o erro.Dentro do bloco de cdigo,
podem ser enviadas mensagens ao error object para obter informaoes sobre o erro. Se o
bloco de tratamento de erros retornar verdadeiro (.T.), a operaao que falhou repetida, e se
retornar falso (.F.), o processamento recomea.
Se nao foi especificado nenhum <bErrorHandler> utilizando ERRORBLOCK() e ocorrer um erro
em tempo de execuao, o bloco de tratamento ao de erros padrao avaliado. Este
manipulador de erros exibe uma mensagem descritiva na tela, ajusta a funao ERRORLEVEL()
para 1, e depois sai do programa (QUIT).
Como ERRORBLOCK() retorna o bloco de tratamento ao de erros corrente, possvel
especificar um bloco de tratamento de erros para uma operaao gravando-se o bloco de
manipulaao de erros corrente e depois recuperando-o aps o final da operaao. Alm disso,
uma importante consequncia do fato de os blocos de tratamento de erros serem especificados
como blocos de cdigo, que eles podem ser passados pararotinas e funoes definidas por
usurio e depois retornadas como valores.
bErrorHandler
Retorno:
Code-block
Retorna o bloco de cdigo corrente que tratar o erro. Caso nao tenha sido
enviado nenhum bloco de tratamento de erro desde que o programa foi
invocado, ERRORBLOCK() retorna o bloco de tratamento de erro padrao.
Exemplo:
Function CA010Form()
LOCAL xResult
LOCAL cForm:= Upper(&(ReadVar()))
LOCAL bBlock:= ErrorBlock( { |e| ChecErro(e) } )
LOCAL cOutMod
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
140
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cMensagem1
Primeira mensagem
cMensagem2
Segunda mensagem
Retorno:
Nenhum
Exemplo:
User Function ValidUser( cUsuario, cSenha )
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
141
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: FINDFUNCTION(cFuno)
Parmetros:
cFuno
Retorno:
Lgico
FUNDESC()
A funo FunDesc() retornar a descrio de uma opo selecionada no menu da aplicao.
Sintaxe: FUNDESC()
Parmetros:
Nenhum
Retorno:
Caracter
FUNNAME()
A funo FunName() retornar o nome de uma funo executada a partir de um menu da
aplicao.
Sintaxe: FUNNAME()
Parmetros:
Nenhum
SP
142
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Caracter
GETAREA()
Funo utilizada para proteger o ambiente ativo no momento de algum processamento
especfico. Para salvar uma outra rea de trabalho (alias) que no o ativo, a funo GetArea()
deve ser executada dentro do alias: ALIAS->(GetArea()).
Sintaxe: GETAREA()
Retorno: Array contendo {Alias(),IndexOrd(),Recno()}
Parmetros
Nenhum
GETCOUNTRYLIST()
A funo GETCOUNTRYLIST() retorna um array de duas dimenses contendo informaes dos
pases localizados.
Sintaxe: GetCountryList()
Parmetros:
Nenhum
Retorno:
Array
Array de duas dimenses, sendo uma linha para cada pas localizado,
contendo em cada posio a sigla dos pases, o nome do pas e a
identificao do pas com dois dgitos.
Exemplo:
Local aArray := GetCountryList()
Local cSigla := GetMv( MV_PAISLOC )
Local nPos
nPos := Ascan( aArray, {|d| d[1] == Upper(cSigla) } )
If nPos > 0
APMsgInfo( Pas de localizao + aArray[nPos,2] )
EndIf
ISINCALLSTACK()
SP
143
ADVPL
GUIA DE REFERNCIA
Escola conveniada
A funo ISINCALLSTACK() verifica se uma determinada funo est existe dentro da pilha de
chamadas do processamento corrente.
Parmetros:
cIsInCallStack
cStackExit
Retorno:
Lgico
REGTOMEMORY()
Inicializa as variveis de memria identificadas pelo uso do alias M-> de acordo com a
estrutura e/ou informaes contidas no arquivo definido como referncia.
Parmetros:
cAlias
lInclui
Alias do arquivo que ser utilizado como referncia para inicializao das
variveis de memria.
Identifica se as variveis devero ser inicializadas com contedos padres,
ou contendo as informaes do registro posicionado do alias especificado.
Retorno:
Nenhum
RESTAREA()
Funo utilizada para devolver a situao do ambiente salva atravs do comando GETAREA().
Deve-se observar que a ltima rea restaurada a rea que ficar ativa para a aplicao.
Sintaxe: RESTAREA(aArea)
Parmetros
aArea
Exemplo:
// ALIAS ATIVO ANTES DA EXECUO DA ROTINA SN3
User Function XATF001()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
144
ADVPL
GUIA DE REFERNCIA
Escola conveniada
LOCAL cVar
LOCAL aArea := GetArea()
LOCAL lRet := .T.
cVar := &(ReadVar())
dbSelectArea("SX5")
IF !dbSeek(xFilial()+"Z1"+cVar)
cSTR0001 := "REAV - Tipo de Reavaliacao"
cSTR0002 := "Informe um tipo de reavalicao valido"
cSTR0003 := "Continuar"
Aviso(cSTR0001,cSTR0002,{cSTR0003},2)
lRet := .F.
ENDIF
RestArea(aArea)
Return( lRet )
USEREXCEPTION()
A funo USEREXCEPTION() tem o objetivo de forar um erro em ADVPL de forma que
possamos tratar de alguma forma. USEREXCEPTION() recebe uma string contendo uma
descrio do erro, essa descrio ser exibida de acordo com o ambiente que se est
executando, caso um ambiente ERP, ser exibida uma tela de erro.
Sintaxe: USEREXCEPTION(cMensagem)
Parmetros:
cMensagem
Retorno:
Nenhum
Parmetros:
SP
145
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cPerg
aPergs
Retorno:
Nenhum
Campo
X1_PERGUNT
X1_PERSPA
X1_PERENG
X1_VARIAVL
Tipo
Caractere
Caractere
Caractere
Caractere
05
06
07
X1_TIPO
X1_TAMANHO
X1_DECIMAL
Caractere
Numrico
Numrico
08
X1_PRESEL
Numrico
09
X1_GSC
Caractere
10
11
X1_VALID
X1_VAR01
Caractere
Caractere
12
X1_DEF01
Caractere
13
14
15
X1_DEFSPA1
X1_DEFENG1
X1_CNT01
Caractere
Caractere
Caractere
16
17
X1_VAR02
X1_DEF02
Caractere
Caractere
18
19
20
21
22
X1_DEFSPA2
X1_DEFENG2
X1_CNT02
X1_VAR03
X1_DEF03
Caractere
Caractere
Caractere
Caractere
Caractere
Descrio
Descrio da pergunta em portugus
Descrio da pergunta em espanhol
Descrio da pergunta em ingls
Nome da varivel de controle auxiliar
(mv_ch)
Tipo do parmetro
Tamanho do contedo do parmetro
Nmero de decimais para contedos
numricos
Define qual opo do combo a padro para
o parmetro.
Define se a pergunta ser do tipo G Get ou
C Choice (combo)
Expresso de validao do parmetro
Nome da varivel MV_PAR+Ordem do
parmetro
Descrio da opo 1 do combo em
portugus
Descrio da opo 1 do combo em espanhol
Descrio da opo 1 do combo em ingls
Contedo padro ou ultimo contedo
definido como respostas para a pergunta.
No informado
Descrio da opo X do combo em
portugus
Descrio da opo X do combo em espanhol
Descrio da opo X do combo em ingls
No informado
No informado
Descrio da opo X do combo em
portugus
X1_DEFSPA3
X1_DEFENG3
X1_CNT03
X1_VAR04
X1_DEF04
Caractere
Caractere
Caractere
Caractere
Caractere
28
29
30
X1_DEFSPA4
X1_DEFENG4
X1_CNT04
Caractere
Caractere
Caractere
Descrio da opo
Descrio da opo
No informado
No informado
Descrio da opo
portugus
Descrio da opo
Descrio da opo
No informado
X do combo em espanhol
X do combo em ingls
X do combo em
X do combo em espanhol
X do combo em ingls
SP
146
ADVPL
GUIA DE REFERNCIA
Escola conveniada
31
32
X1_VAR05
X1_DEF05
Caractere
Caractere
33
34
35
36
X1_DEFSPA5
X1_DEFENG5
X1_CNT05
X1_F3
Caractere
Caractere
Caractere
Caractere
37
X1_GRPSXG
Caractere
38
X1_PYME
Caractere
39
40
X1_HELP
X1_PICTURE
Caractere
Caractere
41
aHelpPor
Array
42
aHelpEng
Array
43
aHelpSpa
Array
No informado
Descrio da opo X do combo em
portugus
Descrio da opo X do combo em espanhol
Descrio da opo X do combo em ingls
No informado
Cdigo da consulta F3 vinculada ao
parmetro
Cdigo do grupo de campos SXG para
atualizao automtica, quando o grupo for
alterado.
Se a pergunta estar disponvel no ambiente
Pyme
Contedo do campo X1_HELP
Picture de formatao do contedo do
campo.
Vetor simples contendo as linhas de help em
portugus para o parmetro. Trabalhar com
linhas de at 40 caracteres.
Vetor simples contendo as linhas de help em
ingls para o parmetro. Trabalhar com
linhas de at 40 caracteres.
Vetor simples contendo as linhas de help em
espanhol para o parmetro. Trabalhar com
linhas de at 40 caracteres.
ALLUSERS()
A funo ALLUSERS() retorna um array multidimensional contendo as informaes dos
usurios do sistema.
Sintaxe: ALLUSERS()
Parmetros:
Nenhum
Retorno:
Array
Descrio
Tipo
ID
Qtd.
6
SP
147
ADVPL
GUIA DE REFERNCIA
Escola conveniada
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
C
C
C
A
D
N
L
L
A
C
C
C
C
N
D
L
N
L
C
15
6
30
-8
4
1
1
-6
30
30
130
4
8
1
1
1
4
Nome
Senha
Nome Completo
Vetor com n ltimas senhas
Data de validade
Quantas vezes para expirar
Autorizado a alterar a senha
Alterar a senha no prximo logon
Vetor com os grupos
ID do superior
Departamento
Cargo
E-Mail
Nmero de acessos simultneos
Data da ltima alterao
Usurio bloqueado
Nmero de dgitos para o ano
Listner de ligaes
Ramal
Descrio
Tipo
Qtd.
A
N
C
C
C
A
C
N
N
N
L
C
L
-1
100
-512
-10
1
1
1
1
50
1
Descrio
Tipo
Mdulo+nvel+menu
Qtd.
SP
148
ADVPL
GUIA DE REFERNCIA
Escola conveniada
ALLGROUPS()
A funo ALLGROUPS() retorna um array multidimensional contendo as informaes dos
grupos de usurios do sistema.
Sintaxe: ALLGROUPS()
Parmetros:
Nenhum
Retorno:
Array
Descrio
Tipo
Qtd.
ID
Nome
Vetor com horrios de acesso
Data de validade
Quantas vezes para expirar
Autorizado a alterar a senha
Idioma
Diretrio
Impressora
Acessos
Vetor com empresas
Data da ltima alterao
Tipo de impresso
Formato
Ambiente
Opo de impresso
Acesso a outros Dir de impresso
C
C
A
D
N
L
N
C
C
C
A
D
N
N
N
L
L
6
20
8
4
1
1
100
512
8
1
1
1
1
1
Descrio
Tipo
Modulo+nvel+menu
Qtd.
SP
149
ADVPL
GUIA DE REFERNCIA
Escola conveniada
CGC()
A funo CGC() valida o CGC digitado, utilizando o algoritmo nacional para verificao do dgito
de controle.
Sintaxe: CGC(cCGC)
Parmetros:
cCGC
Retorno:
Lgico
CONPAD1()
A funo CONPAD1() exibe uma tela de consulta padro baseada no Dicionrio de Dados
(SXB).
Parmetros:
uPar
Parmetro reservado.
uPar2
Parmetro reservado.
uPar3
Parmetro reservado.
cAlias
cCampoRet
uPar4
lOnlyView
Retorno:
Nenhum
DATAVALIDA()
A funo DATAVALIDA() retorna a primeira data vlida a partir de uma data especificada como
referncia, considerando inclusive a data informada para anlise.
Sintaxe: DATAVALIDA(dData)
Parmetros:
dData
SP
150
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
Data
EXISTINI()
A funo EXISTINI() verifica se o campo possui inicializador padro.
Sintaxe: EXISTINI(cCampo)
Parmetros:
cCampo
Retorno:
Lgico
Exemplo:
// Exemplo de uso da funcao ExistIni:
// Se existir inicializador no campo B1_COD:
If ExistIni(B1_COD)
// Executa o inicializador:
cCod := CriaVar(B1_COD)
Endif
Return
EXTENSO()
A funo EXTENSO() retorna uma string referente a descrio por extenso de um valor
numrico, sendo comumente utilizada para impresso de cheques, valor de duplicatas, etc.
Parmetros:
nValor
lQtd
nMoeda
Retorno:
String
FORMULA()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
151
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Interpreta uma frmula cadastrada. Esta funo interpreta uma frmula, previa-mente
cadastrada no Arquivo SM4 atravs do Mdulo Configurador, e retorna o resultado com tipo de
dado de acordo com a prpria frmula.
Sintaxe: Formula(cFormula)
Parmetros:
cFormula
Retorno:
Indefinido
GETADVFVAL()
A funo GETADVFVAL() executa uma pesquisa em um arquivo pela chave de busca e na
ordem especificadas, possibilitando o retorno de um ou mais campos.
Sintaxe: GetAdvFVal(cAlias,uCpo,uChave,nOrder,uDef)
Parmetros:
cAlias
Alias do arquivo
uCpo
uChave
nOrder
uDef
Valor ou array default para ser retornado caso a chave no seja encontrada
Retorno:
Indefinido
HELP()
Esta funo exibe a ajuda especificada para o campo e permite sua edio. Se for
um help novo, escreve-se o texto em tempo de execuo.
SP
152
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
cHelp
nLinha
cTitulo
Ttulo do help
uPar4
Sempre NIL
cMensagem
nLinMen
nColMen
Retorno:
Nenhum
Exemplo:
IF lAuto // Se for rotina automtica
Help("ESPECIFICO",1,"HELP","PROCESSAMENTO","Parmetros do JOB Invlidos",1,0)
ELSE
MsgAlert(Parmetros do JOB Invlidos, PROCESSAMENTO)
ENDIF
MESEXTENSO()
A funo MESEXTENSO() retorna o nome de um ms por extenso.
Sintaxe: MESEXTENSO(nMes)
Parmetros:
nMes
Este parmetro pode ser definido tambm como caracter ou como data.
SP
153
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Retorno:
String
OBRIGATORIO()
A funo OBRIGATORIO() avalia se todos os campos obrigatrios de uma Enchoice() foram
digitados.
Parmetros:
aGets
aTela
aTitulos
Retorno:
Lgico
Exemplo:
#INCLUDE "protheus.ch"
/*/
+----------------------------------------------------------------------------| Programa | ATFA010A | Autor |
| Data |
|
+----------------------------------------------------------------------------| Desc.
| Cadastro de dados complementares do bem Ativo Fixo
|
+---------------------------------------------------------------------------| Uso
| Curso de ADVPL
|
+----------------------------------------------------------------------------/*/
User Function ATFA010A()
Private cCadastro := "Atualizacao de dados do bem"
Private aRotina := { {"Pesquisar" ,"AxPesqui"
{"Visualizar"
,"AxVisual"
{"Atualizar"
,"U_A010AATU"
,0,1} ,;
,0,2} ,;
,0,4}}
SP
154
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Return
/*/
+----------------------------------------------------------------------------| Programa | A010AATU | Autor |
| Data |
|
+----------------------------------------------------------------------------| Desc.
| Atualizao de dados do bem Ativo Fixo
|
+----------------------------------------------------------------------------| Uso
| Curso de ADVPL
|
+----------------------------------------------------------------------------/*/
User Function A010AATU(cAlias,nReg,nOpc)
Local aCpoEnch
Local aAlter
:= {}
:= {}
Local
Local
Local
Local
Local
Local
Local
Local
Local
Local
Local
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
aButtons
cAliasE
aAlterEnch
aPos
nModelo
lF3
lMemoria
lColumn
caTela
lNoFolder
lProperty
{}
cAlias
{}
{015,000,400,600
.F.
.T.
.F.
""
.F.
.F.
Exemplo (continuao):
Private
Private
Private
Private
Private
oDlg
oGetD
oEnch
aTELA[0][0]
aGETS[0]
DbSelectArea("SX3")
DbSetOrder(1)
DbSeek(cAliasE)
//+--------------------------------------------------------------------------+
//|Campos da enchoice
|
//+--------------------------------------------------------------------------+
While !Eof() .And. SX3->X3_ARQUIVO == cAliasE
If !(SX3->X3_CAMPO $ "A1_FILIAL") .And. cNivel >= SX3->X3_NIVEL .And.
X3Uso(SX3->X3_USADO)
AAdd(aCpoEnch,SX3->X3_CAMPO)
EndIf
DbSkip()
End
//+--------------------------------------------------------------------------+
//|Campos alterveis da enchoice
|
//+--------------------------------------------------------------------------+
AADD(aAlterEnch,"N1_TIPOADT")
// Controle de Adiantamentos
AADD(aAlterEnch,"N1_DESCRIC")
// Descrio
AADD(aAlterEnch,"N1_CHAPA")
// Numero da plaqueta
AADD(aAlterEnch,"N1_FORNEC") // Fornecedor
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
155
ADVPL
GUIA DE REFERNCIA
Escola conveniada
AADD(aAlterEnch,"N1_LOJA")
AADD(aAlterEnch,"N1_NSERIE")
AADD(aAlterEnch,"N1_NFISCAL")
AADD(aAlterEnch,"N1_NFITEM")
AADD(aAlterEnch,"N1_UM")
AADD(aAlterEnch,"N1_PRODUTO")
AADD(aAlterEnch,"N1_PEDIDO")
AADD(aAlterEnch,"N1_ITEMPED")
AADD(aAlterEnch,"N1_PRCIMP")
AADD(aAlterEnch,"N1_CODPAIS")
AADD(aAlterEnch,"N1_ORIGCPR")
AADD(aAlterEnch,"N1_CODSP")
AADD(aAlterEnch,"N1_CHASSIS")
// Loja do Fornecedor
Serie da Nota
Numero da Nota
Item da Nota
Unidade de Medida
Cdigo do Produto
Codigo do Pedido de Compras
Item do Pedido de Compras
Codigo do Processo de Importacao
Codigo do Pais
Origem de Compras
// Codigo da SP Interna
// Numero de serie
//
//
//
//
//
//
//
//
//
//
//+--------------------------------------------------------------------------+
//|Montagem do DIALOG
|
//+--------------------------------------------------------------------------+
DEFINE MSDIALOG oDlg TITLE cCadastro FROM 000,000 TO 400,600 PIXEL
RegToMemory("SN1", .F.)
oEnch :=
:= GetArea()
:= 0
SP
156
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Return .T.
OPENFILE()
A funo OPENFILE() exibe o diagnstico de arquivos, verificando a existncia dos arquivos de
dados e os ndices do sistema, criando caso no existam e abre os arquivos de acordo com o
mdulo onde executada ou de acordo com a parametrizao.
Sintaxe: OPENFILE(cEmp)
Parmetros:
cEmp
Retorno:
Nenhum
PERGUNTE()
A funo PERGUNTE() inicializa as variveis de pergunta (mv_par01,...) baseada na pergunta
cadastrado no Dicionrio de Dados (SX1). Se o parmetro lAsk no for especificado ou for
verdadeiro ser exibida a tela para edio da pergunta e se o usurio cofirmar as variveis
sero atualizadas e a pergunta no SX1 tambm ser atualizada.
Parmetros:
cPergunta
|Ask
cTitle
Ttulo do dilogo.
Retorno:
Lgico
PESQPICT()
A funo PESQPICT() retorna a picture definida para um campo especificado no Dicionrio de
Dados (SX3).
Sintaxe: PesqPict(cAlias,cCampo,nTam)
Parmetros:
cAlias
Alias do arquivo
SP
157
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cCampo
Nome do campo
nTam
Retorno:
String
PESQPICTQT()
A funo PESQPICTQT() retorna a picture de um campo numrico referente a uma quantidade,
de acordo com o Dicionrio de Dados (SX3). Esta funo geralmente utilizada quando h
pouco espao disponvel para impresso de valores em relatrios, quando o valor nEdio no
informado, ela tem o comportamento semelhante ao da funo X3Picture, pois busca o
tamanho do campo no dicionrio de dados.
Sintaxe: PesqPictQt(cCampo,nEdio)
Parmetros:
cCampo
nEdio
Retorno:
String
Picture ideal para o espao definido por nEdio, sem a separao dos
milhares por vrgula.
POSICIONE()
A funo POSICIONE() permite o retorno do contedo de um campo de um registro de uma
tabela especificado atravs de uma chave de busca.
Parmetros:
cAlias
Alias do arquivo
nOrdem
Ordem utilizada
cChave
Chave pesquisa
cCampo
Retorno:
Indefinido
SP
158
ADVPL
GUIA DE REFERNCIA
Escola conveniada
PUTSX1()
A funo PUTSX1() permite a incluso de um nico item de pergunta em um grupo de definido
no Dicionrio de Dados (SX1). Todos os vetores contendo os textos explicativos da pergunta
devem conter at 40 caracteres por linha.
Parmetros:
cGrupo
cOrdem
cPergunt
cPerSpa
cPerEng
cVar
cTipo
Tipo do parmetro
nTamanho
nDecimal
nPresel
cGSC
cValid
cF3
cPyme
cVar01
cDef01
cDefSpa1
cDefEng1
cCnt01
Contedo padro ou ultimo contedo definido como respostas para este item
cDef0x
cDefSpax
cDefEngx
aHelpPor
aHelpEng
cGrpSxg
SP
159
ADVPL
GUIA DE REFERNCIA
Escola conveniada
aHelpSpa
cHelp
RETINDEX()
A funo RETINDEX()
Dados (SIX).
Sintaxe: RETINDEX(cAlias)
Parmetros:
cAlias
Retorno:
Numrico
SIXDESCRICAO()
A funo SIXDESCRICAO() retorna a descrio da chave de ndice, de acordo com o registro
posicionado no SIX e idioma corrente.
Sintaxe: SIXDESCRICAO()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cChave, cOrdem )
Local cSixDesc :=
dbSelectArea(SIX)
dbSetOrder(1)
If dbSeek(cChave+cOrdem)
cSixDescr := SixDescricao()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
160
ADVPL
GUIA DE REFERNCIA
Escola conveniada
EndIf
Return
TABELA()
A funo TABELA() retorna o contedo de uma tabela cadastrada no Arquivo de Tabelas (SX5)
de acordo com a chave especificada. Caso a tabela ou a chave especificada no existir ser
exibido um HELP() padro do sistema.
Sintaxe: Tabela(cTab,cChav,lPrint)
Parmetros:
cTab
cChav
lPrint
Retorno:
String
TAMSX3()
A funo TAMSX3() retorna o tamanho (total e parte decimal) de um campo especificado no
Dicionrio de Dados (SX3).
Sintaxe: TAMSX3(cCampo)
Parmetros:
cCampo
Retorno:
Array
TM()
A funo TM() retorna a picture de impresso para valores numricos dependendo do espao
disponvel.
Parmetros:
nValor
SP
161
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nEdio
nDec
Retorno:
String
Sintaxe: X1DEF01()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cGrupo, cPerg )
Local cDef01
Local cDef02
Local cDef03
Local cDef04
Local cDef05
dbSelectArea(SX1)
dbSetOrder(1)
If dbSeek( cGrupo + cPerg ) // grupo da pergunta + o numero da perg.
cDef01 := X1Def01()
cDef02 := X1Def02()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
162
ADVPL
GUIA DE REFERNCIA
Escola conveniada
EndIf
cDef03 := X1Def03()
cDef04 := X1Def04()
cDef05 := X1Def05()
Return
X1PERGUNT()
A funo X1PERGUNT() retorna a descrio da pergunta posicionada no Dicionrio de Dados
(SX1) para o idioma corrente.
Sintaxe: X1PERGUNT()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cGrupo, cPerg )
Local cDescr
dbSelectArea(SX1)
dbSetOrder(1)
If dbSeek( cGrupo + cPerg ) // grupo da pergunta + o numero da perg.
cDescr := X1Pergunt()
EndIf
Return
X2NOME()
A funo X2NOME() retorna a descrio de uma tabela posicionada no Dicionrio de Dados
(SX2) no idioma corrente.
Sintaxe: X2NOME()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
163
ADVPL
GUIA DE REFERNCIA
Escola conveniada
X3CBOX()
A funo X3CBOX() retorna o contedo de um campo tipo combo posicionado no Dicionrio de
Dados (SX3) no idioma corrente.
Sintaxe: X3CBOX()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( )
Local cTitulo
Local cDescri
Local cCombo
dbSelectArea(SX3)
dbSetOrder(2)
If dbSeek( cCampo )
cTitulo := X3Titulo()
cDescri := X3Descri()
cCombo := X3Cbox()
EndIf
Return
X3DESCRIC()
A funo X3DESCRIC() retorna a descrio de um campo posicionado no Dicionrio de Dados
(SX3) no idioma corrente.
Sintaxe: X3DESCRIC()
SP
164
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( )
Local cTitulo
Local cDescri
Local cCombo
dbSelectArea(SX3)
dbSetOrder(2)
If dbSeek( cCampo )
cTitulo := X3Titulo()
cDescri := X3Descri()
cCombo := X3Cbox()
EndIf
Return
X3PICTURE()
A funo X3PICTURE() retorna a mscara de um campo contido no Dicionrio de Dados (SX3).
Sintaxe: X3PICTURE(cCampo)
Parmetros:
cCampo
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cCampo )
Local cPicture
cPicture := X3Picture( cCampo )
Return cPicture
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
165
ADVPL
GUIA DE REFERNCIA
Escola conveniada
X3TITULO()
A funo X3TITULO() retorna o ttulo de um campo posicionado no Dicionrio de Dados (SX3)
no idioma corrente.
Sintaxe: X3TITULO()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( )
Local cTitulo
dbSelectArea(SX3)
dbSetOrder(2)
If dbSeek( A1_COD )
cTitulo := X3Titulo()
EndIf
Return
X3USO()
A funo X3USO() verifica se o campo atualmente posicionado no Dicionrio de Dados (SX3)
est disponvel para uso.
Parmetros:
cUsado
Modulo
Retorno:
Lgico
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
166
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: X5DESCRI()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cFilial, cTabela, cChave )
Local cDescr
dbSelectArea(SX5)
dbSetOrder(1)
If dbSeek( cFilial+cTabela+cChave )
cDescr := X5Descri()
EndIf
Return
X6CONTEUD()
A funo X6CONTEUD() retorna o contedo de um parmetro posicionado no Dicionrio de
Dados (SX6) para o idioma corrente.
Sintaxe: X6CONTEUD()
Parmetros:
SP
167
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Nenhum
Retorno:
Indefinido
Exemplo:
User Function <nome-da-funo>( cFilial, cParam )
Local cDescr
Local cConteud
dbSelectArea(SX6)
dbSetOrder(1)
If dbSeek( cFilial+cParm )
cDescr := X6Descric()
cDescr += X6Desc1()
cDescr += X6Desc2()
cConteud := X6Conteud()
EndIf
Return
X6DESCRIC()
A funo X6DESCRI() retorna o contedo da descrio de um parmetro de acordo com o
registro posicionado no Dicionrio de Dados (SX6) no idioma corrente.
Sintaxe: X6DESCRIC()
Parmetros:
Nenhum
Retorno:
String
SP
168
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
User Function <nome-da-funo>( cFilial, cParam )
Local cDescr
Local cConteud
dbSelectArea(SX6)
dbSetOrder(1)
If dbSeek( cFilial+cParm )
cDescr := X6Descric()
cDescr += X6Desc1()
cDescr += X6Desc2()
cConteud := X6Conteud()
EndIf
Return
XADESCRIC()
A funo XADESCRI() retorna o contedo da descrio dos folders de acordo com o registro
posicionado no Dicionrio de Dados (SXA) no idioma corrente.
Sintaxe: XADESCRIC()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cFolder, cNumero )
Local cDescr
dbSelectArea(SXA)
dbSetOrder(1)
If dbSeek( cFolder+cNumero ) // alias do folder + numero do folder
cDescr := XADescric()
EndIf
Return
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
169
ADVPL
GUIA DE REFERNCIA
Escola conveniada
XBDESCRI()
A funo XBDESCRI() retorna o contedo da descrio de uma consulta de acordo com o
registro posicionado no Dicionrio de Dados (SXB) no idioma corrente.
Sintaxe: XBDESCRI()
Parmetros:
Nenhum
Retorno:
String
Exemplo:
User Function <nome-da-funo>( cAlias )
Local cDescr
dbSelectArea(SXB)
dbSetOrder(1)
If dbSeek( cAlias + 1 )
cDescr := XBDescri()
EndIf
Return
XFILIAL()
A funo XFILIAL() retorna a filial utilizada por determinado arquivo.
Esta funo utilizada para permitir que pesquisas e consultas em arquivos trabalhem
somente com os dados da filial corrente, dependendo claro se o arquivo est compartilhado
ou no (definio que feita atravs do mdulo Configurador Dicionrio de Dados (SX2)).
importante verificar que esta funo no tem por objetivo retornar apenas a filial corrente,
mas retorn-la caso o arquivo seja exclusivo. Se o arquivo estiver compartilhado, a funo
xFilial retornar dois espaos em branco.
Sintaxe: XFILIAL(cAlias)
Parmetros:
cAlias
Retorno:
Caracter
SP
170
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe:
Parmetros
oObjetoDLG
cTitulo
nLinIni, nColIni
nLiFim, nColFim
oObjetoRef
UNIDADE
Exemplo:
DEFINE MSDIALOG oDlg TITLE cTitulo FROM 000,000 TO 080,300 PIXEL
ACTIVATE MSDIALOG oDlg CENTERED
MSGET()
Define o componente visual MSGET, o qual utilizado para captura de informaes digitveis
na tela da interface.
Sintaxe:
Parmetros
nLinha, nColuna
VARIAVEL
SP
171
ADVPL
GUIA DE REFERNCIA
Escola conveniada
campo.
nLargura,nAltura
UNIDADE
oObjetoRef
cF3
VALID
WHEN
cPicture
Exemplo:
@ 010,050 MSGET cCGC
VALID !Vazio()
SAY()
Define o componente visual SAY, o qual utilizado para exibio de textos em uma tela de
interface.
Sintaxe:
Parmetros
nLinha, nColuna
cTexto
nLargura,nAltura
UNIDADE
oObjetoRef
Exemplo:
@ 010,010 SAY
BUTTON()
Define o componente visual Button, o qual permite a incluso de botes de operao na tela da
interface, os quais sero visualizados somente com um texto simples para sua identificao.
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
172
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: BUTTON()
Parmetros
nLinha,nColuna
cTexto
nLargura,nAltura
UNIDADE
oObjetoRef
AO
Exemplo:
010, 120 BUTTON Confirmar SIZE 080, 047 PIXEL OF oDlg;
ACTION (nOpca := 1,oDlg:End())
SBUTTON()
Define o componente visual SButton, o qual permite a incluso de botes de operao na tela
da interface, os quais sero visualizados dependendo da interface do sistema ERP utilizada
somente com um texto simples para sua identificao, ou com uma imagem (BitMap) prdefinido.
Sintaxe: SBUTTON()
Parmetros
nLinha, nColuna
TYPE N
AO
STATUS
oObjetoRet
Exemplo:
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
173
ADVPL
GUIA DE REFERNCIA
Escola conveniada
CHECKBOX()
Define o componente visual CheckBox, o qual permite a utilizao da uma marca para habilitar
ou no uma opo escolhida, sendo esta marca acompanhada de um texto explicativo. Difere
do RadioMenu pois cada elemento do check nico, mas o Radio permite a utilizao de uma
lista junto com um controle de seleo.
Sintaxe:
Parmetros:
nLinha,nColuna
oCheckBox
VARIAVEL
cTexto
WHEN
UNIDADE
oObjetoRef
nLargura,nAltura
SP
174
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cMensagem
Exemplo:
@ 110,10 CHECKBOX oChk VAR lChk PROMPT "Marca/Desmarca" SIZE 60,007 PIXEL OF oDlg ;
ON CLICK(aEval(aVetor,{|x| x[1]:=lChk}),oLbx:Refresh())
COMBOBOX()
Define o componente visual ComboBox, o qual permite seleo de um item dentro de uma lista
de opes de textos simples no formato de um vetor.
Sintaxe:
Parmetros:
nLinha,nColuna
VARIAVEL
AITENS
nLargura,nAltura
UNIDADE
oObjetoRef
Exemplo:
@ 40, 10 COMBOBOX oCombo VAR cCombo ITEMS aCombo SIZE 180,10 PIXEL OF
oFld:aDialogs[2]
FOLDER()
Define o componente visual Folder, o qual permite a incluso de diversos Dialogs dentro de
uma mesma interface visual. Um Folder pode ser entendido como um array de Dialogs, aonde
cada painel recebe seus componentes e tem seus atributos definidos independentemente dos
demais.
Sintaxe:
SP
175
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros
nLinha,nColuna
oFolder
oObjetoRef
&cTexto1,,&cTextoX
UNIDADE
nLargura,nAltura
Exemplo:
@ 50,06 FOLDER oFld OF oDlg PROMPT "&Buscas", "&Consultas", "Check-&Up / Botes" PIXEL
SIZE 222,078
RADIO()
Define o componente visual Radio, tambm conhecido como RadioMenu, o qual seleo de
uma opo ou de mltiplas opes atravs de uma marca para os itens exibidos de uma lista.
Difere do componente CheckBox, pois cada elemento de check sempre nico, e o Radio pode
conter um ou mais elementos.
Sintaxe:
Parmetros
nLinha,nColuna
oRadio
nRadio
3D
nLargura,nAltura
<ITEMS PROMPT>
cItem1,cItem2,...,cItem
X
oObjetoRef
SP
176
ADVPL
GUIA DE REFERNCIA
Escola conveniada
UNIDADE
CHANGE
CLICK
Exemplo:
aAdd( aRadio, "Disco" )
aAdd( aRadio, "Impressora" )
aAdd( aRadio, "Scanner" )
@ 30, 10 RADIO oRadio VAR nRadio ITEMS aRadio[1],aRadio[2],aRadio[3] SIZE 65,8 ;
PIXEL OF ;
oFld:aDialogs[3] ;
ON CHANGE ;
(Iif(nRadio==1,MsgInfo("Opco 1",cAtencao),;
Iif(nRadio==2,MsgInfo("Opo 2",cAtencao),MsgInfo("Opo 3",cAtencao))))
Interfaces de cadastro
AXCADASTRO()
Sintaxe
Descrio
MBROWSE()
Sintaxe
Descrio
AXPESQUI()
Funo de pesquisa padro em registros exibidos pelos browses do sistema, a qual posiciona o
browse no registro pesquisado. Exibe uma tela que permite a seleo do ndice a ser utilizado
na pesquisa e a digitao das informaes que compe a chave de busca.
Sintaxe: AXPESQUI()
Parmetros
Nenhum
AXVISUAL()
Av. Leona rdo da Vinci, n 608 Metr Conceio - So Paulo
Tel: 11 50114895 / 50116082 / 98081988
E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br
SP
177
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Parmetros
cAlias
nReg
nOpc
aAcho
nColMens
Parmetro no utilizado.
cMensagem
Parmetro no utilizado.
cFunc
aButtons
lMaximized
Funo que dever ser utilizada para carregar as variveis que sero
utilizadas pela Enchoice. Neste caso o parmetro lVirtual definido
internamente pela AxFunction() executada como .T.
Botes adicionais para a EnchoiceBar, no formato:
aArray[n][1] -> Imagem do boto
aArray[n][2] -> bloco de cdigo contendo a ao do boto
aArray[n][3] -> ttulo do boto
Indica se a janela dever ser ou no maximizada
AXINCLUI()
Funo de incluso padro das informaes de um registro, no formato Enchoice, conforme
demonstrado no tpico sobre a interface AxCadastro().
Parmetros
cAlias
nReg
nOpc
aAcho
cFunc
aCpos
SP
178
ADVPL
GUIA DE REFERNCIA
Escola conveniada
cTudoOk
lF3
cTransact
aButtons
aParam
aAuto
lVirtual
lMaximized
AXALTERA()
Funo de alterao padro das informaes de um registro, no formato Enchoice, conforme
demonstrado no tpico sobre a interface AxCadastro().
Parmetros
SP
179
ADVPL
GUIA DE REFERNCIA
Escola conveniada
AXDELETA()
Funo de excluso padro das informaes de um registro, no formato Enchoice, conforme
demonstrado no tpico sobre a interface AxCadastro().
Parmetros
cAlias
nReg
nOpc
cTransact
aCpos
aButtons
aParam
aAuto
lMaximized
Sintaxe: AVISO(cTexto)
Parmetros
cTexto
SP
180
ADVPL
GUIA DE REFERNCIA
Escola conveniada
AVISO()
Parmetros
cTitulo
Ttulo da janela
cTexto
Texto do aviso
aBotoes
nTamanho
Tamanho (1,2 ou 3)
FORMBACTH()
cTitulo
aTexto
aBotoes
Ttulo da janela
Array simples (vetor) contendo cada uma das linhas de texto que sero
exibidas no corpo da tela.
Array com os botes do tipo SBUTTON(), com a seguinte estrutura:
{nTipo,lEnable,{|| Ao() }}
bValid
nAltura
SP
181
ADVPL
GUIA DE REFERNCIA
Escola conveniada
nLargura
MSGFUNCTIONS()
Sintaxe:
Sintaxe:
Sintaxe:
Sintaxe:
Parmetros
MSGALERT(cTexto, cTitulo)
MSGINFO(cTexto, cTitulo)
MSGSTOP(cTexto, cTitulo)
MSGYESNO(cTexto, cTitulo)
cTexto
cTitulo
MSGALERT
MSGINFO
SP
182
ADVPL
GUIA DE REFERNCIA
Escola conveniada
MSGSTOP
MSGYESNO
Parmetros:
cCampo
nLinha
Retorno:
Indefinido
GDFIELDPOS()
SP
183
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Sintaxe: GDFIELDPOS(cCampo)
Parmetros:
cCampo
Retorno:
Numrico
GDFIELDPUT()
A funo GDFIELDPUT() atualiza o contedo de uma grid formada por um objeto do tipo
MsNewGetDados() de acordo com o campo e linha da grid especificados.
Parmetros:
cCampo
xConteudo
nLinha
Retorno:
Nenhum
GETMARK()
A funo GETMARK() utilizada em conjunto com a funo MarkBrow(), para retornar o
conjunto de caracteres que sero utilizados para identificar os registros marcados pelo browse.
Parmetros:
lUpper
Retorno:
String
Conjunto de caracteres que definem a marca que dever ser utilizada pela
MarkBrowse durante o processamento corrente.
SP
184
ADVPL
GUIA DE REFERNCIA
Escola conveniada
Exemplo:
Function <nome-da-funo>( )
Local aCampos := {{'CB_OK' ,,''},;
{'CB_USERLIB' ,,'Usurio'},;
{'CB_TABHORA' ,,'Hora'},;
{'CB_DTTAB' ,,'Data'}}
Private cMarca := GetMark()
Private cCadastro := 'Cadastro de Contrato'
Private aRotina := { { 'Pesquisar' , 'AxPesqui' , 0, 1 }}
MarkBrow( 'SCB', 'CB_OK','!CB_USERLIB',aCampos,, cMarca,'MarkAll()',,,,'Mark()' )
Return
MARKBREFRESH()
A funo MARKBREFRESH() atualiza a exibio da marca no MarkBrowse(), sendo utilizada
quando algum processamento paralelo atualiza o contedo do campo definido como controle
de marca para os registros em exibio pelo browse.
Este tipo de processamento comum, e normalmente est associonada a clique de inverter
seleo, ou a opes de marcar e desmarcar todas.
A MarkBrowse() atualiza automaticamente a exibio da marca de registros
quando utilizado o browse.
Sintaxe: MARKBREFRESH()
Parmetros:
Nenhum
Retorno:
Nenhum
SP
185
ADVPL
GUIA DE REFERNCIA
Escola conveniada
READVAR()
A funo READVAR() retorna o nome da varivel ou campo associoado ao objeto do tipo GET()
atualmente selecionado ou em edio.
Sintaxe: READVAR()
Parmetros:
Nenhum
Retorno:
String
SP
186