Upload
luisgianetti
View
204
Download
0
Embed Size (px)
Citation preview
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 1/44
S T O O D
r:
Realiza a conversao de uma informacao do tipo caracter com conteudo no formato "AAAAMMDD"
data.
Sintaxe - STOD(sData)
Parametres:
sData - String no formato"AAAAMMDD"
Exemplo:
r:
sData := = LERSTR(Ol(08) II Funcao que rea liza a leitura de uma string de um txt previa mente
II aberto
dData := STOD(sData)
S T R ( )
r
r:
Realiza a conversao de uma informacao do tipo nurnerico em uma string, adicionando espacos a dire
Sintaxe - STR(nValor)
Parametres:
nValor -Valor nurnerico que sera convertido para caractere.
rExemplo:
FORnPercorridos := 1 to 10
MSGINFO("Passos percorridos: "+CvaIToChar(nPercorridos))
NEXTnPercorridos
S T R Z E R O O
r: Realiza a conversao de uma informacao do tipo nurnerico em uma string, adicionando zeros a esquedo ruirnero convertido,de forma que a string gerada tenha 0 tamanho especificado no pararnetro.
Sintaxe - STRZERO(nValor, nTamanho)
Parametros:
nValor - Valor nurnerlco que sera convertido para caractere.
nTamanho -Tamanho total desejado para a string retornada.
Exemplo:
FORnPercorridos := 1 to 10
MSGINFO("Passos percorridos:" +Cvallot.harfn Percorridos))
NEXTnPercorridos
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 2/44
V A L O
Realiza a conversao de uma inforrnacao do tipo caracter em numerica.
Sintaxe - VAL(cValor)
Parametres:
cValor - String que sera convertida para numerico,
Exemplo:
Static Function Modulo 11(cData)
LOCAL L,D, P := 0
L := Len(cdata)
D:=O
P:= 1
While L > 0
P:= P + 1
D := D + (Val(SubStr(cData, L, 1)) * P)
IfP = 9
P:= 1End
L:= L - 1
End
D:= 11 - (mod(D,11))
If (D == 0 .Or. D = = 1 .Or. D = = 10 .Or. D = : = 11)
D:= 1
End
Return(D)
V e r i f i c Q {Q O d e t ip o s d e v a r i d v e i s
T Y P E D
Determina 0 tipo do conteudo de uma variavel, a qual nao foi definida na funcao em execucao,
Sintaxe - TYPE("cVariavel")
Parametres:
"cVariavel" - Nome da variavel que se deseja avaliar, entre aspas ("").
Exemplo:
IFTYPE("dDataBase") == l iD"
MSGINFO("Database do sistema: "+DTOC("dDataBase"))
ELSE
MSGINFO("Variavel indefinida no momento")
154 Prog ramoruoemAOVPl--..-~
Todor os aheitos me r v a d o s . mlCfOSlgyJ
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 3/44
r:
r:
V A L T Y P E O
Determina 0tipo do conteudo de uma variavel, a qual nao foi definida na funcao em execucao.
rSintaxe - VALTYPE(cVariavel)
Para metros:
cVariavel- Nome da variavel que se deseja avaliar.
Exemplo:
STATICFUNCTION GETIEXTO(nTamanho, cTitulo, cSay)
LOCAL cTexto :="1/
LOCAL nColF := a
LOCAL nLargGet := 0
PRIVATEoDlg
Default cTitulo := "Tela para informar texto"
Default cSay := "Informe 0 texto:"
Default nTamanho := 1
IF VaIType(nTamanho) !="N" II Se0 pararnetro foi passado incorretamente
nTamanho := 1
ENDIF
r:
r
f"".
cTexto
nLargGet
nColf
:= Space(nTamanho)
:= Round(nTamanho * 2.5,0)
:= Round(195 + (nLargGet * 1.75) ,0)
r:
DEFINE MSDIALOG oDI9 TITLEcTitulo FROM 000,000 TO 120,nCoiF PIXEL
@ 005,005 TO 060{ Round(nCoIF/2,O) OF oDlg PIXEL
@010,010 SAY cSay SIZE 55,7 OF oDI9 PIXEL
@010,065 MSGET cTexto SIZE nLargGet, 1 1 OF oDI9 PIXEL;
Picture "@!"VALID !Empty(cTexto)
DEFINE SBUTTON FROM 030,010TYPE 1 ;
ACTION (nOpca := 1,oDlg:End()) ENABLE OF 0019
DEFINE SBUTTON FROM 030,040TYPE 2;
ACTION (nOpca := O,oDlg:End()) ENABLE OF 0019
ACTIVATEMSDIALOG oDI9 CENTERED
" cTexto:= IIF(nOpca==l ,cTexto,"")
RETURNcTextor:
J 7
r [~~/n o t a r o e s
t~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 4/44
M a n i p u la fi i o d e a r r a y s
A r r a y O
A funcao Array(} e utilizada na definicao de variaveis de tipo array, como uma opcao a sintaxe utllizando
chaves ("{}") ..
Sintaxe - Array(nLinhas, nColunas)
Parametros:
nUnhas - Determina 0 numero de linhas com as quais 0 array sera criado
nColunas - Determina 0nurnero de colunas com as quais 0array sera criado
Exemplo:
aDados := Array(3,3) /1 Cria urn array de tres lin has, cada qua I com 3 colunas.
o array de.fmido p elo co ma nd o A rro yO a pe sa r deja p os su ir a e stn uu ra solicitada, noo p os su : c on te ud o em nentiumde
seus elementos,ou seia:
Fique oiiados! 1J - > array de tres posicoes
atento aOados[ i]{ 1} -> posiq50 v a lid a , m a s de conteudo nuto.
A A D D ( )
A funcao AADDO permite a insercao de um item em um array ja existente, sendo que este item podem ser
um elemento simples, um objeto ou outro array.
Sintaxe - AADD(aArray, xltem)
Parametres:
aArray - Array pre-existente no qual sera adicionado 0 item definido em xltem
xltem - Item que sera adicionado ao array.
Exemplo:
aDados := {} II Define que a variavel aDados e um array, sem especificar suas dirnensoes.
altem := {} /1 Define que a variavel altem e um array, sem especificar suas dimensoes,
AADD(altem, cVariavell) IIAdiciona urn elemento no array altem de acordo com 0cVariavell
AADD(altem, cVariave12l 1 / Adiciona um elemento no array altem de acordo com 0 cVariavel2
AADD(altem, cVariavel3) // Adkiona um elemento no array altern de acordo com 0 cVariavel3
II Neste ponto 0array a Item possui 03 elementos os quais podem ser acessados com:
II alteml l l-> corresponde ao conteudo de cVariavell
II altem[2]-> corresponde ao conteudo de cVariavel2
II altem[3]-> corresponde ao conteudo de cVariavel3
T D d o s o s d i r~ i t o s r€ s € r < ' O d D S .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 5/44
AADD(aDados,altem) 1 / Adiciona no array aDados 0conteudo do array altem
Exemplo (continuacao):
-
r:
/ 1 Neste ponto,o array a aDados possui apenas um elemento, que tarnbern e um array
IIcontendo 03 elementos:
1 / aDados [1][1] ~>corresponde ao conteudo de cVariavel1
1 / aDados [1][2] -> corresponde ao conteudo de eVariavel2
1 / aDados [1][3]-> corresponde ao conteudo de eVariavel3
r:
AADD(aDados, altem)
AADD(aDados, altem)
II Neste ponto, 0 array aDados possui 03 elementos, aonde eada qual e urn array com outros
II 03 elementos, sendo:
r1 / aDados [1)[1] -> corresponde ao conteudo de eVariavell1 / aDados [1][2]-> eorresponde ao conteudo de cVariavel2
1 / aDados [1][3]-> corresponde ao conteudo de eVariavel3
II aDados [2][1] - c - corresponde ao conteudo de eVariavell
II aDados [2][2]-> corresponde ao conteudo de cVariavel2
II aDados [2][3]-> corresponde ao conteudo de cVariavel3
II aDados [3][1]-> corresponde ao conteudo de cVariavell
II aDados [3][2]-> corresponde ao conteudo de cVariavel2
1 / aDados [3][3]-> corresponde ao conteudo de cVariavel3
rr
II Desta forma, 0 array aDados montando com uma estrutura de 03 linhas e 03 colunas, com
I10 conteudo def nido por variaveis extern as, mas com a mesma forma obtida com 0 usa do
II comando:aDados:::: ARRAY(3,3).
A C L O N E O
A funcao ACLONEOrealize a copia dos elementos de um array para outro array integralmente.
Sintaxe - AADD(aArray)
Parametres:
aArray - Array pre-existente que tera seu conteudo copiado para 0array especificado.
Exemplo:
II Utilizando 0array aDados utilizado no exemplo da funcao AADDO
altens := ACLONE(aDados)
II Neste ponto.o array altens possui exatamente a mesma estrutura e inforrnacoes do array
II aDados.
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 6/44
Fique
atento
Pot set uma estruturo de memoria, um array nao pode ser simplesmente coplado para outro army atraves de lima
o t ri bu i c;ao s imo l es C=") .
Para mais informaC;6es sabre a necessidade de uti/izoro coraando AGONEO verii ique 0 top iC{} 6. i.3 ....C6pio de Arrays.
A D E L O
A funcao ADELO permite a exdusao de um elemento do array. Ao efetuar a exclusao de um elemento,
todos os demais sao reorganizados de forma que a ultima posicao do array passara a ser nula.
Sintaxe - ADEL(aArray, nPosi<;:ao)
Parametres:
aArray - Array do qual deseja-se remover uma determinada posicao
nPosi~ao - Posicao do array que sera removida
Exemplo:
II Utilizando 0array altens do exemplo da funcao ACLONEO temos:
ADEL(altens,l) II Sera removido 0primeiro elemento do array altens.
II Neste ponte. 0 array altens continua com 03 elementos, aonde:
II altens[l]-> antigo altens[2], 0 qual foi reordenado como efeito da exdusao do item 1.
II altens[2]-> antigo altens[3J, 0 qual foi reordenado como efeito da exdusao do item 1.
II altens[3]-> conteudo nulo, por se tratar do item exclufdo.
A S I Z E O
A funcao ASIZE permite a redefinicao da estrutura de urn array pre-existente, adicionando ou removendoitens do mesmo.
Sintaxe - ASIZE(aArray, nTamanho)
Para metros:
aArray - Array pre-existente que tera sua estrutura redimensionada.
nTamanho - Tamanho com 0 qual deseja-se redefinir 0 array. Se 0 tamanho for menor do que 0 atual,
serao removidos os elementos do final do array.ja se 0 tamanho for maior do que 0 atual serao inseridos
itens nulos ao final do array.
Exemplo:
II Utilizando 0 array altens, 0 qual teve um elemento excluldo pelo uso da funcao ADELO
ASIZE(a Itens,Len(a Itens-l))
II Neste ponto 0 array altens possui 02 elementos, ambos com conteudos validos.
158P r o g r a m a f Q o e m A D V P l
T o d o! a s d ir e it o s t e se r vo o o s. m i C r o S J i i ? p
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 7/44
r:r-
r-.
Q~
r: Dica
r:
~
r:rr-
,--
r:
r:
r:
rr=
r-
,--.
Utiiiz.ar (I fun~aoASiZE() apos 0 us a da tim~aoADEW e uma protica recomendoda eevita que seja ocessada umo
do array com um conteudo fnvciiido para a api icor , " ( lo em usa.
r
. - . .I
F
r =, . . .r:
~-
r<m e a
, . - . . .
r-
r'
r-
. . . . . » . , , _
r
r-
r=
, . , - - - _
r
r-.
.r:
- -r
A S O R I O
A funcao ASORTO permite que os itens de urn array sejam ordenados a partir de um criterio
esta belecido.
Sintaxe - ASORT(aArray, nlnicio, nltens, bOrdem)
Parametres
aArray - Array pre-existente que tera seu conteudo ordenado atraves de um criterio estabelecido.
nlnicio - Poskao inicial do array para infcio da ordenacao.Caso nao seja informado,o array sera orde
a partir de seu primeiro elemento.
nltens - Quantos itens, a partir da posicao inicial deverao ser ordenados. Caso nao seja informado,
ordenados todos as elementos do array.
bOrdem - Bloco de c6digo que permite a definicao do criteria de ordenacao do array. Caso bOrdem
seja informado, sera utilizado a criterio ascendente.
Urn bloco de codiqo e basicamente urna iuncao esaita em linba. Desio forma SijO estrutura deve "supor ta t" t
requishos de uma fum,:60, os quais Sao atraves do analise e intetpretacdo de p a r ame t r o s tecebidos ..execu
pto cessam em oe Iom ecer u rn retorno.
Com base nesse r eo u is ito . p o de -s e d e ii ni r um bloco de c6digo com a estnnura abaixo:
bBloeo:= { jx P o r7 , x P a y2 , ... x Pa rZ I A C ;a o l j A (a o2 ,A c;iio Z}, a ond e:
1 1 - > d efine o intervaio onde estOo compreendidos a s parametros
AC;i ioZ~> expressao que sera executadas pelo b loco de c6digo
AC;iio1... A C ;a o Z -> intetvalo de expressoes que s e tQO exeanadas pelo bioeo de codiqo, no formato de lista de expte
Retorno -> resvitado do ultima acaoexecutada pelo bioco de codiqo, n o «rs o
A r ;i io z .
Para ttiaiores detalhes sabre a estnnura e utilizar;oo de biocos de c6digo consuite otopico 6.2 - iistos de Expre
Blocos de c6digo .
Exemplo 01 - Ordenacao ascendente
aAlunos := {IMauren';ISoraia';"Andreia"}
aSort(aAlunos)
/ / Neste ponte, os elementos do array aAlunos serao {"Andreia';/lMauren';/lSoraia"}
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 8/44
Exemplo 02 - Ordenacao descendente
aAlunos:= {"Mauren';"50raia,;/lAndreia"}
bOrdem := {Ix,yl x> y}
II Durante a execucao da funcao a50ftO, a variavel "x" recebera 0 conteudo do item que esta
II posicionado. Como 0 item que esta posicionado e a posicao aAlunos(x] e aAlunos(x] ->
II string contendo 0 nome de um aluno, pode-se substituir"x" por cNomeAtu.
II A variavely" recebera 0 conteudo do pr6ximo item a ser avaliado, e usando a mesma
II analogia de "x'; pode-se substituir"y" por cNomeProx. Desta forma 0 bloco de c6digo
II bOrdem pode ser re-escrito como:
bOrdem := {icNomeAtu, cNomeProxl cNomeAtu > cNomeProx}
a50rt(aAlunos"bOrdem)
II Neste ponto, os elementos do array aAlunos serao I ' 'Soreia" ,"Mauren';"Andreia"}
A S C A N O
A funcao ASCANO permite que seja identificada a posicao do array que con tern uma determinada
inforrnacao, atraves da analise de uma expressao descrita em um bloco de c6digo.
Sintaxe - ASCAN(aArray, b5eek)
Parametres:
aA rray - Array pre-existente no qual desejasse identificar a posicao que contern a inforrnacao
pesquisada.
bSeek - Bloco de c6digo que configura os parametres da busca a ser realizada.
Exemplo:
aAlunos := {"Mil rcio';"Denis';"Arna Ido':"Patrfcia"}
b5eek:= {ixl x == "Denis"}
nPosAluno := aScan(aAlunos,bSeek) II retorno esperado 2
Durante a execucao do tu nc oo a Sc on , a v a ria v ei " x" recebera 0 conteudo 0 item que estei posicionado no momenta, no
caso aAlunos{x}. Como aAlunos{x] e uma posioio do array que contem 0nome do a/uno, "XUpoderia ser renomeada para
cNome, e a definic;ao do bloco bSeek poderia se t re-escri ta como:
bSeek :"" ficNomej cNome == "Denis"}
D i e a
No deimicoo d05 proqmmas e sempre recomenddve/ utilizar variaveis com nomes significativos, desta forma os blocos de
c od iq o na o sao exce~ao.
Sempre opte par anaiisar como a blow de (odigo sera utifizado e 00 inves de "x;"y" e simi/ares, deima os parametres
com names que representem seu conteudo. Seramois simples 0 seu entendimento e0en tendim ento de outros que forem
onatisar 0c od iq o e sa it o.
T o d o s o s d i r e i t o s r e 5 e r v a d o s . in~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 9/44
r:
,.
~
r=;
r:
rr>
r
r:
Q-..
~r-
D i c a
A I N S O
A funcao AINSO permite a insercao de um elemento no array especificado em qualquer ponto da estrut
do mesmo, diferindo desta forma da funcao AADDO a qual sempre insere um novo elemento ao fina
estrutu ra ja existente.
Sintaxe - A1NS(aArray,nPosicao)
Parametres:
aArray - Array pre-existents no qual desejasse inserir um novo elemento.
nPosicao - Posicao na qual 0 novo elemento sera inserido.
Exemplo:
aAlunos : = : {"Edson';IIRobson';"Renato';IITatiana"}
AINS(aAlunos,3)
/I Neste ponto 0 array aAlunos tera 0 seguinte conteudo:
1 / {"Edson';"Robson'; nulo.Tienato.'Tatiana"}
Similar 00 eieito do funr;ao ADELO, 0 etemento inserido no array peia funr;ao AINS() tera urn coateudo nulo, s
n ec ess aria tra ta -lo a p6 s a re oiiz ac ao o es te c om a nd o.
. J i
~ ' A n o t a r o e s
M a n i p u l a f Q O d e b lo c o s d e ( o d ig o
E V A L O
A funcao EVALO e utilizada para avaliacao direta de um bloco de c6digo, utilizando as inforrnac
disponiveis no mesmo de sua execucao, Esta funcao permite a definicao e passagem de dive
para metros que serao considerados na interpretacao do bloco de c6digo.
Sintaxe - EVAL(bBloco, xParam 1,xParam2, xParamZ)
Parametrosr
bBloco - Bloco de c6digo que sera interpretado.
xParamZ - Parametres que serao passados ao bloco de c6digo. A partir da passagem do bloco, todo
demais parametres da funcao serao convertidos em parametres para a interpretacao do c6digo.
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 10/44
Exemplo:
nlnt:= 10
bBloco := {jNj x:= 10, y:= x = N , z:= y/(x*N)}
nValor:= EVAL(bBloco, nlnt)
110 retorno sera dado pela avaliacao da ultima acao da lista de expressoes. no caso "z':
1/ Cada uma das variaveis definidas em uma das acoes da lista de expressoes fica disponivel
/ 1 para a proxima acao.
I I Desta forma temos:I I N > recebe nlnt como parametro (10)
1 / X> tem atribufdo 0valor 10 (10)
/1 Y > resultado da multiplicacao de X por N (100)
I I Z > resultado a divisao de Y pela multiplicacao de X por N ( 100 1 1 0 0 ) > 1
D B E V A L O
A funcao DBEvalO permite que todos os registro de uma determinada tabela sejam analisados e para cada
registro sera executado 0 bloco de c6digo definido.
Sintaxe - Array(bBloco, bFor, bWhile)
Parametres:
bBloco - Bloco de c6digo principal, contendo as expressoes que serao avaliadas para cada registro do
alias ativo.
bFor - Condicao para continuacao da analise dos registros, com 0 efeito de uma estrutura For ...Next.
bWhile - Ccndicao para coritinuacao da analise dos registros, com 0efeito de uma estrutura While ...End
ExemploOl
Considerando 0trecho de c6digo abaixo:
dbSelectArea ("SX5")
dbSetOrder(l )
dbGotopO
While !EofO .And. X5_FllIAL == xFilial("SX5") .And.; X5_TABELA <=mv_par02
nCnt++
dbSkipOEnd
o mesmo pode ser re-escrito com a usa da funcao DBEVALO:
dbEval( {jxj nCnt++ UjIX5_FILlAL==xFilial("SX5") .And. X5_TABELA<=mv_par02})
1 62 . p r o g r a m o ( a a e m A D V P l Todm a s direit05rmrvadm. m i ii i : i S l i i ? J >
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 11/44
0
r-
r:
r
r-
r-
r>
r-
r:
, . . . . . .
, r -
r
rr:
r:
r
r:
~rr-
Fique
r: atemo
,--.
rr-
r
. . . . - -
r"
r:
r
'""._
,.-.
r-
Exemplo 02
Considerando 0trecho de c6digo abaixo:
dbSelectArea("SXS")
dbSetOrder( 1}
dbGotop(}
While !EofO .And.X5~TABELA == cTabela
AADD(aTabela,{XS~CHAVE, Capital(X5~DESCRI}})
dbSkipO
End
Exemplo 02 (contlnuacao):
o mesmo pode ser re-escrito com 0usa da funcao DBEVALO:
dbEva iW I aAdd(a TabelaJ{XS~CHAVE,Capital(XS~DESCRI}})UII X5~TABELA==cTabela})
No utitizacoo da funr;oa DBEVAL() deve ser iniortnado apenas urn dos dais oarametros: bior au bWhi!e.
r:
A E V A l O
A funcao AEVALOpermite quetodos os elementos de um determinada array sejam analisados e para
elemento sera executado0
bloco de c6digo definido .
Sintaxe - AEVAL(aArray, bBloco, nlnicio, nFim)
Parametres:
aArray - Array que sera avaliado na execucao da funcao.
bBloco - Bloco de c6digo princi pal, contendo as expressoes que serao ava liadas para cada elemento
array informado.
nlnido - Elemento inicial do array, a partir do qual serao avaliados 05 blocos de c6digo.
nFim - Elemento final do array, ate 0qual serao avaliados os blocos de c6digo.
ExemploOl:
Considerando 0trecho de c6digo abaixo:
AADD(aCampos," A1~FILlAL")
AADD(aCampos,"A l~COD")
SX3->(dbSetOrder(2})
For nX:=l To Len(aCampos}
SX3->(dbSeek(aCampos[nX])}
aAdd(a Titulos,AIITrim(SX3->X3~ TITULO))
Next nX
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 12/44
o mesmo pode ser re-escrito com 0 usa da funcao AEVAL():
aEval{aCampos,{lxl SX3->(dbSeek(x)),IIF(FoundO, AAdd(aTitulos,;
AIiTrim(SX3->X3_TITULO}})})
~?!=1Y A notocoesL . 1 J '
Manipu la~ i i o d e s tr in g s
A L L T R I M O
Retorna uma string sem os espac;:os a direita e a esquerda, referente ao conteudo informado como
pararnetro.
A funcao ALLTRIMO implementa as acoes das funcoes RTRIM ("right trim") e LTRIM ("left trim").
Sintaxe - ALLTRIM(cString)
Parametres
cString String que sera avaliada para remocao dos espac;:osa direita e a esquerda.
Exemplo:
cNome := ALLTRIM(SA l->A l_NOME)
MSGINFO("Dados do campo A '_NOME:"+CRLF
"Tamanho:" + CVALTOCHAR(LEN(SA l->A '_NOME))+CRLF
"Texto:" + CVALTOCHAR(LEN(cNome)))
A S ( O
Converte uma inforrnacao caractere em seu valor de acordo com a tabela ASCII.
Sintaxe - ASC(eCaraetere}
Parametres:
cCaractere - Caraeter que sera eonsultado na tabela ASCII.
Exemplo:
USERFUNCTION NoAcento(Argl}
Local nConta := 0
Local cLetra := ""
Local eRet "_ 1111
164 P r c g m m a ( Q O e m A D V P l T o d D lO S d ir e fW S r e se r vM D I . m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 13/44
r:
r:
r·
Arg1 := Upper(Arg1)
For nConta:= 1To Len(Arg 1)
cLetra := SubStr(Arg 1, 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"
r
r
Case (Asc(cLetra) > 204 .and. Asc(cLetra) < 207) .or.;
(Asc(cLetra) > 235 .and. Asc(cLetra) < 240)
cLetra := "I "
r:Case (Asc(cLetra) > 209 .and. Asc(cLetra) < 215) .or.;
(Asc(cLetra) == 240) .or. (Asc(cLetra) > 241 .and. Asc(cLetra} < 247)cLetra := "0"
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'
EndCaser:
r
rr:
eRet := eRet+eLetra
Next
Return UPPER(cRet)
r: A T O
r:
Retorna a primeira posicao de urn caracter ou string dentro de outra string especiflcada.
Sintaxe - AT(cCaractere, cString )
Parametres:
r-
('
cCaractere - Caractere ou string que se deseja verificar
cString - String na qual sera verificada a existencia do conteudo de cCaractere.
Exemplo:
rSTATICFUNCTION NOMASCARA(cString,cMascara,nTamanho)
LOCAL cNoMascaraLOCAL n X
._ UII
.-:=0
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 14/44
IF lEmpty(cMascara) .AND.AT(cMascara,cString) > 0
FORnX := 1 TO Len(cString)
IF !(SUBSTR(cString,nX, 1) $ cMascara)
cNoMascara += SUBSTR(cString,nX,l)
ENDIF
NEXT nX
cNoMascara := PADR(ALLTRIM(cNoMascara),nTamanho)
ELSE
cNoMascara := PADR(ALLTRIM(cString),nTamanho)
ENDIF
RETURNcNoMascara
C H R O
Converte urn valor nurnero referente a uma inforrnacao da tabela ASCII no caractere que esta inforrnacao
representa.
Sintaxe - CHR(nASCII)
Parametres
nASCII C6digo ASCII do caractere
Exemplo:
#DEFINE CRLFCHR(13)+CHR(1 0) II FINAL DE LlNHA
L E N O
Retorna 0tamanho da string especificada no pararnetro.
Sintaxe - LEN(cString)
Parametres
(String. - String que sera avaliada
Exemplo:
cNome:= ALLTRIM(SA l->A l_NOME)
MSGINFO("Dados do campo A l_NOME:"+CRLF
"Tamanho:" + CVALTOCHAR(LEN(SA'->A l_NOME))+CRLF
"Texto:" + CVALTOCHAR(LEN(cNome)))
166 P m gr a m a lo a e m A D V P I T ad 05 QS dire ito l r es er va dD l. ~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 15/44
l O W E R O
r:
r:
Retorna uma string com todos as caracteres rninusculos, tendo como base a string passada c
parametro.
Sintaxe - LOWER(cString)
Parametros:
r-
r:cString String que sera convertida para caracteres minuscules.
Exemplo:
cTexto:="ADVPL"
r:MSGINFO("Texto:"+LOWER(cTexto))
R A T Or
r Retorna a ultima posicao de um caracter au string dentro de outra string especificada.
Sintaxe - RAT(cCaractere, cString)
r: Parametros
cCaractere - Caractere ou string que se deseja verif icar
cString - String na qual sera verificada a existencla do conteudo de cCaractere.
S T U F F O
Permite substituir um conteudo caractere em uma string ja existente, especificando a posicao inicial
esta adicao e 0 numero de caracteres que serao substitufdos ..
r:Sintaxe - STUFF(cString, nPoslnicial, nExcluir, cAdicao)
Parametres:
Exemplo:
cLin := Space(l OO)+cEOLIICria a string baser:r: cCpo:= PADR(SA l-e-A l_FILlAL(02) II lnformacao que sera armazenada na string
cLin := Stuff(cLin,Ol ,02,cCpo) II Substitui 0 conteudo de cCpo na string base
('
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 16/44
S U B S T R O
Retorna parte do conteudo de uma string especificada, de acordo com a posicao inicial deste conteudo
na string e a quantidade de caracteres que devera ser retornada a partir daquele ponto (inclusive).
Sintaxe - SUBSTR(cString, nPoslnicial, nCaracteres)
Para metros:
cString - String que se deseja verif icar
nPoslnicial- Posicao inicial da inforrnacao que sera extrafda da stringnCaracteres - Quantidade de caracteres que devera ser retornada a partir daquele ponto (inclusive).
Exemplo:
cCampo :="A 1_NOME"
nPosUnder := AT(cCampo)
cPrefixo:= SUBSTR(cCampo, 1, nPosUnder) II $'A 1_"
U P P E R O
Retorna uma string com todos os caracteres rnaiusculos, tendo como base a string passada como
~~m~~
Sintaxe - UPPER{cString)
Parametres:
cString - String que sera convertida para caracteres maiusculos.
Exemplo:
cTexto :="advpl"
MSGINFO("Texto:"+LOWER(cTexto))
. $
r~]:nota(oes
1 6 8 P r o g mm a ) i i O e m A D V I ' L TadDiO! diN. i toHeserMdDl .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 17/44
M a n ip u la fa o d e v a r i t i v e i s numerlcas
r: A B S O
rRetorna um valor absoluto (independente do sinal) com base no valor especificado no pararnetro.
Sintaxe - ABS(nValor)
Parametres
r-
r:
nValor - Valor que sera avaliado
Exemplo:r:
r:
nPessoas := 20
nLugares := 18
IF nPessoas < nLugaresMSGINFO("Existem "+CVALTOCHAR(nLugares- nPessoas)+"disponiveis")
ELSE
MSGSTOP("Existem "+CVALTOCHAR(ABS{nLugares- nPessoas))+"faltando")
ENDIF
I N T O
Retorna a parte inteira de um valor especificado no parametro.
Sintaxe - INT{nValor)
Parametres.
nValor- Valor que sera avaliado
, .-.
Exemplo:
r:STATICFUNCTION COMPRAR(nQuantidade)
LOCAL nDinheiro:= 0.30
LOCAL nPrcUnit := 0.25
r:IF nDinheiro >= (nQuantidade*nPrcUnit)
RETURN nQuantidade
ELSEIFnDinheiro > nPrcUnit
nQuantidade := INT(nDinheiro / nPrcUnit)
r:
r:
ELSE
nQuantidade := 0
ENDIF
RETURNnQuantidade
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 18/44
N O R O U N D O
Retorna um valor, truncando a parte decimal do valor especificado no pararnetro de acordo com
quantidade de casas decimais solicitadas.
Sintaxe - NOROUND(nValor, nCasas)
Parametres:
nValor - Valor que sera avaliado
nCasas - Numero de casas decimais validas, A partir da casa decimal especificada os valores seraodesconsiderados.
Exemplo:
nBase := 2.985
nValor:= NOROUND(nBase,2) $2.98
R O U N D O
Retorna um valor, arredondando a parte decimal do valor especificado no pararnetro de acordo com
quantidades de casas decimais solicitadas, util izando 0criterio mate matico.
Sintaxe - ROUND(nValor, nCasas)
Parametres:
nValor - Valor que sera avaliado
nCasas - Nurnero de casas decimais validas. As demais casas decimais sofrerao 0 arredondamento
matematico. aande:
Se nX <= 4 > 0, senao +1 para a casa decimal superior.
Exemplo:
nBase := 2.985
nValor:= ROUND(nBase,2) $2.99
$
~ Ano ta foes
170 P r a g r a m a s o o e m A D V P l T o d o s o s d i r e i t o s r e s e f l ' o d o s .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 19/44
- M a n ip u la fO o d e a rq u i v o s
S E l E C T { )
Determina 0 nurnero de referenda de um determinado alias em um ambiente de trabalho. Caso 0
especificado nao esteja em uso no ambiente, sera retornado 0 va lor 0 (zero).
Sintaxe - Select(cArea)
r Parametros:
cArea Nome de referenda da area de trabalho a ser verificada
Exemplo:
r: nArea := Select("SA 1")
ALERT("Referencia do alias SA1:" +STRZERO(nArea,3)) II $10 (proposto)
D B G O T O O
r: Move 0 cursor da area de trabalho ativa para 0 record number (recno) especificado, realizando
posicionamento direto, sem a necessidade uma busca (seek) previo.r:
Sintaxe - DbGoto(nRecno)
Parametres:
nRecno - Record number do registro a ser posicion ado.
Exemplo:
DbSelectArea("SA 1")
DbGoto(l 00) II Posiciona no registro 100
r:IF !EOFOII Se a area de trabalho nao estiver em final de arquivo
Msglnfo{"Voce esta no cliente:" +A '_NOME)
ENDIF
D B G O T O P O
r:Move 0 cursor da area de trabalho ativa para 0 primeiro registro loqico,
r: Sintaxe - DbGoTopO
Parametros:
Nenhum
Exemplo:
nCount:= 0 //Variavel oara verificar nuan+nc rpnktm<: h~ nr. int"'r\l~11"\
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 20/44
ObSelectArea("SA 1")
ObSetOrder(l) II A'_FILlAL + A '_COO + Al_LOJA
ObGoTopO
While !BOFOII Enquanto nao for 0 inkio do arquivo
nCount++ II Incrementa a variavel de controle de registros no intervale
ObSkip(-l )
End
Msglnfo("Existem :"+STRZERO(nCount,6)+ "registros no intervalo").
II Retorno esperado :000001,pois 0ObGoTop posiciona no primeiro registro.
D B G O B O T T O N O
Move 0 cursor da area de trabalho ativa para 0 ultimo registro 16gico.
Sintaxe - ObGoBottonO
Parametres:
Nenhum.
Exemplo:
Count:= 0 IIVariavel para verificar quantos registros ha no intervalo
ObSelectArea("SA 1 / 1 )
DbSetOrder(l) II A '_FILIAL + A '_COO + Al_LOJA
ObGoBottonO
While !EOFOII Enquanto nao for 0 inicio do arquivo
nCount++ II Incrementa a variavel de controle de registros no intervale
ObSkip(l}End
Msglnfo("Existem ;"+STRZERO{nCount,6)+ "reqistros no intervalo").
II Retorno esperado :00000', pois 0DbGoBotton posiciona no ultimo reqistro,
D B S E L E C T A R E A O
Define a area de trabalho especificada com sendo a area ativa. Todas as operacoes subsequentes que
fizerem referenda a uma area de trabalho a utilizacao, a menos que a area desejada seja informada
explicitamente.
Sintaxe - ObSelectArea(nArea I cArea}
Parametros:
nA rea - Valor nurnerico que representa a area desejada, em funcao de todas as areas ja abertas pela
aplicacao, que po de ser utilizado ao inves do nome da area.
cA rea - Nome de referenda da area de trabalho a ser selecionada.
172 P r o g m m o ( i i o e m A V V P [ T a d o s as d i r e i t o s r e s e r v e o o s . mlc~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 21/44
Exemplo 01:DbselectArea(nArea),,-.
r
rr-
nArea := Select("SA 1") II > 10 (proposto)
DbSelectArea(nArea) II De acordo com 0 retorno do comando SelectO
r:
ALERT("Nome do cliente: "+A l_NOME)IIComo 0 SA1 eo alias selecionado, os comandosII a partir da selecao do alias compreendem que ele
II esta implicito na expressao, 0 que causa 0mesmo
II efeito de SAl->A l_NOME
Exemplo 01: DbselectArea(cArea)
r
r
r
DbSelectArea("SA 1") II Especificacao direta do aIias que deseja-se selecionar
r
ALERT("Nome do cliente: "+A l_NOME) II Como 0SA1 eo alias selecionado, os comandos
Ira partir da selecao do alias compreendem que ele
II esta irnplicito na expressao, 0que causa 0mesmoII efeito de SAl->A l_NOME
D B S E T O R D E R O
r:
Define qual fndice sera utilizada pela area de trabalho ativa, ou seja, pela area previamente selecion
atraves do comando DbSelectAreaO. As ordens disponfveis no ambiente Protheus sao aquelas defin
no SINDEX I S I X , ou as ordens disponibilizadas por meio de indices temporaries.
Sintaxe - DbSetOrder(nOrdem)
Parametres:
nOrdem - Numero de referenda da ordem que deseja ser definida como ordem ativa para a are
trabalho.
Exemplo:r-.
DbSelectArea("SA 1")
DbSetOrder(l) II De acordo com 0arquivo SIX -> A l_FILlAL+A l_COD+A '_LOJA
D B O R D E R N I C K N A M E O
r:Define qual indice criado pelo usuario seja utilizado. 0 usuario pode incluir os seus pr6prios indices
momento da inclusao deve criar 0NICKNAME para 0mesmo.
Sintaxe - DbOrderNickName(NickName)
Parametres:
- NickName - NickName atribuido ao fndice criado pelo usuario
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 22/44
Exemplo:
DbSelectArea("SA 1")
DbOrderNickName("Tipo") II De acordo com a arquivo SIX -> A '_FILlAL+A 1_TIPO
NickName:Tipo
D B S E E K O E M S S E E K { )
DbSeek(): Permite posrcionar 0 cursor da area de trabalho ativo no registro com as inforrnacces
especificadas na chave de busca, fornecendo um retorno 16gico indicando se 0 posicionamento foi
efetuado com sucesso, ou seja, se a inforrnacao especificada na chave de busca foi localizada na area detrabalho.
Sintaxe - DbSeek(cChave, ISoftSeek, ILast)
Parametres:
(Chave - Dados do registro que deseja-se localizar, de acordo com a ordem de busca previamente
especificada pelo cornando DbSetOrderOr ou seja, de acordo com 0 fndice ativo no momenta para a area
de trabalho.
ISoftSeek - Define se0cursor ficara posicionado no proximo registro valido.ern relacao a chave de buscaespecificada,ou em final de arquivo,caso nao seja encontrada exatamente a inforrnacao da chave. Padrao
S.F.
ILast - Define se 0 cursor sera posicionado no primeiro ou no ultimo registro de um intervalo com as
mesmas inforrnacoes especificadas na chave. Padrao S.F.
Exemplo 01 _ Busca exata
DbSelectArea("SA 1")
DbSetOrder(l) II acordo com 0arquivo SIX -> A l_FILlAL+A '_COD+A l_LOJA
IF DbSeek("01" +"000001" + 1 1 0 2 " ) II Filial:Ol, C6digo: 000001, Loja:02
Msglnfo("Cliente localizado.rConsulta por cliente")
Else
MsgAlert("Cliente nao encontrado'<Consulta por diente")
Endif
Exemplo 02 _ Busca aproximada
DbSelectArea("SA 1")
DbSetOrder(l) II acordo com 0arquivo SIX ~>Al_FILlAL+A l_COD+A l_LOJA
DbSeek("0 1" + "000001 II+ "02':.T.) I I Filial: 01, C6digo: 000001, Loja: 02
II Exibe os dados do c1iente localizado, 0 qual pode nao ser 0especificado na chave:
174 Prog ramaS i ioemADVPl T a d o lO I o i re i to s r e le r va d o l. m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 23/44
r:
r:
Msglnfo("Dados do cliente localizado:"+CRLF +;
"Filial:"} AlJILIAL + CRLF+;
"Codiqo:" + A l~COD + CRLF+;
"Loja:"
"Nome:"
+ A 1~LOJA + CRLF+;
+ A l~NOME + CRLF,"Consulta por cliente")
r-MsSeek(): Funcao desenvolvida pela area de Tecnologia da Microsiga, a qual possui as mefuncionalidades basicas da funcao DbSeek(}, com a vantagem de nao necessitar acessar novame
base de dados para localizar uma inforrnacao ja utilizada pela thread (conexao) ativa.
Desta forma, a thread rnantern em memoria os dados necessaries para reposicionar os registr
localizados atraves do comando DbSeek (no caso 0Recno{)) de forma que a apllcacao pode simplesm
efetuar 0 posicionamento sem executar nova mente a busca.
Ad iferenca entre 0DbSeekO e 0MsSeekO e notada em aplicacoes com grande volume de posicioname
como relatorios. que necessitam referenciar diversas vezes 0mesmo registro durante uma execucao
D B S K I P O
Move 0 cursor do registro posicion ado para 0 proximo (ou anterior dependendo do para metro
funcao da ordem at iva para a area de trabalho.
Sintaxe - DbSkip(nRegistros)
Parametres:
nRegistros - Define em quantos registros 0cursor sera deslocado. Padrao $1
Exemplo 01 - Avancando registros
DbSelectArea("SA 1")
DbSetOrder(2) II A l_FILIAL + A l_NOMEDbGotopO II Posiciona 0 cursor no inicio da area de trabalho ativa
While !EOFOII Enquanto 0 cursor da area detrabalho ativa nao indicarfim de arquivo
Msglnfo("Voce esta no cliente:" + A l_NOME)
DbSkipO
End
Exemplo 02 - Retrocedendo registros
r DbSelectArea("SA 1")
Db$etOrder(2) II A l_FILIAL + A l~NOME
DbGoBottonO /1 Posiciona 0 cursor no final da area de trabalho ativa
While !BOFO II Enquanto 0 cursor da area de trabalho ativa nao indicar inlcio de arquivo
Msglnfo("Voce esta no cliente:" + A l~NOME)
DbSkip(-l)
End
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 24/44
D B S H F I L T E R O
Define um filtro para a area de trabalho at iva, 0 qual pode ser descrito na forma de um bloco de c6digo
ou at raves de uma expressao simples.
Sintaxe - DbSetFilter(bCondicao, cCondicao)
Parametres:
bCondicao _.Bloca de expressa a condicao de filtro em forma executavel
cCondicao - Expressao de filtro simples na forma de string
Exemplo 01 - Filtro com bloco de c6digo
bCondicao:= { I I A '_COD >="000001" .AND. A'_COO <="001000"}
DbSelectArea("SA 1")
DbSetOrder(l )
DbSetFilter(bCondicao)
DbGoBottonO
While !EOFO
Msglnfo("Voce esta no diente:" +A 1_COD)
DbSkipO
End
110 ultimo cliente visuallzado deve ter 0c6digo menor do que "00 1000':
Exemplo 02 - Filtro com expressao simples
cCondicao:="A1_COD >='OOOOOl'.AND.Al COD <='001000'"
DbSelectArea("SA 1")
DbSetOrder(l }
DbSetFilterCcCondicao)
DbGoBottonO
While !EOFO
Msglnfo("Voce esta no cliente:" +A 1_COD)
DbSkipO
E n d
110 ultimo diente visualizado deve ter 0 c6digo menor do que"OOl 000':
T o d o s o s o i r e i r o s r e s e r " a d m .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 25/44
D B S T R U C T O
Retorna um array contendo a estrutura da area de trabalho (alias) ativo. A estrutura sera um
bidimensional conforme abaixo:
10 * Nome campo Tipo campo Tamanho Decimais
"lndice do array
Sintaxe . DbStructO
Parametres:r:r Nenhum.
Exemplo:
cCampos::="!IDbSelectArea("SA 1t i l
aStructSA 1 := DbStructO
FORnX := 1to Len(aStructSA 1)
r cCampos += aStructSA 1 [nX][l] - t -" / "
r
NEXTnX
ALERT(cCampos)
R E C l O C K O
Efetua 0 travamento do registro posicionado na area de trabalho at iva, permitindo a lndusao ou alt
das lnforrnacoes do mesmo.
Sintaxe - RecLock(cAlias,llndui)
Parametres:
r:(Alias - Alias queidentifica a area de trabalho que sera manipulada.
IInclui - Define se a operacao sera uma indusao (.T.)ou uma alteracao (.F.)
Exemplo 01 - Inclusao
rDbSelectArea("SA 1 " )
RecLock("SA 1 ' ; . T . )
SA1->A1_FILIAL :.= xFilial("SA 1") /1 Hetoma a filial de acordo com as confiquracoes do EHP
SAl->Al_COD :="900001"
SAl->A l_LOJA := "01"
MsUnLockO 1 / Confirma e finaliza a operacao
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 26/44
Exemplo 02 - Alteracao
DbSelectArea("SA 1 ")
DbSetOrder(l) // A l_FILIAL + A1_COD + Al_LOJA
DbSeek("Ol" + "90000 1"+ "01") // Busca exata
IF FoundO 1 / Avalia 0 retorno do ultimo DbSeek realizado
RecLock("SA 1';.F.)
SAl->A l_NOME :="CLIENTE CURSOADVPL BAsICO"
SAl->A l_NREDUZ :="ADVPL BAsICO"
MsUnLockO // Confirma e finaliza a operacaoENDIF
A linguagem ADVPL possui variacoes da funcao Recl.ockl), as quais sao:
- RLOCKO
- DBRLOCKO
A sintaxe e a descrlcao destas funcoes estao disponiveis no Guia de Referencia Rapido ao final deste
material.
M S U N L O C K O
Libera 0 travamento (lock) do registro posicionado confirmando as atualizacoes efetuadas neste
registro.
Sintaxe - MsUnLockO
Parametres:
Nenhum
Exemplo:
DbSelectArea("SA 1")
DbSetOrder(l) /1 A l_FILIAL + Al_COD + A l_LOJA
DbSeek(IOl" + "900001" +"01 ") II Busca exata
IF FoundO II Avalia 0 retorno do ultimo DbSeek realizado
RecLock("SA 1';.F.)
SAl->A '_NOME :="CLIENTE (URSa ADVPL BASI(O"
SAl->A l_NREDUZ :="ADVPL BAsICO"
MsUnLockO /1 Confirma e finaliza a operacao
ENDIF
A linguagem ADVPL possui variacoes da funcao MsUnlockO, as quais sao:
- UNLOCKO
- DBUNLOCKO
- DBUNLOCKALLO
178 Progromof i ioemADVPl
-:~t o d o s as d i r e it o s r e s e r v o d o l . mftJ~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 27/44
A sintaxe e a descricao destas funcoes estao disponfveis no Guia de Referencia Rapido ao final
material.
S O H L O C K O
Permite a reserva do registro posicionado na area de trabalho ativa de forma que outras oper
com excecao da atual, nao possam atualizar este registro. Difere da funcao RecLoekO pois nao gerobrlqacao de atualizacao, e pode ser sueedido por ele.
r:
r
r>.
r:
Na aplicacao ERPProtheus, 0 SoftLockO e utilizado nos browses, antes da confirrnacao da operac
alteracao e exdusao. pois neste momento a rnesrna ainda nao foi efetivada, mas outras conex6e
podem acessar aquele registro pois 0 mesmo esta em rnanutencao, 0 que implementa da integrida
inforrnacao,
Sintaxe - SoftLoek(eAlias)
Parametres:
cAlias - Alias de referenda da area de trabalho ativa, para 0qual 0 registro posieionado sera travad
Exemplo:
r
r:
r
eChave .: = GetClienteO / 1 Funcao ilustrativa que retorna os dados de busea de um cliente
DbSeleetArea("SA 1")
DbSetOrder( 1)
DbSeek(eChave)
IF FoundO
SoftloekO // Reserva 0 registroloealizado
IConnrma:= AlteraSA 10 II Funcao ilustrativa que exibe os dados do registro
IIposieionado e pemite a alteracao dos mesmos.
IF IConfirma
RecLock("SA 1 ' ; . F . )
GravaSA 10 IIFuncao ilustrativa que altera os dados conforme a AlertaSA 1()
MsUnLockO IILiberado 0 RecLoekO eo SoftLockO do registro.
Endif
Endif
D B D E L E T E O
r
r
Efetua a exclusao logica do registro posicionado na area de trabalho at iva, sendo necessaria sua util
em conjunto com as funcoes RecLockO e MsUnLoekO.
Sintaxe - DbDeleteO
Parametres:
r:
r:
Nenhum.
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 28/44
Exemplo:
DbSelectArea("SA 1")
DbSetOrder(1) II A1_FILIAL + A1_COD + A l_LOJA
DbSeek("Ol" + "900001" + "01 ") II Busca exata
IF FoundO
RecLock("SA l';.F.) II Define que sera realizada uma alteracao no registro posicionado
DbDeleteO II Efetua a exclusao 16gica do registro posicionado.
MsUnLockO II Confirma e finaliza a operacao
ENDIF
D B U S E A R E A O
Define um arquivo de base de dados como uma area de trabalho disponivel na aplicacao,
Sintaxe - DbUseArea(lNovo, cDriver, cArquivo, cAlias, IComparilhado,; ISoLeitura)
Parametres:
INovo - Parametro opcional que permite que se caso 0 cAlias especificado ja esteja em usc, ele seja
fechado antes da abertura do arquivo da base de dados ..
cDriver - Driver que permita a aplicacao manipular 0arquivo de base de dados especificado. A aplicacao
ERPpossui a variavel ~LOCALDRIVER definida a partir das confiquracoes do .ini do server da aplicacao,
lgu mas chaves va Iidas:IDBFCDX';"CTREECDX';"DBFCDXAX';"TOPCONN':
cArquivo - Nome do arquivo de base de dados que sera aberto com 0alias especificado.
cAlias - Alias para reference do arquivos de base de dados pela aplicacao.
IComparilhado - Se 0arquivo podera ser utilizado por outras conex6es.
ISoLeitura - Se 0 arquivo podera ser alterado pela conexao ativa.
Exemplo:
DbUserArea{.T.,"DBFCDX';"\SA 101ODBF';"SA 1DBF':.T.,.F.)
DbSelectArea("SA 1DBF")
Msglnfo("A tabela SA101O.DBF possui:" + STRZERO(RecCountO,6) + II registros.")
DbCloseAreaO
D B C l O S E A R E A ( )
Permite que um alias presente na conexao seja fechado, 0que viabiliza seu reuso em outro operacao. Este
camanda tem efeito apenas no alias ativo na conexao, senda necessaria sua utilizacao em conjunto com
o comando DbSelectAreaO.
Sintaxe - DbCloseAreaO
Parametres:
Nenhum
180 P ro gm m O fa a e m A D V P I T o d o s o s d i r e it o s r e sl . 'r v a d o ! .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 29/44
r
-r'
r
r:r:
r:
r:
»<r
r
r
r:
r:
r:r:
Exemplo:
DbUserArea(.T.,"DBFCDX';"\SA 101ODBF';"SA 1DBF';.T.,J.)
DbSelectArea("SA 1DBF")
Msglnfo("A tabela SA101O.DBF possui:" + STRZERO(RecCountO,6) +" registros.")
DbCloseAreaO
r - " 1 FlJAnotafoes
Con t ro le de nume ra fii o seaiiendo;
G E T S X E N U M O
Obtern 0 nurnero sequencia do alias especlficado no pararnetro, atraves da referenda aos arquiv
sistema SXE/SXF ou ad servidor de nurneracao, quando esta confiquracao esta habilitada no am
Protheus.
Sintaxe - GETSXENUM(cAlias, cCampo, cAliasSXE, nOrdem)
Para metros;
cAlias - Alias de referenda databela para a qual sera efetuado 0controle da nurneracao sequencla
cCampo - Nome do campo no qua I esta implementado 0 controle da numeracao,
cAliasSXE- Pararnetro opcional, quando 0nome do alias nos arquivos de controle de nurneracao
nome convencional do alias para 0sistema ERP.
nOrdem - Nurnero do fndice para verificar qual a pr6xima ocorrencia do nurnero,
( O N F I R M 5 X E O
Confirma 0 nurnero alocado atraves do ultimo comando GETSXENUMO.
Sintaxe - CONFIRMSXE(IVerifica)
Parametres:
IVerifica - Verifica se 0 nurnero confirmado nao foi alterado, e par consequencia ja
existe na base de dados.
R O l l B A { K 5 X E ( }
Descarta a nurnero forneddo pelo ultimo comando GETSXENUMO, retornando a numeracao disp
para outras conex6es.
Sintaxe - ROLLBACKSXEO
Parametres:
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 30/44
Val ida{ i io
E X I S T C H A V O
Retorna .T .ou .F.se0conteudo especlficado existe no alias especificado. Caso exista sera exibido um help
de sistema com um aviso informando da ocorrencia.
Funcao utilizada narmalmente para verificar se um determinado c6digo de cadastro ja existe na tabela na
qual a informacao sera inserida, como por exemplo 0 CNPJ no cadastro de dentes ou fornecedores.
Sintaxe - ExistChav(cAlias, cConleudo, nlndice)
Parametres:
cAlias - Alias de referenda para a validacao da inforrnacao.
cConteudo - Chave a ser pesquisada, sem a filial.
nlndice - fndice de busca para consulta da chave.
E X I S T C P O O
Retorna .T.ou .F . se 0conteudo especificado nao existe no alias especificado. Caso nao exista sera exibido
um help de sistema com urn aviso informando da ocorrencia.
Funcao utilizada normalmente para verificar se a inforrnacao digitada em um campo, a qual depende
de outra tabela, realmente existe nesta outra tabela, como par exemplo 0 c6digo de um cliente em um
pedido de venda.
Sintaxe - ExistCpo{cAlias, cConteudo, nlndice)
Parametres:
cAlias - Alias de referencia para a valldacao da inforrnacao.
cConteudo - Chave a ser pesquisada, sem a filial.
nlndice - fndice de busca para consulta da (have.
N A O V A Z I O O
Retorna .T . ou .F.se 0 conteudo do campo posicionado no momento nao esta vazio.
Sintaxe - NaoVazioO
Parametres:
Nenhum.
1 8 2 I 'r o g rO l T l o ra o e m A D V P l T o d o s o s d i r e i t o s r e s e r V t l d o s .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 31/44
r:
r:N E G A T I V O O
Retorna .T.ou .F.se0 conteudo digitado para 0 campo e negativo.
r-Sintaxe - NegativoO
Parametres:r:
r:
r:
Nenhum.
P E R T E N C E O
Retorna .T . ou .F.se 0 conteudo digitado para 0 campo esta contido na string definida como para
da funcao. Narmalmente utilizada em campos com a opcao de combo, pais caso contrario seria ut
a funcao ExistCpot).
Sintaxe - Pertence(cString}
Parametres:
cString - String contendo as inforrnacoes validas que podem ser digitadas para um campo.
P O S I T I V O O
Retorna .Lou J, se 0 conteudo digitado para 0 campo e positivo.
Sintaxe - PositivoO
Parametres:
Nenhum.
T E X T O O
Retorna.T. ou .F.se0 conteudo digitado para 0 campo contern apenas nurneros ou alfanumericos.
- Sintaxe - TextoO
Parametres:
Nenhum.
r:
r: V A Z I O O
Retorna .T . ou J, se 0 conteudo do campo posicionado no momenta esta vazio.
Sintaxe -VazioO
Parametres:
Nenhum.
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 32/44
P a r o m e t r o s
G E T M V O
Retorna 0 conteudo do para metro especificado no arquivo SX6, considerando a filial parametrizada ria
conexao. Caso 0para metro nao exista sera exi bide um hel p do sistema informa ndo a ocorrencia.
Sintaxe - GETMV(cParametro)
Parametres:
cParametro - Nome do pararnetro do sistema no SX6, sem a especificacao da filial de sistema.
G E f N E W P A R O
Retorna 0 conteudo do pararnetro especificado no arquivo SX6, considerando a filial parametrizada na
conexao. Caso 0pararnetro nao exista sera exibido u m help do sistema informando a ocorrencia.
Difere do SuperGetMVO pols considera que 0 pararnetro pode nao existir na versao atual do sistema, e
por consequenc!a nao sera exibida a mensagem de help.
Sintaxe - GETNEWPAR(cParametro, cPadrao, cFilial)
Parametres:
cParametro - Nome do pararnetro do sistema no SX6, sem a especificacao da filial de sistema.
cPadrao - Conteudo padrao que sera utilizado caso 0para metro nao exista no SX6.
cFilial- Define para qual filial sera efetuada a consulta do parametro, Padrao $fil ial corrente da conexao.
P U T M V O
Atualiza 0 conteudo do pararnetro especificado no arquivo SX6, de acordo com as pararnetrizacoes
inforrnadas,
Sintaxe - PUTMV(cParametro, cConteudo)
Parametres:
cParametro - Nome do para metro do sistema no SX6, sem a especificacao dafilial de sistema.
cConteudo - Conteudo que sera atribuldo ao para metro no SX6.
S U P E R G H M V O
Retorna 0 conteudo do pararnetro especificado no arquivo SX6, considerando a filial parametrizada na
conexao. Caso 0 para metro nao exista sera exibido um help do sistema informando a ocorrencia.
Difere do GetMvO pois os parametres consultados sao adicionados em uma area de mem6ria,que permite
que em uma nova consulta nao seja necessario acessar e pesquisar 0pararnetro na base de dados.
184 P ro gm m afO Q e m A OV PL
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 33/44
rr:
r:
r:
rr:
r:
r:
r:
r:
r
r:
r
r:
r:
r:
r:
r:
r:
r
r:
Sintaxe - SUPERGETMV(cParametro, IHeip ,cPadrao, cFilial)
Parametres:
cParametro - Nome do pararnetro do sistema no SX6,sem a especificacao da filial de sistema,
IHelp- Se sera exibida a mensagem de Help caso 0 parametro nao seja encontrado no SX6,
cPadrao -Conteudo padrao que sera utilizado caso 0 pararnetro nao exista no SX6,
cFilial- Define para qual filial sera efetuada a consulta do pararnetro, Padrao Sfilial corrente da con
tomponemes d a in te rfa ce v isu a l
M S D I A L O G O
. Define 0 componente MSDIALOGO, 0qual e utilizado como base para os demais componentes da int
visual, pols um componente MSDIALOGO e uma janela da aplicacao.
Sintaxe - DEFINE MSDIALOG oObjetoDLG TITLE cTitulo FROM nLinlni,nCollni TO nLiFim,nColFim
oObjetoRef UNIDADE
Parametres:
oObjetoDLG - Posicao do objeto Say em funcao da janela em que ele sera definido,
cTitulo Titulo da janela de dialcqo.
nLinlni, nColini - Posicao inicial em linha / col una da janela.
nLiFim, nColFim - Posicao final em linha / coluna da janela.
oObjetoRef - Objeto dialog no qual a janela sera definida.
UNIDADE - Unidade de medida das dirnensoes: PIXEL
Exemplo:
DEFINE MSDIALOG oDlg TITLE cTitulo FROM 000,000 TO 080,300 PIXEL
ACTIVATEMSDIALOG oDlg CENTERED
M S G E T O
Define 0 componente visual MSGET,o qual e utilizado para captura de informacoes diqitaveis na
interface.
Sintaxe - @ nLinha, nColuna MSGET VARIAVEL SIZE nLargura,nAltura UNIDADE OF oObjetoRef
VALID VALID WHEN WHEN PICTUREcPicture
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 34/44
Parametres:
nLinha, nColuna - Posicao do objeto MsGet em funcao da janela em que ele sera definido.
VARIAVEL - Variavel da apl icacao que sera vinculada ao objeto MsGet, que defi n ira suas caracteristicas e
na qual sera armezanado 0 que for informado no campo.
nLargura,nAltura - Dirnensoes do objeto MsGet para exibicao do texto.
UNIDADE - Unidade de medida das dimensoes:PIXEL
oObjetoRef - Objeto dialog no qual 0componente sera definido.
cF3 - String que define a consulta padrao que sera vinculada ao campo.
VALID - Funcao de validacao para 0 campo.
WHEN - Condicao para manipulacao do campo,a qual pode ser diretamente.T. ou .F.,ou uma variavel ouuma chamada de funcao,
cPicture - String contendo a definicao da Picture de dlqitacao do campo.
Exemplo:
@010,050 MSGET cCGC SIZE 55, 11 OF 0019 PIXELPICTURE "@R99.999.999/9999-99";
VALID !VazioO
S A Y O
Define 0componente visual SAY,o qual e utilizado para exibicao de textos em uma tela de interface.
Sintaxe - @nUnha, nColuna SAYcTexto SIZE nLargura,nAltura UNIDADE OF oObjetoRef
Parametros:
nLinha, nColuna - Posicao do objeto Say em funcao da janela em que ele sera definido.
cTexto - Texto que sera exibido pelo objeto Say.
nLargura,nAltura - Dirnensoes do objeto Say para exibicao do texto.
UNIDADE - Unidade de medida das dirnensoes: PIXEL
oObjetoRef - Objeto dialog no qual 0 componente sera defmido.
Exemplo:
@010,010 SAY cTexto SIZE55,07 OF oOlg PIXEL
B U T T O N O
Define 0componente visual Button,o qual permite a inclusao de botoes de operacao na tela da interface,
os quais serao visualizados somente com um texto simples para sua identificacao.
Sintaxe - BUTTONO
@nl.lnha.nt.oluna BUTTON cTexto SIZE nLargura,nAltura UNIOADE OF oObjetoRef
ACTION A(.Ao
Parametres:
nLinha,nColuna - Posicao do objeto Button em funcao da janela em que ele sera definido.
cTexto - String contendo 0 texto que sera exibido no botao,
nlargura,nAltura - Dlrnensoes do objeto Button para exibicao do texto.
186 P r o g m m C ( c i D em A D V P L T o d D S o s d i r e it o u e s f T l l t ld o s .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 35/44
r
r
r:
UNIDADE - Unidade de medida das dirnensoes: PIXEL
oObjetoRef - Objeto dialog no qual 0 componente sera definido.
A c ; A .O - Funcao ou lista de express6es que define 0comportamento do batao quando ele for utiliz
r:
r-
Exemplo:
010, 120 BUTTON"Confirmar" SIZE080,047 PIXEL OF oDlg;ACTION (nOpca := l,oDlg:End())
r
r
r
r
r:
rr:
S B U T T O N O
Define 0companente visual SButton,o qual permite a inclusao de botoes de operacao na tela da int
os quais serao visualizados dependendo da interface do sistema ERP utilizada somente com um
simples para sua identlficacao.ou com uma imagem (BitMap) pre-definido,
Sintaxe ~SBUTTONO
DEFINE SBUTTON FROM nLinha,nColuna TYPE N ACTION AC;Ao STATUSOF oObjetoRet
Parametres:
r
r
nLinha, nColuna - Posicao do objeto sButton em funcao da janela em que ele sera definido.
TYPE N - Numero que indica 0 tipo do botao (imagem) pre-definlda que sera utilizada.
A c ; A .O - Funcao ou lista de expressoes que define 0comportamento do batao quando ele for utiliz
ST AT US - Propriedade de uso do botao: ENABLE ou DISABLE
oObjetoRet - Objeto dialog no qual 0 componente sera definido .
.r
Exemplo:
rr:
DEFINE SBUTTON FROM 020, 120 TYPE 2 ACTION (nOpca := 2,oDlg:EndO);
ENABLEOF oDlg
r: Visual dos diferentes tipos de botoes disponiveis
r:rr:r:
Ilpo 17 Tipn 18 TIro '9 TIpo 20 ;
_ _ _ I " .j[JlIipu 21 TIro 22 TIro 23L -, iplj·2;:;'·" IIpO L ' = " ' :
r
r:
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 36/44
I n t e r f a c e s d e c a d a s t r o
A X ( A D A S T R O { )
Sintaxe - AxCadastro(cAlias, cTitulo, cVldExc, cVldAlt)
Descricao - 0 AxCadastro(} e uma funcionalidade de cadastro simples, com poucas opcoes de
custornizacao.
M B R O W S E O
Sintaxe - MBrowse(nLinl, nColl, nLin2, nCol2, cAlias)
Descricae - A MbrowseO e uma funcionalidade de cadastro que permite a utilizacao de recursos mats
aprimorados na visualizacao e rnanipulacao das inforrnacoes do sistema.
A X P E S Q U I ' ( )
Funcao de pesquisa padrao em registros exibidos pelos browses do sistema, a qual posiciona 0 browse
no reqistro pesquisado, Exibe uma tela que permite a selecao do Indice a ser utilizado na pesquisa e a
diqitacao das intorrnacoes que com poe a chave de busca.
Sintaxe - AXPESQUIO
Parametross
Nenhum.
A X V I S U A L O
Funcao de vlsuallzacao padrao das informacoes de um registro, no formato Enchoice, conforme
demonstrado no topico sobre a interface AxCadastroO.
Sintaxe - AXVISUAL(cAlias, nReg, nOpe, aAcho, nColMens, cMensagem, cFunc,; aButtons, IMaximized )
Parametres:
eAlias - Tabela cadastrada no Dicionario de Tabelas (5X2) que sera editada
nReg- Record number (recno) do registro posicionado no alias ativo,
nOpe - Nurnero da linha do aHotlna que definira 0 tipo de edicao (Inclusao, Alteracao, Exdusao,
Visualizacao).
a.Acho - Vetor com nome dos campos que serao exibidos. Os campos de usuario sempre serao exibidos
se nao existir no pararnetro um elemento com a expressao "NOUSER".
nColMens - Parametro nao utilizado.
eMensagem - Pararnetro nao utilizado.cFunc - Funcao que devers ser utilizada para carregat as varlaveis que serao utilizadas pel a Enchoice.
Neste caso 0 parametro IVirtual e definido internamente pela AxFunctionO executada como T
aButtons - Botoes adicionais para a EnchoiceBar, no formato:
aArray[n][1] -Imagem do botao
aArrayln][2]- bloco de c6digo contendo a acao do botao
aArray[n][3]- titulo do botao
IMaximized - .Indica se ajanela devera ser ou nao maximizada
188 P r o g r a m a r i i o e m A V V P L T o d o s o ! dii~itol re l e tVadO l .
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 37/44
r
A X I N C l U I O
r:
r: Funcao de inclusao padrao das inforrnacoes de um registro, no formato Enchoice, conforme demons
no t6pico sobre a interface AxCadastroO.
Sintaxe - Axlnclui(cAlias, nReg, nOpc, aAcho, cFunc, aCpos, cTudoOk, IF3,; cTransact, aButtons, aP
aAuto, IVirtual, IMaximized)
Parametres:
r:r:
cAlias -Tabela cadastrada no Dkionario de Tabelas (SX2) que sera editada
nReg - Record number (recno) do registro posicionado no alias ativo.
nOpe - Nurnero da linha do aRotina que definira a tipo de edicao (Inclusao, Alteracao, Ex
Visualizacao).
aAcho - Vetor com nome dos campos que serao exibidos. Os campos de usuario sempre serao ex
se nao existir no para metro urn elemento com a expressao "NOUSER".
cFunc - Funcao que devera ser utilizada para carregar as variaveis que serao utilizadas pela Enc
Neste caso 0 para metro IVirtual e definido internamente pela AxFunctionO executada como .T.aCpos - Vetor com nome dos campos que pcderao ser editados
cTudoOk - Funcao de validacao de confirmacao da tela. Nao deve ser passada como 810co de Codiqo
pode ser passada como uma lista de expressoes, desde que a ultima acao efetue um retorno loqico
rr:
r:r:
r:
r:"(Funcl 0 , Func20, ...,FuncX(),.r.)"
r
r:
r:
IF3 - Indica se a enchoice esta sendo criada em uma consulta F3 para utilizar variaveis de mem6ria
eTransact - Funcao que sera executada dentro da transacao da AxFunctionO
aButtons - Botoes adicionais para a EnchoiceBar, no formato:
aArray[n][l] - Imagem do botao
aArray[n][2] - bloco de c6digo contendo a ac;:aodo botao
aArray[n][3] - titulo do botao
aParam - Funcoes para execucao em pontos pre-definidos da AxFunctionO,conforme abaixo:
aPa.ram[l] - Bloco de c6digo que sera processado antes da exibicao da interface.
aParam[2] - 81oco de c6digo para processamento na validacao da confirrnacao.
aParam[3] - 810co de c6digo que sera executado dentro da transacao da AxFunctionO.
aParam[4] - 810co de c6digo que sera executado fora da transacao da AxFunctionO.
aAuto - Array no formato utilizado pela funcionalidade MsExecAutoO. Caso seja informado este arra
sera exibida a tela de interface, e sera executada a funcao EnchAutoO.
aAuto[n][l] - Nome do campo
aAuto[n](2] - Conteudo do campo
aAuto[nU3]- Validacao que sera utilizada em substituicao as validacoes do SX3
IVirtual- Indica se a EnchoiceO chamada pela AxFunctionO utilizara variaveis de mem6ria ou os ca
da tabela na edicao
IMaximized - Indica se a janela devers ser ou nao maxi mizada
r:r:
r:
r:
r:
r:
A X A L T E R A O
Funcao de alteracao padrao das inforrnacoes de um registro, no formato Enchoice,conforme demons
no t6pico sobre a interface AxCadastroO.
Sintaxe - AXALTERA(cAlias, nReg, nOpc,aAcho,aCpos, nColMens, cMensagem,;cTudoOk, cTransact,
aButtons, aParam, aAuto,lVirtual, IMaximized)
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 38/44
Parametres:
Vide docurnentacao de para metros da funcao Axlncluil).
A X D E l E T A O
Funcao de exclusao padrao das inforrnacoes de um registro, no formato Enchoice, conforme demonstrado
no t6pico sobre a interface AxCadastroO.
Sintaxe - AXDELETA(cAlias, nReg, nOpc, cTransact, aCpos, a8uttons, aParam,; aAuto, IMaximized)
Parametres:
eAlias -Tabela cadastrada no Dkionarlo de Tabelas (SX2) que sera editada
nReg - Record number (recno) do registro posicionado no alias ativo.
nOpe - Nurnero da linha do aRotina que definira 0 tipo de edicao (lnclusao, Alteracao, Exclusao,
V isua liza cao ) .
cTransact - Funcao que sera executada dentro da transacao da AxFunctionO
aCpos - Vetor com nome dos campos que pcderao ser editados
aButtons - Botoes adicionais para a EnchoiceBar, no formato:
aArray[n][1] -> Imagem do botao
aArray[n][2] -> bloco de c6digo contendo a acao do botao
aArray[n][3] -> titulo do botao
aParam - Funcoes para execucao em pontos pre-definidos da AxFunctionO, conforme abaixo:
aParam[1] := Bloco de c6digo que sera processado antes da exibicao da interface.
aParam[2] := 810co de c6digo para processamento na validacao da confirrnacao.
aParam[3] := 810co de codiqo que sera executado dentro da transacao da AxFunctionO.
aParam[4] := Bloco de c6digo que sera executado fora da transacao da AxFunction().
aAuto - Array no formato utilizado pela funcionalidade MsExecAutoO. Caso seja informado este array, nao
sera exibida a tela de interface, e sera executada a funcao EnchAutoO.
aAuto[n][1] := Nome do campo
aAuto[n][2] := Conteudo do campo
aAuto[n][3] :=Validacao que sera utilizada em substituicao as validac;:6es do SX3
IMaximized -Indica se ajanela devera ser ou nao maximizada
/ i l~'C !1 Ano t a r o e s
1 9 0 P rc gr om a fo o e m A DV P [
--:--.,..;;;;..,.T o d o s o s d i re i to s r e se r v ad o , . m R . l u~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 39/44
r:
r:f u n { o e s v is u a is p a r a a p li c o { o e s
A L E R T ( )
Sintaxe - AVISO(cTexto)
r:Parametres:
cTexto - Texto a ser exibido
r
r:
r:
cTexto
r:
A V I S O O
r: Sintaxe - AVISO(cTitulo,cTexto, aBotoes, nTamanho)
Retorno - numerico indicando 0botao selecionado.r
Parametres:
r:cTitulo- Titulo da janela
cTexto ~Texto do avisoaBotoes - Array simples (vetor) com os botoes de opcao
nTamanho - Tamanho (1,2 au 3)
r:
r>
r:
r:
r:
r
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 40/44
F O R M B A C T H ( )
Sintaxe - FORMBATCH(cTitulo, aTexto, aBotoes, bValid, nAltura, nLargura )
Parametres:
cTitulo -Titulo da janela
aTexto - Array simples (vetor) contendo cada uma das lin has de texto que serao exibidas no corpo da
tela.
aBotoes - Array com os botoes do tipo SBUTTONO, com a seguinte estrutura:
{n'lipo.Hriable.ll] A~ao()}}
bValid (opcional) - Bloco de validacao do janela
nAltura (opcional) - Altura em pixels da janela
nLargura (opcional) - Largura em pixels da janela
...... _ .." .
, L , " · " ~ ~ · · , 0 , . j ' jCance!or
cI ex to
1 9 2 P ( o g r a m a ( o n e m A D V P L Todososd i re i t o~ r f se rvados . m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 41/44
r
M S G F U N C T I O N S O
r
r: Sintaxe - MSGALERT(cTexto, cTitulo)
Sintaxe - MSGINFO(cTexto, cTitulo)
Sintaxe - MSGSTOP(cTexto, cTitulo)
S intaxe - MSGYESNO(cTex to , ( T it u lo )
Parametres:
r:
rcTexto Texto a ser exibido como mensagem
r:
r:
r:
r:
rr-
r:
r:
cTitulo
MSGALERT
MSGINFO
MSGSTOP
MSGYESNO
Titulo da janela de mensagem
c'Iexto
cfexto
cfexto
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 42/44
Fun foes A D V P l pa ra ap li ca foes
G E T A R E A ( }
Funcao utilizada para proteger 0 ambiente ativo no momento de algum processamento especffleo. Para
salvar um a outra area de trabalho (alias) que na o 0 ativo, a funcao GetAreaO deve ser executada dentro
do alias: ALlAS~>(GetArea()).
Sintaxe - GETAREAO
Retorno: Array contendo {Alias(),lndexOrdO,Recno()}
Pararnetros
Nenhum.
R E S T A R E A O
Funcao utilizada para devolver a situacao do ambiente salva atraves db comando GETAREAO.Deve-se
observarque a ultima area restaurada e a area que ficara ativa para a aplicacao,
Sintaxe - RESTAREA(aArea)
Parametres:
aArea- Array contendo: {cAlias, nOrdem, nkecno]. normalmente gerado pelo uso da funcao GetAreaO.
Exemplo:
II ALIAS ATIVO ANTESDA EXECU\"Ao DA ROTINA $SN3
User Function XATFOOl0
LOCAL eVarLOCAL aArea : = ; 0 GetAreaO
LOCAL IRet : = ; 0 .T .
eVar:= &(ReadVarO)
dbSelectArea("SX5")
IF !dbSeek(xFiliaIO+"Zl "+cVar)
eSTROOOl:= "REAV - Tipo de Reavaliaeao"
cSTROOO2.:="Informe um tipo de reavalicao valido"
cSTR0003 := "Continuar"Aviso(cSTROOOl,cSTR0002,{cSTR0003},2.)
IRet:= .F .
ENDIF
RestArea(aArea)
Return( IRet )
T o dmO l d ir e it m r e le r «a d o l.
m~
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 43/44
r:
r:
r:
r
r:
r:
r:
r:
r:
r:
r:
r:
r:
Gestae empresarial com ERP
Ernesto Haberkorn, 2006
L6gica de Proqramacao - A Construcao de Algoritmos e Estruturas de Dados
Forbellone, Andre LuizVillar ~MAKRON, 1993
lntroducao a Proqrarnacao - 500 Algoritmos Resolvidos
Anita Lopes, Guto Garcia - CAMPUS I ELSEVIER,2002
Apostila de Treinamento - ADVPL
Educacao corporativa
Apostila de Treinamento - lntroducao a proqrarnacaoEducacao corporativa
Apostila de Treinamento - Boas Praticas de Proqrarnacao
lnteliqencia Protheus e Faorica de Software
Curso Basico de L6gica de Proqramacao
Paulo Sergio de Moraes - PUC Campinas
DEM - Documentacao Eletrbnica Microsiga
Microsiga Software SA
Materiais diversos de colaboradores Microsiga
Colaboradores Microsiga
Numero de Registro:
Pl0111007
5/11/2018 ADVPL I_pt03 - slidepdf.com
http://slidepdf.com/reader/full/advpl-ipt03 44/44