ADVPL I_pt03

44

Transcript of ADVPL I_pt03

Page 1: ADVPL I_pt03

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

Page 2: ADVPL I_pt03

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

Page 3: ADVPL I_pt03

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~

Page 4: ADVPL I_pt03

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~

Page 5: ADVPL I_pt03

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.

Page 6: ADVPL I_pt03

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

Page 7: ADVPL I_pt03

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"}

Page 8: ADVPL I_pt03

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~

Page 9: ADVPL I_pt03

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.

Page 10: ADVPL I_pt03

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 >

Page 11: ADVPL I_pt03

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

Page 12: ADVPL I_pt03

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~

Page 13: ADVPL I_pt03

5/11/2018 ADVPL I_pt03 - slidepdf.com

http://slidepdf.com/reader/full/advpl-ipt03 13/44

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

Page 14: ADVPL I_pt03

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. ~

Page 15: ADVPL I_pt03

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

('

Page 16: ADVPL I_pt03

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~

Page 17: ADVPL I_pt03

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

Page 18: ADVPL I_pt03

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~

Page 19: ADVPL I_pt03

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"\

Page 20: ADVPL I_pt03

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~

Page 21: ADVPL I_pt03

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

Page 22: ADVPL I_pt03

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~

Page 23: ADVPL I_pt03

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

Page 24: ADVPL I_pt03

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~

Page 25: ADVPL I_pt03

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

Page 26: ADVPL I_pt03

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~

Page 27: ADVPL I_pt03

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.

Page 28: ADVPL I_pt03

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~

Page 29: ADVPL I_pt03

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:

Page 30: ADVPL I_pt03

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~

Page 31: ADVPL I_pt03

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.

Page 32: ADVPL I_pt03

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

Page 33: ADVPL I_pt03

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

Page 34: ADVPL I_pt03

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~

Page 35: ADVPL I_pt03

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:

Page 36: ADVPL I_pt03

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~

Page 37: ADVPL I_pt03

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)

Page 38: ADVPL I_pt03

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~

Page 39: ADVPL I_pt03

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

Page 40: ADVPL I_pt03

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~

Page 41: ADVPL I_pt03

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

Page 42: ADVPL I_pt03

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~

Page 43: ADVPL I_pt03

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

Page 44: ADVPL I_pt03

5/11/2018 ADVPL I_pt03 - slidepdf.com

http://slidepdf.com/reader/full/advpl-ipt03 44/44