You are on page 1of 187

ADVPL

GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

ADVPL GUIA DE REFERÊNCIA

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

1

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

ÍNDICE
Conversão entre tipos de dados .................................................................................................................. 8
CTOD() ............................................................................................................................................................ 8 CVALTOCHAR() ............................................................................................................................................ 8 DTOC() ............................................................................................................................................................ 8 DTOS() ............................................................................................................................................................ 9 STOD() ............................................................................................................................................................ 9 STR() ............................................................................................................................................................. 10 STRZERO() ................................................................................................................................................... 10 VAL() ............................................................................................................................................................. 11

Matemáticas ............................................................................................................................................... 11
ACOS() .......................................................................................................................................................... 11 CEILING() ..................................................................................................................................................... 12 COS() ............................................................................................................................................................. 12 LOG10()......................................................................................................................................................... 13 SIN() .............................................................................................................................................................. 13 SQRT()........................................................................................................................................................... 13 TAN() ............................................................................................................................................................. 14

Análise de variáveis ................................................................................................................................... 14
TYPE() ........................................................................................................................................................... 14 VALTYPE() ................................................................................................................................................... 15

Manipulação de arrays.............................................................................................................................. 16
AADD() ......................................................................................................................................................... 16 ACLONE() ..................................................................................................................................................... 17 ACOPY() ....................................................................................................................................................... 17 ADEL() .......................................................................................................................................................... 18 ADIR() ........................................................................................................................................................... 18 AFILL() ......................................................................................................................................................... 19 AINS() ........................................................................................................................................................... 20 ARRAY() ....................................................................................................................................................... 20 ASCAN() ....................................................................................................................................................... 21 ASCANX() .................................................................................................................................................... 22 ASIZE() ......................................................................................................................................................... 22 ASORT() ........................................................................................................................................................ 23 ATAIL() ......................................................................................................................................................... 24

Manipulação de blocos de código ............................................................................................................. 25
EVAL() .......................................................................................................................................................... 25 DBEVAL() ..................................................................................................................................................... 25 AEVAL() ....................................................................................................................................................... 26

Manipulação de strings ............................................................................................................................. 27
ALLTRIM() ................................................................................................................................................... 27 ASC() ............................................................................................................................................................. 28 AT() ............................................................................................................................................................... 29 BITON()......................................................................................................................................................... 29 CAPITAL() .................................................................................................................................................... 29 CHR() ............................................................................................................................................................. 30 DESCEND() .................................................................................................................................................. 30 GETDTOVAL() ............................................................................................................................................. 31 ISALPHA() .................................................................................................................................................... 31 ISDIGIT() ...................................................................................................................................................... 32 ISLOWER() ................................................................................................................................................... 32
Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br SP

2

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

ISUPPER() ..................................................................................................................................................... 32 LEN() ............................................................................................................................................................. 33 LOWER() ....................................................................................................................................................... 33 LTRIM() ........................................................................................................................................................ 33 MATHC() ...................................................................................................................................................... 34 OEMTOANSI() ............................................................................................................................................. 34 PADL() / PADR() / PADC() .......................................................................................................................... 35 RAT() ............................................................................................................................................................. 35 REPLICATE() ............................................................................................................................................... 36 RTRIM() ........................................................................................................................................................ 36 SPACE() ........................................................................................................................................................ 37 STRTOKARR() ............................................................................................................................................. 37 STRTRAN() ................................................................................................................................................... 37 STUFF() ......................................................................................................................................................... 38 SUBSTR() ...................................................................................................................................................... 38 TRANSFORM() ............................................................................................................................................ 39 UPPER() ........................................................................................................................................................ 39

Manipulação de data / hora ...................................................................................................................... 40
CDOW()......................................................................................................................................................... 40 CMONTH().................................................................................................................................................... 40 DATE() .......................................................................................................................................................... 41 DAY() ............................................................................................................................................................ 41 DOW() ........................................................................................................................................................... 42 DTOC() .......................................................................................................................................................... 42 DTOS() .......................................................................................................................................................... 43 ELAPTIME() ................................................................................................................................................. 43 MONTH() ...................................................................................................................................................... 44 SECONDS() ................................................................................................................................................... 44 TIME() ........................................................................................................................................................... 45 YEAR() .......................................................................................................................................................... 45

Manipulação de variáveis numéricas ....................................................................................................... 46
ABS() ............................................................................................................................................................. 46 ALEATORIO() .............................................................................................................................................. 46 INT() .............................................................................................................................................................. 47 NOROUND() ................................................................................................................................................. 47 RANDOMIZE() ............................................................................................................................................. 48 ROUND() ....................................................................................................................................................... 48

Manipulação de arquivos .......................................................................................................................... 49
ADIR() ........................................................................................................................................................... 49 CGETFILE() .................................................................................................................................................. 50 Função Principal: SELFILE() ........................................................................................................................ 51 Função auxiliar: PARBOXFILE() ................................................................................................................. 52 Função auxiliar: MARKFILE()...................................................................................................................... 53 Função auxiliar: TROCA() ............................................................................................................................ 54 Função auxiliar: MARCAOK()...................................................................................................................... 54 CPYS2T() ...................................................................................................................................................... 55 CPYT2S() ...................................................................................................................................................... 55 CURDIR() ...................................................................................................................................................... 56 DIRECTORY() .............................................................................................................................................. 57 DIRREMOVE() ............................................................................................................................................. 58 DISKSPACE() ............................................................................................................................................... 59 EXISTDIR() ................................................................................................................................................... 59 FCLOSE() ...................................................................................................................................................... 60 FCREATE() ................................................................................................................................................... 61 FERASE() ...................................................................................................................................................... 61 FILE() ............................................................................................................................................................ 62
Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br SP

3

............ 77 ALIAS() ......................................................................................................................................................................... 74 MSERASE() ........................................................................................................................................................... 67 FT_FGOTO() ............................................................................................................ 66 FT_FEOF() ................................................................................br ............. 69 FT_FSKIP() ................................................................................................................................. 89 DBFILTER() ............................ 65 FREADSTR () ........................................................................ 70 MSCOPYFILE() ............................................... 73 MSCREATE().................................................................................................................................... 99 Av.......................................................... 94 DBORDERNICKNAME() ...................... 96 DBREINDEX() ..................................................................................................................................................................................................................................................................... 99 DBSETDRIVER() ................................................................................................................................................................................................................................................. 93 DBNICKINDEXKEY() .................................................................................................................................. 86 DBCREATEINDEX() ..........................................................com....................................................................................................................................................................................................................... 69 FT_FRECNO() ................................................................................................................................................................................................................................................................................................ 68 FT_FREADLN() .............. 84 DBCLOSEAREA() ............................................................................................................................................................................................ 97 DBRLOCK() ........................................................................................ 75 RETFILENAME() ...............................................................................................................................advpl............................................................................................................................................................................................................................................................................................................................................................................ 92 DBINFO() ........................................................................................................................................ 85 DBCREATE() ........................................................................................................................................................ 89 DBFIELDINFO() ................................................................................................................................................................................... 95 DBRECALL() ..................................................................................................................................................................................................................................................................... 98 DBRLOCKLIST() ........................................................................................................................................................................... 98 DBRUNLOCK() ....................... 70 FT_FUSE() ................0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” FILENOEXT() ............................................................................................... 84 DBCOMMIT() .............................................................................. 91 DBGOTO() .......................................................................................................................................................... 68 FT_FLASTREC() ............................... nº 608 – Metrô Conceição ...................................................................... 79 COPY STRUCTURE() ............................................................................................................................................................................................................................. 92 DBGOBOTTON() ................................................................................................................................................................................................................. 75 MSRENAME() .......... 63 FOPEN() .......................................................................................................www.............................................. 94 DBORDERINFO()........................................................................................................ 66 FSEEK()................................................................................................................................. 96 DBRECORDINFO() ............................................................................................................................................................................................................................................................................ 70 FWRITE() .......................................................................................... 82 DBCLEARFILTER() ................................................................................................................................................................... 65 FRENAME() ................................................................................................................................................. 85 DBCOMMITALL() ................................................................................. 76 Manipulação de arquivos e índices temporários................................................................................................................................ 83 DBCLEARINDEX() ............................. 76 CRIATRAB() .............................................................................................................................................. 76 Manipulação de bases de dados..................... 88 DBF() .........................................................................................................................br SP 4 ........................................................................... 95 DBPACK() .............................................. 63 FREAD() .............................................................................. 82 DBCLEARALLFILTER() .......................................................................... 73 MSCOPYTO() .... 78 COPY() ...............................................................................com........................................................................................................................................................................... 91 DBGOTOP() ........................................................ 83 DBCLOSEALL() ..........................................São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.................................................................................................................................................................... 81 DBAPPEND() .......... 67 FT_FGOTOP() .................................................................................................................. Leona rdo da Vinci.................................................................................................................................................................ADVPL GUIA DE REFERÊNCIA Versão 1......... 77 BOF() / EOF() ....................................................................................................................................................... 87 DBDELETE() .................................................................................................................................................................................................................................................................................................................................................................................................................................

..................................................................................................................................................................................................................................................................................................... 120 VAZIO() ................................................................... 107 DELETED() ......................................................São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl...................................................................................................................... 102 DBSEEK() E MSSEEK()........................................................................................... 122 CABEC()....................................... 100 DBSELECTAREA() ..................................... 118 EXISTCHAV() ............ 108 FOUND() ..................................................................... 100 DBSETNICKNAME() ..............................................................www.............................................................................................................................................................................................................................................. 120 GETNEWPAR() ..............................................................................................................................0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DBSETINDEX() ..... 109 LUPDATE() ....................................................................................................................................br SP 5 .................................................................................. 120 TEXTO() ............................................................. 120 Manipulação de parâmetros do sistema ..................................................................................................................................................................................................................................................................................... 111 ORDBAGEXT() .................................................................................................................. 107 FCOUNT() ............br ....................... 117 CONFIRMSXE() .............. 127 OURSPOOL() ..................................................... 102 DBORDERNICKNAME() ....................... 111 ORDKEY() ............................................................................................. 117 ROLLBACKSXE() ................................................................................... 122 AVALIMP() .............................. 121 PUTMV() ................................................. 115 USED() ............................................................................................................................................................................................................................................................advpl........... 112 RECLOCK() ......................... Leona rdo da Vinci............................................................................................................................................................................................................................. 119 POSITIVO() ..................................................................................................................................................................................................................................... 126 MS_FLUSH() ........................................................................................................................................................................................................................................................................................ 118 EXISTCPO() ........................................................................................................................... 120 GETMV() ....................................................................................................................................................................................................................... 115 SOFTLOCK() ............................................................................................................................................................ 119 NAOVAZIO() ................................................................................................... 108 INDEXKEY() .......... 105 DBUNLOCK() .................................................................................................... 104 DBSETFILTER() .......................................... 119 PERTENCE() ................................................................................................. 129 Av............................................................................................................................................. 117 ALLWAYSFALSE() ......................................................................................................................................................................................................... 117 ALLWAYSTRUE() ...................................................... 128 RODA() .............................................................................................................................................................................................................................................................................................................................................................. nº 608 – Metrô Conceição ............................................................................................................................................................................................................................................................................................................. 110 MSAPPEND()................................................................................................................................................................................................................................................com..................................................................................................................................................................................................................................................................................................................................................................................................................................... 119 NEGATIVO() ......................................................... 117 Validação ...................................................... 114 SELECT() ................................. 104 DBSTRUCT() ...........................................................................................................................................................com....................................................................................................................................................................................................................ADVPL GUIA DE REFERÊNCIA Versão 1.................................................................. 123 IMPCADAST() ..................... 112 RECNO() ........................................................................................................................................................................................................ 109 INDEXORD() ........................................................................................................................................................................................................................................................... 106 DBUSEAREA() ......... 114 SET FILTER TO ........... 106 DBUNLOCKALL() ............................................................................................................................................................................................ 102 DBSKIP().................. 116 GETSXENUM() ....................................... 110 MSUNLOCK() ........................................................................................................... 116 Controle de numeração seqüencial ................................................... 101 DBSETORDER() ............................................................ 118 LETTERORNUM() ................................................................................................................................................................................................................................... 121 Controle de impressão ........................................................................................................................................................................................................................ 121 SUPERGETMV() ...................

............................................................... 150 CONPAD1() ......................................................................................................... 143 ISINCALLSTACK() ............................ 140 FINAL() ..... 159 RETINDEX() .......................................................................................................................................................................... 138 EXISTBLOCK() ........................................................................................................................................................................................................................................................................... 135 CLOSESFILE() ........... 136 CRIAVAR() ....................................................................................... 139 ERRORBLOCK() .......................................................................................................................................................................................................................... 142 GETAREA() ................................................................................................................................................................. 152 GETADVFVAL() ............................................................................................................................................. 137 EXECBLOCK() ............................................br ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 166 X3USO() ....... 135 ABREEXCL() ................................. 157 PERGUNTE() .......................................................... 142 FUNNAME() ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 153 MESEXTENSO()......................................... 144 REGTOMEMORY() .................................................................................. 147 ALLGROUPS() ................................................................................................................................................................................................................................................................................................São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl...................................................................................................................................................................................................... 131 SETPRC() ..... 151 EXTENSO() .................... 145 ALLUSERS() .............................................................................. 144 USEREXCEPTION()..........................................................................................br SP 6 ................. 158 POSICIONE() .................. 161 TM() ..................................................................................................................................................................................................... nº 608 – Metrô Conceição ... 144 RESTAREA() .......... 137 DISARMTRANSACTION() ................................................................................................................................................................................................................................................................................................... 135 CLOSEOPEN() ......................................0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” SETDEFAULT()......................................................... 135 CHKFILE() .......................................................................................................................................................................................................................................................................com......................advpl....................................................................... 142 FUNDESC() ...................................................................................................................................................................................................................... 152 HELP() .............................................. 165 X3TITULO()............................ 161 X1DEF01() .......................................................................... 160 TABELA() ................. Leona rdo da Vinci............................................................................................................................................................................................................................................................................................................................................................................................. 141 FINDFUNCTION() ....................................................................................................................................................................................................................................... 157 PESQPICTQT() ........................................................................ 162 X1PERGUNT() ....................................................................................................................................... 154 OPENFILE() ............................................................................................. 164 X3DESCRIC() .......................................................................................................................................................................................................................................................................................................................................................................................................................................................... 133 SETPRINT() .............................................................................................................................com....................................................................................................................... 145 AJUSTASX1() . 163 X2NOME() .... 157 PESQPICT() ............................................................................................................................. 145 Utilização de recursos do ambiente ERP .................................................................................................................................... 165 X3PICTURE() ............................................................................................................................................................................................................................................................................................................... 150 DATAVALIDA()...................................................................................................... 150 EXISTINI() ......... 161 TAMSX3() . 151 FORMULA() ....................................................................................................................www................................................................................................................................................... 133 Controle de processamentos ................................................................................................................................................................................................................................................................................................................................................................................................................................................... 143 GETCOUNTRYLIST() ............................................. 160 SIXDESCRICAO() ........ 158 PUTSX1() ...................................................................................... 166 Av.............. 163 X3CBOX() ......... 149 CGC() ................ 153 OBRIGATORIO() ......................................................................ADVPL GUIA DE REFERÊNCIA Versão 1.......................... 136 CONOUT() ...........................

....................................................................................................... 173 CHECKBOX() ..................................................................................................................................... 182 MSGFUNCTIONS() ......................................................................................................br ..................................................................................www...advpl...... 179 AXDELETA()........................................................................................................................... 171 MSGET() ......................................................................................................................................................................................................................................................................... 172 BUTTON() ................................................................................................................... 184 GDFIELDPOS() ......................................................... 185 MARKBREFRESH() ........... 168 X6DESCRIC() ................................com.............................br - SP 7 ....................................................................................................................... 181 AVISO().......... 178 AXVISUAL() ..... 175 FOLDER() ................................................... 178 AXINCLUI()....................... 184 GDFIELDGET() .............................................................................................................................. 176 RADIO() ................................... 184 GDFIELDPUT() ........................................................................................................................................................................................................................................................................................................................................................... Leona rdo da Vinci.......................................................................................................................................................................................................................................................................................................................................... 177 MBROWSE() .....................................................................com.............................................................................................................................................................................................................................................................................................................................................................................São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.............................. 174 COMBOBOX() ......................................................................................... 170 XFILIAL() ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” X5DESCRI() ........................... 177 AXPESQUI() .................. 185 GETMARK() ................ 169 XBDESCRI() ......................................................................................................................................................... 182 FORMBACTH() ........................................................................... 170 Componentes da interface visual................... 187 Av............................................................................................................................................. 168 XADESCRIC() ............................................ 176 Interfaces de cadastro ........................................................................................................................................................................................................................................................................................................................................................................................................................................... 186 READVAR()................................................................................................................................................................... 171 SAY() ................................................................. 177 AXCADASTRO() .................................................................................... 181 ALERT() ............. 181 Interfaces visuais para aplicações ............................................................ 171 MSDIALOG() ........... 183 Recursos das interfaces visuais.................................................................................................................................... nº 608 – Metrô Conceição ......................................ADVPL GUIA DE REFERÊNCIA Versão 1........................................................................ 173 SBUTTON() ....... 178 AXALTERA() ............................................................... 167 X6CONTEUD() .............................................................

ADVPL GUIA DE REFERÊNCIA Versão 1. sem a adição de espaços a informação.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www. • • Sintaxe: CVALTOCHAR(nValor) Parâmetros Valor numérico que será convertido para caractere.com.br . • • Sintaxe: DTOC(dData) Parâmetros Av. Leona rdo da Vinci. • • Sintaxe: CTOD(cData) Parâmetros Caracter no formato “DD/MM/AAAA” cData Exemplo: LOCAL cData := “31/12/2006” LOCAL dData := CTOD(cData) IF dDataBase >= dData MSGALERT(“Data do sistema fora da competência”) ELSE MSGINFO(“Data do sistema dentro da competência”) ENDIF CVALTOCHAR() Realiza a conversão de uma informação do tipo numérico em uma string.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Conversão entre tipos de dados CTOD() Realiza a conversão de uma informação do tipo caracter no formato “DD/MM/AAAA” para uma variável do tipo data.com. sendo o resultado no formato “DD/MM/AAAA”.br - SP 8 . nº 608 – Metrô Conceição . nValor Exemplo: FOR nPercorridos := 1 to 10 MSGINFO(“Passos percorridos: ”+CVALTOCHAR(nPercorridos)) NEXT nPercorridos DTOC() Realiza a conversão de uma informação do tipo data para em caracter.

br - SP 9 . A1_NREDUZ FROM SA1010 WHERE ” cQuery += “A1_DULTCOM >=’”+DTOS(dDataIni)+“‘” STOD() Realiza a conversão de uma informação do tipo string com conteúdo no formato “AAAAMMDD” em data. • • Sintaxe: STOD(sData) Parâmetros String no formato “AAAAMMDD” sData Exemplo: LOCAL sData := “20080601” LOCAL dData := STOD(sData) MSGINFO(dData) Av.www.br . nº 608 – Metrô Conceição .advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. A1_LOJA.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” dData Variável com conteúdo data Exemplo: MSGINFO(“Database do sistema: ”+DTOC(dData)) DTOS() Realiza a conversão de uma informação do tipo data em um caracter. Leona rdo da Vinci.com.com. sendo o resultado no formato “AAAAMMDD”. no formato DD/MM/AAAA.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: DTOS(dData) Parâmetros Variável com conteúdo data dData Exemplo: cQuery := “SELECT A1_COD.

advpl. • • Sintaxe: STRZERO(nValor. nValor nTamanho Exemplo: LOCAL nPassos := 6 MSGINFO(“Passos percorridos: ”+STRZERO(nPassos.6)) Av. adicionando espaços à direita.ADVPL GUIA DE REFERÊNCIA Versão 1. adicionando zeros à esquerda do número convertido.br .com. Leona rdo da Vinci. nº 608 – Metrô Conceição .www. Tamanho total desejado para a string retornada. nValor Exemplo: LOCAL nPassos := 6 MSGINFO(“Passos percorridos: ”+STR(nPassos) STRZERO() Realiza a conversão de uma informação do tipo numérico em uma string.com. nTamanho) Parâmetros Valor numérico que será convertido para caractere.br - SP 10 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” STR() Realiza a conversão de uma informação do tipo numérico em uma string. de forma que a string gerada tenha o tamanho especificado no parâmetro. • • Sintaxe: STR(nValor) Parâmetros Valor numérico que será convertido para caractere.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

advpl. Leona rdo da Vinci.www. • • Sintaxe: VAL(cValor) Parâmetros String que será convertida para numérico.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 11 .com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” VAL() Realiza a conversão de uma informação do tipo caracter em numérica.br . nValor • Retorno: Av. • • Sintaxe: ACOS(nValor) Parâmetros: Valor entre -1 e 1 de quem será calculado o Arco Co-Seno.com. cValor Exemplo: LOCAL cValor := “12345” LOCAL nValor := VAL( cValor ) + 1 MSGINFO( nValor ) Matemáticas ACOS() Função utilizada para calcular o valor do arco co-seno. nº 608 – Metrô Conceição .ADVPL GUIA DE REFERÊNCIA Versão 1.

com. nMax • Retorno: Numérico Valor do tipo double.104760e+002 (cosh.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. coshf) Importante: Se x >= 2^63 ou x <= -2^63 ocorre perda significante na chamada da função COS(). -∞] CEILING() Função utilizada para calcular o valor mais próximo possível de um valor nMax informado como parâmetro para a função.br . Leona rdo da Vinci. Se o valor informado no parâmetro for menor que –1 ou maior que 1. acos retorna um valor indefinido por default [+∞ .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Numérico Range de 0 a π radianos.br - SP 12 .com. nAngulo • Retorno: Numérico • Valor que representa o co-seno ou co-seno hiperbólico do ângulo informado. representando o menor inteiro que é maior ou igual ao valor de nX. cos) x ≥ 7. • • Sintaxe: CELLING(nMax) Parâmetros Valor limite para análise da função.www. COS() Função utilizada para calcular o valor do co-seno ou co-seno hiperbólico. • • Sintaxe: COS(nAngulo) Parâmetros: Valor que representa o ângulo em radianos. Av. nº 608 – Metrô Conceição .IND ± ∞ (cosf.advpl. Situações inválidas: Exceção apresentada None INVALID INEXACT+OVERFLOW Significado da Exceção Sem Domínio Sem Domínio OVERFLOW Entrada ± QNAN. Não há retorno de erro na função. no formato floating-point.ADVPL GUIA DE REFERÊNCIA Versão 1.

em base 10. LOG10() é uma função numérica que calcula o logaritmo natural de um número.com.104760e+002 (senh.www.IND ± ∞ (senf. nNatural • Retorno: Numérico A função retorna o logaritmo de nNatural se bem sucedidas. estas funções retornam um indefinido.br . pelo defeito.ADVPL GUIA DE REFERÊNCIA Versão 1. retornam INF(infinito). O logaritmo natural tem como base o valor 10. Se nNatural for 0. • • Sintaxe: LOG10(nNatural) Parâmetros: Valor cujo o logaritmo deve ser encontrado. • Sintaxe: SQRT(nValor) Av.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” LOG10() Função utilizada para calcular o logaritmo natural de um valor numérico.com. Situações inválidas: Exceção apresentada None INVALID INEXACT+OVERFLOW Significado da Exceção Sem Domínio Sem Domínio OVERFLOW Entrada ± QNAN. senhf) Se x >= 2^63 ou x <= -2^63 ocorre perda significante na chamada da função SIN(). sen) x ≥ 7.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: SIN(nAngulo) Parâmetros: Valor do ângulo em radianos. Devemos informar como parâmetro para a função um valor que representa o angulo em radianos. SIN() Função utilizada para calcular o valor do seno ou seno hiperbólico.br SP 13 . Leona rdo da Vinci. Devido ao arredondamento matemático. Se nNatural for negativo. nº 608 – Metrô Conceição . nAngulo • Retorno: Numérico • Retorna o valor do seno do ângulo especificado. os valores retornados por LOG() podem não coincidir exatamente. SQRT() Função utilizada para calcular a raiz quadrada de um número positivo.

IND ±∞ Se x >= 2^63 ou x <= -2^63 ocorre perda significante na chamada da função cos.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: Um número positivo do qual será calculada a raiz quadrada.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP . “cVariavel” Exemplo: 14 Av. • • Sintaxe: TYPE(“cVariavel”) Parâmetros Nome da variável que se deseja avaliar. nAngulo • Retorno: Numérico • Retorna o valor da tangente do ângulo especificado. Análise de variáveis TYPE() Determina o tipo do conteúdo de uma variável. nº 608 – Metrô Conceição .br . Leona rdo da Vinci. TAN() Função utilizada para calcular o valor da tangente ou tangente hiperbólica.com.www. • • Sintaxe: TAN(nAngulo) Parâmetros: Valor do ângulo em radianos. sem importar a configuração de SET FIXED. Situações inválidas: Exceção apresentada None INVALID Significado da Exceção Sem Domínio Sem Domínio Entrada ± QNAN. nValor • Retorno: Numérico Retorna um valor numérico calculado com precisão dupla. Um número negativo <nValor> retorna zero.com. entre aspas (“”). A quantidade de casas decimais exibidas é determinada apenas por SET DECIMALS. a qual não foi definida na função em execução.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.

040 TYPE 2 ACTION (nOpca := 0.5.com. 010 TYPE 1 ACTION (nOpca := 1.oDlg:End()) ENABLE OF oDlg DEFINE SBUTTON FROM 030.advpl.75) .nLargGet := Round(nTamanho * 2. 11 OF oDlg PIXEL . nº 608 – Metrô Conceição . := Round(195 + (nLargGet * 1.005 TO 060. cSay) LOCAL cTexto := “” LOCAL nColF. Picture "@!" VALID !Empty(cTexto) DEFINE SBUTTON FROM 030.0) DEFINE MSDIALOG oDlg TITLE cTitulo FROM 000. 7 OF oDlg PIXEL @ 010.br - SP 15 . nLargGet := 0 PRIVATE oDlg Default cTitulo := "Tela para informar texto" Default cSay := "Informe o texto:" Default nTamanho := 1 nTamanho cTexto nColf := IIF(ValType(nTamanho) != “N”.cTexto.www.nTamanho) // Se o parâmetro foi passado := Space(nTamanho).0). • • Sintaxe: VALTYPE(cVariavel) Parâmetros Nome da variável que se deseja avaliar.nColF PIXEL @ 005.000 TO 120.br .010 SAY cSay SIZE 55. cTitulo.com.ADVPL GUIA DE REFERÊNCIA Versão 1.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Round(nColF/2.oDlg:End()) ENABLE OF oDlg ACTIVATE MSDIALOG oDlg CENTERED cTexto := IIF(nOpca==1.0) OF oDlg PIXEL @ 010.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” IF TYPE(“dDataBase”) == “D” MSGINFO(“Database do sistema: ”+DTOC(“dDataBase”)) ELSE MSGINFO(“Variável indefinida no momento”) ENDIF VALTYPE() Determina o tipo do conteúdo de uma variável. Leona rdo da Vinci. cVariavel Exemplo: STATIC FUNCTION GETTEXTO(nTamanho."") RETURN cTexto Av.065 MSGET cTexto SIZE nLargGet.1. a qual não foi definida na função em execução.

aArray xItem Exemplo: aDados := {} // Define que a variável aDados é um array. o array a aDados possui apenas um elemento.advpl. o array aDados possui 03 elementos. cVariavel2) // Adiciona um elemento no array aItem de acordo com o cVariavel2 AADD(aItem. aItem) // Neste ponto.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Manipulação de arrays AADD() A função AADD() permite a inserção de um item em um array já existente.com. aonde cada qual é um array com outros // 03 elementos.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. cVariavel1) // Adiciona um elemento no array aItem de acordo com o cVariavel1 AADD(aItem.ADVPL GUIA DE REFERÊNCIA Versão 1.br .com. aItem := {} // Define que a variável aItem é um array. um objeto ou outro array. aItem) AADD(aDados. que também é um array contendo 03 elementos: aDados [1][1] -> corresponde ao conteúdo de cVariavel1 aDados [1][2] -> corresponde ao conteúdo de cVariavel2 aDados [1][3] -> corresponde ao conteúdo de cVariavel3 AADD(aDados. sem especificar suas dimensões. Leona rdo da Vinci.br SP 16 . sem especificar suas dimensões. sendo: // aDados [1][1] -> corresponde ao conteúdo de cVariavel1 // aDados [1][2] -> corresponde ao conteúdo de cVariavel2 // aDados [1][3] -> corresponde ao conteúdo de cVariavel3 // aDados [2][1] -> corresponde ao conteúdo de cVariavel1 // aDados [2][2] -> corresponde ao conteúdo de cVariavel2 // aDados [2][3] -> corresponde ao conteúdo de cVariavel3 // aDados [3][1] -> corresponde ao conteúdo de cVariavel1 Av. xItem) Parâmetros Array pré-existente no qual será adicionado o item definido em xItem Item que será adicionado ao array.aItem) // Adiciona no array aDados o conteúdo do array aItem // // // // // Neste ponto.www. sendo que este item podem ser um elemento simples. • • Sintaxe: AADD(aArray. cVariavel3) // Adiciona um elemento no array aItem de acordo com o cVariavel3 // // // // Neste ponto o array a Item possui 03 elementos os quais podem ser acessados com: aItem[1] -> corresponde ao conteúdo de cVariavel1 aItem[2] -> corresponde ao conteúdo de cVariavel2 aItem[3] -> corresponde ao conteúdo de cVariavel3 AADD(aDados. AADD(aItem. nº 608 – Metrô Conceição .

Se um elemento for um subarray.com. O array destino aDestino já deve ter sido declarado e grande o bastante para conter os elementos que serão copiados.3). aArray Exemplo: Utilizando o array aDados utilizado no exemplo da função AADD() Neste ponto. incluindo valores nulos (NIL) e códigos de bloco.br . [ nQtde ]. nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Portanto. ACLONE() A função ACLONE() realiza a cópia dos elementos de um array para outro array integralmente. • • Sintaxe: ACLONE(aArray) Parâmetros Array pré-existente que terá seu conteúdo copiado para o array especificado. Para mais informações sobre a necessidade de utilizar o comando ACLONE() verifique o tópico 6.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” // aDados [3][2] -> corresponde ao conteúdo de cVariavel2 // aDados [3][3] -> corresponde ao conteúdo de cVariavel3 // Desta forma. é o array que receberá a cópia dos elementos.br - SP . conterá o mesmo subarray. o elemento correspondente no array aDestino. ACOPY() copia os valores de todos os dados. • • Sintaxe: ACOPY( aOrigem.www. [ nPosDestino ]) Parâmetros: é o array que contém os elementos a serem copiados. ACOPY() Função de array que copia elementos do array aOrigem para array aDestino. um array não pode ser simplesmente copiado para outro array através de uma atribuição simples (“:=”). o array aDados montando com uma estrutura de 03 linhas e 03 colunas. Leona rdo da Vinci.ADVPL GUIA DE REFERÊNCIA Versão 1.1. mas com a mesma forma obtida com o uso do // comando: aDados := ARRAY(3.com. o array aItens possui exatamente a mesma estrutura e informações do array aDados aItens := ACLONE(aDados) Por ser uma estrutura de memória. com // o conteúdo definido por variáveis externas. 17 aOrigem aDestino Av.advpl.3 – Cópia de Arrays. alguns dos elementos não serão copiados. aDestino . Se o array aOrigem contiver mais elementos. ACOPY() não produzirá uma cópia completa de array multidimensionais. [ nInicio ].

www. 1. nCount) // Result: aTwo is now { 1. aItens[3] -> conteúdo nulo.com. todos os elementos do array aOrigem serão copiados. indica a quantidade de elementos a serem copiados a partir do array aOrigem. iniciando-se a partir da posição nInicio. Se nQtde não for especificado. aOne. será assumido 01. Ao efetuar a exclusão de um elemento. aTwo. 1 } aTwo := { 2. nStart := 1.br .com. 2 } ACOPY(aOne. • • Sintaxe: ADEL(aArray. 2 } ADEL() A função ADEL() permite a exclusão de um elemento do array. Leona rdo da Vinci. 2. ADIR() Função que preenche os arrays passados com os dados dos arquivos encontrados. através da máscara informada. o valor assumido será 01. todos os demais são reorganizados de forma que a ultima posição do array passará a ser nula.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. 1. iniciando-se a contagem a partir da posição nInicio. aTwo aOne := { 1. • Retorno: referência ao array aDestino. // // // // Neste ponto. nº 608 – Metrô Conceição . Tanto arquivos locais (Remote) como do servidor podem ser informados. nStart.ADVPL GUIA DE REFERÊNCIA Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nInicio nQtde nPosDestino indica qual o índice do primeiro elemento de aOrigem que será copiado. é a posição do elemento inicial no array aDestino que receberá os elementos de aOrigem. por se tratar do item excluído. o qual foi reordenado como efeito da exclusão do item 1. o array aItens continua com 03 elementos. Se não especificado. aItens[2] -> antigo aItens[3]. aonde: aItens[1] -> antigo aItens[2].1) // Será removido o primeiro elemento do array aItens. 18 Av.advpl. o qual foi reordenado como efeito da exclusão do item 1. nPosição) Parâmetros Array do qual deseja-se remover uma determinada posição Posição do array que será removida aArray nPosição Exemplo: // Utilizando o array aItens do exemplo da função ACLONE() temos: ADEL(aItens. aDestino Exemplo: LOCAL nCount := 2.br - SP . Se não for especificado.

São as datas de modificação dos arquivos encontrados na busca. • cArqEspec aNomeArq aTamanho aData aHora aAtributos • Retorno: Quantidade de arquivos encontrados.* ). nº 608 – Metrô Conceição .com. xExpValor. [ aNomeArq ]. Quantidade de elementos a partir de [nInicio] que serão preenchidos com <expValor>. aceitando arquivos no servidor Protheus e no Cliente. o valor padrão é 1. [ aData ]. [ aAtributo ]) Parâmetros: Caminho dos arquivos a serem incluídos na busca de informações. que preenche os elementos do array com qualquer tipo de dado. [ aTamanho ]. não é permitida a utilização de arrays. aDestino xExpValor nInicio nCount • Retorno: 19 Av. [ nInicio ].O conteúdo anterior do array é apagado. aFiles) AEVAL(aFiles.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Segue o padrão para especificação de arquivos. caso não seja informado o valor será a quantidade de elementos até o final do array. [ nQuantidade ]) Parâmetros É o onde os dados serão preenchidos. Array de Caracteres. serão aceitos todos os arquivos do diretório default ( *.TXT". É o dado que será preenchido em todas as posições informadas. serão incluídos os arquivos com atributos de sistema e ocultos.ADVPL GUIA DE REFERÊNCIA Versão 1. Incluindo code-block. Array de Caracteres. [aHora]. Array de Datas. É o array com os nomes dos arquivos encontrados na busca. nArquivos Exemplo: LOCAL aFiles[ADIR("*.TXT")] ADIR("*. São os horários de modificação dos arquivos encontrados. É a posição inicial de onde os dados serão preenchidos.advpl. São os tamanhos dos arquivos encontrados na busca.br - SP . • Sintaxe: ADIR([ cArqEspec ]. Caso seja omitido. { |element| QOUT(element) }) AFILL() Função de manipulação de arrays. Caracteres como * e ? são aceitos normalmente. utilize sempre Directory(). Leona rdo da Vinci. Array de Caracteres. Esta função não deve ser usada para preencher um array com outro array. São os atributos dos arquivos. Cada elemento contém horário no formato: hh:mm:ss. caso esse array seja passado como parâmetros.br . • • Sintaxe: AFILL( aDestino . Array Numérico.www.com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Importante: ADir é uma função obsoleta.

2. nº 608 – Metrô Conceição . como uma opção a sintaxe utilizando chaves (“{}”). Leona rdo da Vinci. . ..advpl.br 20 .F.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. ARRAY() A função Array() é utilizada na definição de variáveis de tipo array. “Renato”.3) // Neste ponto o array aAlunos terá o seguinte conteúdo: // {“Edson”. “Tatiana”} AINS(aAlunos. nulo.) // Resultado: aLogic AFILL(aLogic.www. • • Sintaxe: Array(nLinhas.com. nColunas) Parâmetros Determina o número de linhas com as quais o array será criado Determina o número de colunas com as quais o array será criado SP nLinhas nColunas Av.T. } AINS() A função AINS() permite a inserção de um elemento no array especificado em qualquer ponto da estrutura do mesmo. } 2) é { . .. “Renato”.F. diferindo desta forma da função AADD() a qual sempre insere um novo elemento ao final da estrutura já existente.. o elemento inserido no array pela função AINS() terá um conteúdo nulo.br ..T. // Resultado: aLogic é { NIL. nPosicao) Parâmetros Array pré-existente no qual desejasse inserir um novo elemento. “Robson”. . • • Sintaxe: AINS(aArray. “Tatiana”} Similar ao efeito da função ADEL(). sendo necessário trata-lo após a realização deste comando.ADVPL GUIA DE REFERÊNCIA Versão 1. “Robson”.F. Posição na qual o novo elemento será inserido.. Exemplo: LOCAL aLogic[3] // Resultado: aLogic AFILL(aLogic.F. aArray nPosicao Exemplo: aAlunos := {“Edson”.T.F. .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” aDestino Retorna uma referência para aDestino. NIL } é { . NIL. .com.

Bloco de código que configura os parâmetros da busca a ser realizada. mas de conteúdo nulo. Como aAlunos[x] é uma posição do array que contém o nome do aluno. a variável “x” receberá o conteúdo o item que está posicionado no momento.br . Leona rdo da Vinci. através da análise de uma expressão descrita em um bloco de código. cada qual com 3 colunas. “x” poderia ser renomeada para cNome. defina os parâmetros com nomes que representem seu conteúdo. aArray bSeek Exemplo: aAlunos := {“Márcio”.bSeek) // retorno esperado 2 Durante a execução da função aScan.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: aDados := Array(3. “Arnaldo”.com. O array definido pelo comando Array() apesar de já possuir a estrutura solicitada. no caso aAlunos[x]. “y” e similares. “Denis”. Sempre opte por analisar como o bloco de código será utilizado e ao invés de “x”.3) // Cria um array de três linhas. bSeek) Parâmetros Array pré-existente no qual desejasse identificar a posição que contém a informação pesquisada. ASCAN() A função ASCAN() permite que seja identificada a posição do array que contém uma determinada informação. Será mais simples o seu entendimento e o entendimento de outros que forem analisar o código escrito.br - SP . ou seja: aDados[1] -> array de três posições aDados[1][1] -> posição válida.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: ASCAN(aArray. desta forma os blocos de código não são exceção. 21 Av. e a definição do bloco bSeek poderia ser re-escrita como: bSeek := {|cNome| cNome == “Denis”} Na definição dos programas é sempre recomendável utilizar variáveis com nomes significativos.com. “Patrícia”} bSeek := {|x| x == “Denis”} nPosAluno := aScan(aAlunos. nº 608 – Metrô Conceição .advpl.www. não possui conteúdo em nenhum de seus elementos.

pois o array é menor do que 100 posições! Como ASCAN() que utiliza o operador (=) para comparações.com. xDestino bSeek nInicio nCont Exemplo: nPos := aScanX( ARRAY. Representa o elemento a partir do qual terá inicio a pesquisa. A diferença fundamental da função ASCANX é que esta função recebe um segundo parâmetro em seu code-block representando o índice do array. onde a função irá terminar sua execução em 3 condições: 1) Até encontrar o elemento no ARRAY com a ocorrência cNome. y<=100}) No código demonstrado acima. nº 608 – Metrô Conceição .ADVPL GUIA DE REFERÊNCIA Versão 1. pode ser atribuído ao parâmetro um array um Objeto.www. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” ASCANX() Função utilizada para varrer um vetor procurando um valor especificado. 2) Essa é novidade. no caso os elementos procurados devem ser exatamente igual.Y| X[1] == cNome .com.br . • • Sintaxe: ASCANX ( < xDestino > . a função ASCANX() também é case sensitive.advpl. [ nInicio ] . Representa o valor que será pesquisado. Representa a quantidade de elementos que serão pesquisados a partir da posição inicial. podendo ser um bloco de código.OR. 22 Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. ASCANX irá verificar o Array até a posição 100. quando este argumento não for informado o valor default será 1. operando de forma similar a função ASCAN. 3) O elemento cNome não foi encontrado no ARRAY e a condição de Y até 100 não satisfaz. adicionando ou removendo itens do mesmo. ASIZE() A função ASIZE permite a redefinição da estrutura de um array pré-existente. { |X. retornando a posição desse elemento. [ nCont ] ) Parâmetros: Representa o objeto a ser varrido pela função. quando este argumento não for informado todos elementos do array serão pesquisados. < bSeek > . note a inclusão no code-block do Y.br - SP .

xPar2. serão removidos os elementos do final do array.ADVPL GUIA DE REFERÊNCIA Versão 1.www. Quantos itens.advpl. a partir da posição inicial deverão ser ordenados. os quais são através da análise e interpretação de parâmetros recebidos. . Ação2. o array será ordenado a partir de seu primeiro elemento. pode-se definir um bloco de código com a estrutura abaixo: bBloco := { |xPar1. ASORT() A função ASORT() permite que os itens de um array sejam ordenados a partir de um critério pré-estabelecido. • • Sintaxe: ASORT(aArray. Se o tamanho for menor do que o atual. nItens. Com base nesse requisito. AçãoZ } . executar um processamento e fornecer um retorno. o qual teve um elemento excluído pelo uso da função ADEL() ASIZE(aItens. já se o tamanho for maior do que o atual serão inseridos itens nulos ao final do array. bOrdem) Parâmetros Array pré-existente que terá seu conteúdo ordenado através de um critério estabelecido. aonde: || -> define o intervalo onde estão compreendidos os parâmetros Av.com. Caso não seja informado. ambos com conteúdos válidos. nInicio..br .. aArray nTamanho Exemplo: // Utilizando o array aItens. nTamanho) Parâmetros Array pré-existente que terá sua estrutura redimensionada.com. xParZ| Ação1. Caso não seja informado. Posição inicial do array para início da ordenação. Tamanho com o qual deseja-se redefinir o array.br SP 23 . Desta forma sua estrutura deve “suportar” todos os requisitos de uma função. Caso bOrdem não seja informado.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: ASIZE(aArray.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nº 608 – Metrô Conceição . Utilizar a função ASIZE() após o uso da função ADEL() é uma prática recomendada e evita que seja acessada uma posição do array com um conteúdo inválido para a aplicação em uso. Leona rdo da Vinci. serão ordenados todos os elementos do array. aArray nInicio nItens bOrdem Um bloco de código é basicamente uma função escrita em linha. Bloco de código que permite a definição do critério de ordenação do array.Len(aItens-1)) // Neste ponto o array aItens possui 02 elementos. será utilizado o critério ascendente.

Para maiores detalhes sobre a estrutura e utilização de blocos de código consulte o tópico 6. “Andréia”} bOrdem := {|x. “Andréia”} ATAIL() ATAIL() é uma função de manipulação de array que retorna o último elemento de um array. cNomeProx| cNomeAtu > cNomeProx} aSort(aAlunos.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. no formato de lista de expressões. Leona rdo da Vinci. “Soraia”. Desta forma o bloco de código bOrdem pode ser re-escrito como: bOrdem := {|cNomeAtu. Exemplo 1: Ordenação ascendente aAlunos := { “Mauren”.com.com. pode-se substituir “y” por cNomeProx.. Ela deve ser usada em substituição da seguinte construção: aArray [LEN( aArray )] • • Sintaxe: ATAIL( aArray ) Parâmetros: É o array de onde será retornado o último elemento.www.bOrdem) // Neste ponto. os elementos do array aAlunos serão {“Andréia”. A variável “y” receberá o conteúdo do próximo item a ser avaliado. pode-se substituir “x” por cNomeAtu.y| x > y } // // // // // // Durante a execução da função aSort(). Retorno -> resultado da ultima ação executada pelo bloco de código. AçãoZ -> intervalo de expressões que serão executadas pelo bloco de código. a variável “x” receberá o conteúdo do item que está posicionado. aArray Av. nº 608 – Metrô Conceição .br . “Andréia”} aSort(aAlunos) // Neste ponto. e usando a mesma analogia de “x”.br - SP 24 ..advpl.. os elementos do array aAlunos serão {“Soraia” .2 – Listas de Expressões e Blocos de código. Como o item que está posicionado é a posição aAlunos[x] e aAlunos[x] -> string contendo o nome de um aluno. “Soraia”} Exemplo 2 : Ordenação descendente aAlunos := { “Mauren”. no caso AçãoZ. “Mauren”. “Mauren”.ADVPL GUIA DE REFERÊNCIA Versão 1. “Soraia”.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Ação Z-> expressão que será executadas pelo bloco de código Ação1.

xParam2. bBloco xParamZ Exemplo: nInt := 10 bBloco := {|N| x:= 10. y:= x*N. xParamZ) Parâmetros Bloco de código que será interpretado. no caso “z”. z:= y/(x*N)} nValor := EVAL(bBloco.br .br - SP 25 . nUltimo Exemplo: aArray := {"a".www. A partir da passagem do bloco.com. Esta função permite a definição e passagem de diversos parâmetros que serão considerados na interpretação do bloco de código. Parâmetros que serão passados ao bloco de código.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. // Cada uma das variáveis definidas em uma das ações da lista de expressões fica disponível // para a próxima ação. todos os demais parâmetros da função serão convertidos em parâmetros para a interpretação do código. • • Sintaxe: EVAL(bBloco.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: Número do último elemento do array.com. "b". // Desta forma temos: // N recebe nInt como parâmetro (10) // X tem atribuído o valor 10 (10) // Y resultado da multiplicação de X por N (100) // Z resultado a divisão de Y pela multiplicação de X por N ( 100 / 100) 1 DBEVAL() A função DBEval() permite que todos os registro de uma determinada tabela sejam analisados e para cada registro será executado o bloco de código definido. xParam1. Leona rdo da Vinci. nInt) // O retorno será dado pela avaliação da ultima ação da lista de expressões. nº 608 – Metrô Conceição . bWhile) Parâmetros Av. "d"} ATAIL(aArray) // Resultado: d Manipulação de blocos de código EVAL() A função EVAL() é utilizada para avaliação direta de um bloco de código. • • Sintaxe: Array(bBloco. bFor.advpl. utilizando as informações disponíveis no mesmo de sua execução. "c".

AEVAL() A função AEVAL() permite que todos os elementos de um determinada array sejam analisados e para cada elemento será executado o bloco de código definido. X5_TABELA <= mv_par02 nCnt++ dbSkip() End // O mesmo pode ser re-escrito com o uso da função DBEVAL(): dbEval( {|x| nCnt++ }..0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” bBloco Bloco de código principal.{||X5_FILIAL==xFilial("SX5") . Next.{X5_CHAVE.. nº 608 – Metrô Conceição . Capital(X5_DESCRI)}) dbSkip() End // O mesmo pode ser re-escrito com o uso da função DBEVAL(): dbEval({|| AADD(aTabela..com. com o efeito de uma estrutura While . X5_FILIAL == xFilial("SX5") .br ..And. X5_TABELA == cTabela AADD(aTabela.And. Condição para continuação da análise dos registros. Leona rdo da Vinci.And.www.Capital(X5_DESCRI)})}.And.{|| X5_TABELA==cTabela}) Na utilização da função DBEVAL() deve ser informado apenas um dos dois parâmetros: bFor ou bWhile. X5_TABELA<=mv_par02}) Exemplo 2: // Considerando o trecho de código abaixo: dbSelectArea(“SX5”) dbSetOrder(1) dbGotop() While !Eof() . End bFor bWhile Exemplo 1: // Considerando o trecho de código abaixo: dbSelectArea(“SX5”) dbSetOrder(1) dbGotop() While !Eof() . Condição para continuação da análise dos registros.advpl. nInicio. nFim) Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl..com. com o efeito de uma estrutura For . bBloco.{X5_CHAVE.ADVPL GUIA DE REFERÊNCIA Versão 1. • Sintaxe: AEVAL(aArray...br SP 26 . contendo as expressões que serão avaliadas para cada registro do alias ativo.

”A1_COD”) SX3->(dbSetOrder(2)) For nX:=1 To Len(aCampos) SX3->(dbSeek(aCampos[nX])) AADD(aTitulos. referente ao conteúdo informado como parâmetro.br - SP .com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl..ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci.”A1_FILIAL”) AADD(aCampos. até o qual serão avaliados os blocos de código.com.AllTrim(SX3->X3_TITULO)) Next nX O mesmo pode ser re-escrito com o uso da função AEVAL(): aEval(aCampos. aArray bBloco nInicio nFim Exemplo 1: Considerando o trecho de código abaixo: AADD(aCampos. contendo as expressões que serão avaliadas para cada elemento do array informado. a partir do qual serão avaliados os blocos de código. Elemento final do array.www. AllTrim(SX3->X3_TITULO)))}) Manipulação de strings ALLTRIM() Retorna uma string sem os espaços à direita e à esquerda. Elemento inicial do array.advpl.br . nº 608 – Metrô Conceição . cString Exemplo: cNome := ALLTRIM(SA1->A1_NOME) MSGINFO(“Dados do campo A1_NOME:”+CRLF “Tamanho:” + CVALTOCHAR(LEN(SA1->A1_NOME))+CRLF “Texto:” + CVALTOCHAR(LEN(cNome))) 27 Av.{|x| SX3->(dbSeek(x)). • • Sintaxe: ALLTRIM(cString) Parâmetros String que será avaliada para remoção dos espaços a direita e a esquerda. A função ALLTRIM() implementa as ações das funções RTRIM (“right trim”) e LTRIM (“left trim”).0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros Array que será avaliado na execução da função.IIF(Found(). Bloco de código principal. AADD(aTitulos.

Asc(cLetra) < 240) cLetra := "I" Case (Asc(cLetra) > 209 . Asc(cLetra) == 231 cLetra := "C" EndCase cRet := cRet+cLetra Next Return UPPER(cRet) Av. Asc(cLetra) < 230) cLetra := "A" Case (Asc(cLetra) > 199 . Asc(cLetra) < 198) . nº 608 – Metrô Conceição .and. Asc(cLetra) < 221) . (Asc(cLetra) > 248 .com. Asc(cLetra) < 207) ..and. 1) Do Case Case (Asc(cLetra) > 191 . cCaractere Exemplo: USER FUNCTION NoAcento(Arg1) Local nConta := 0 Local cLetra := "" Local cRet := "" Arg1 := Upper(Arg1) For nConta:= 1 To Len(Arg1) cLetra := SubStr(Arg1.and.or.or...br .and.or.or.or.www. (Asc(cLetra) == 240) . (Asc(cLetra) > 231 .and.or. (Asc(cLetra) > 223 .or..and. nConta. Asc(cLetra) < 204) .and. Asc(cLetra) < 253) cLetra := "U" Case Asc(cLetra) == 199 .br SP 28 . Leona rdo da Vinci. • • Sintaxe: ASC(cCaractere) Parâmetros Caracter que será consultado na tabela ASCII.and.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” ASC() Converte uma informação caractere em seu valor de acordo com a tabela ASCII.advpl.. (Asc(cLetra) > 235 .and.com.and. Asc(cLetra) < 236) cLetra := "E" Exemplo (continuação): Case (Asc(cLetra) > 204 .ADVPL GUIA DE REFERÊNCIA Versão 1. (Asc(cLetra) > 241 . Asc(cLetra) < 247) cLetra := "O" Case (Asc(cLetra) > 216 . Asc(cLetra) < 215) .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

nX. nº 608 – Metrô Conceição . < nStrLen > ) Parâmetros String no qual desejamos ligar os bits.nTamanho) ENDIF RETURN cNoMascara BITON() Função utilizada para ligar determinados bits de uma String passada por parâmetro para a função.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: AT(cCaractere.nTamanho) ELSE cNoMascara := PADR(ALLTRIM(cString).advpl.nTamanho) LOCAL cNoMascara LOCAL nX := 0 := "" IF !Empty(cMascara) . Av. • • Sintaxe: BITON ( < cValue > . Além da string à ser alterada.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” AT() Retorna a primeira posição de um caracter ou string dentro de outra string especificada.com. um numérico que indica a quantidade de bits a serem alterados(ligados) e o tamanho da string passada.cString) > 0 FOR nX := 1 TO Len(cString) IF !(SUBSTR(cString. cCaractere cString Exemplo: STATIC FUNCTION NOMASCARA(cString.br . Indica a partir de qual bit.1) ENDIF NEXT nX cNoMascara := PADR(ALLTRIM(cNoMascara). começará a ser ligados os bits na String Indica a quantidade de bits que serão ligados a partir do inicio.www.com. Leona rdo da Vinci. Representa o tamanho da String passada para a função.nX.1) $ cMascara) cNoMascara += SUBSTR(cString. a função também recebe como parâmetro um numérico que indica o bit de inicio a ser alterado. AT(cMascara.AND.br SP 29 . cString ) Parâmetros Caractere ou string que se deseja verificar String na qual será verificada a existência do conteúdo de cCaractere. cValue nBitIni nBitEnd nStrLen CAPITAL() Função que avalia a string passada como parâmetro alterando a primeira letra de cada palavra para maiúscula e as demais letras como minúsculas.cMascara.ADVPL GUIA DE REFERÊNCIA Versão 1. < nBitEnd > . < nBitIni > .

São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci. • • Sintaxe: CHR(nASCII) Parâmetros Código ASCII do caractere nASCII Exemplo: #DEFINE CRLF CHR(13)+CHR(10) // FINAL DE LINHA DESCEND() Função de conversão que retorna a forma complementada da expressão string especificada. cString • Retorno: Caracter String complementada da string analisada.ADVPL GUIA DE REFERÊNCIA Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: CAPITAL(cFrase) Parâmetros: String a ser avaliada cFrase • Retorno: String Conteúdo da string original com as modificações necessárias para atender a condição da função.www.br - SP 30 .com. CHR() Converte um valor número referente a uma informação da tabela ASCII no caractere que esta informação representa.br . Esta função normalmente é utilizada para a criação de indexadores em ordem decrescente • • Sintaxe: DESCEND ( < cString > ) Parâmetros: Corresponde à seqüência de caracteres a ser analisada. Exemplo: // Este exemplo utiliza DESCEND() em uma expressão INDEX para criar um índice de datas de // ordem descendente: USE Sales NEW INDEX ON DESCEND(DTOS(OrdDate)) TO SalesDate Av. nº 608 – Metrô Conceição .com.advpl.

www.0000 //retorno 0.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.T.123456') GetDtoVal('teste') //retorno 123456.com. A função é muito útil quando desejamos utilizar o valor numérico de uma data que está contida em uma string.0 ISALPHA() Função utilizada para determinar se o caractere mais à esquerda em uma cadeia de caracteres é alfabético. DESCEND() pode ser utilizado para fazer uma pesquisa (SEEK) no índice // descendente: DbSEEK(DESCEND(DTOS(dFindDate))) GETDTOVAL() Função utilizada para retornar um numero formatado.123456 //retorno 0.br .br 31 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” // Depois.' retornando um numero fracionário. sendo que irá apenas manter os valores numéricos contidos na string passada por parâmetro. cString • Retorno: Lógico Retorna verdadeiro (. permitindo avaliar se o string especificado começa com um caractere alfabético. nº 608 – Metrô Conceição . verificando se existe algum caractere '. Um caractere alfabético consiste em qualquer letra maiúscula ou minúscula de “A” a “Z”. cDtoVal • Retorno: Numérico Retorna um dado numérico de acordo com o valor informado em <cDtoVal>. • • Sintaxe: ISALPHA ( < cString > ) Parâmetros: Cadeia de caracteres a ser examinada.ADVPL GUIA DE REFERÊNCIA Versão 1.) se o primeiro caractere em <cString> for alfabético.0000 //retorno 123456. SP Av.advpl. Leona rdo da Vinci. de acordo com o valor passado por parâmetro. Exemplo: GetDtoVal('123456') GetDtoVal('1/2/3/4/5/6') GetDtoVal('fim. • • Sintaxe: GETDTOVAL ( < cDtoVal > ) Parâmetros: Representa uma string contendo um valor numérico no qual será convertido. na ordem dos números contidos na string.

www.).).T. nº 608 – Metrô Conceição . permitindo avaliar se o primeiro caractere de um string é uma letra minúscula.) caso o primeiro caractere da cadeia seja um dígito entre zero e nove. permitindo avaliar se o primeiro caractere de um string é uma letra maiúscula.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” caso contrário. permitindo avaliar se o primeiro caractere em um string é um dígito numérico entre zero e nove. cString Av. que convertem caracteres minúsculos para maiúsculos. É o contrário de ISLOWER ().) caso o primeiro caractere da cadeia seja minúsculo . retorna falso (.F. • • Sintaxe: ISUPPER( < cString > ) Parâmetros: Cadeia de caracteres a ser examinada. Leona rdo da Vinci. ISDIGIT() Função utilizada para determinar se o caractere mais à esquerda em uma cadeia de caracteres é um dígito. • • Sintaxe: ISLOWER( < cString > ) Parâmetros: Cadeia de caracteres a ser examinada. ISLOWER() e ISUPPER() ambas são relacionadas às funções LOWER() e UPPER(). e vice-versa. ISLOWER() Função utilizada para determinar se o caractere mais à esquerda é uma letra minúscula. ISLOWER() e ISUPPER() ambas são relacionadas às funções LOWER() e UPPER(). que convertem caracteres minúsculos para maiúsculos.br - SP 32 . ISUPPER() Função utilizada para determinar se o caractere mais à esquerda é uma letra maiúscula. retorna falso (.F.ADVPL GUIA DE REFERÊNCIA Versão 1. É o contrário de ISUPPER(). caso contrário. a qual determina se a cadeia de caracteres começa com uma letra maiúscula.).T. cString • Retorno: Lógico Retorna verdadeiro (.com.com. caso contrário. retorna falso (. cString • Retorno: Lógico Retorna verdadeiro (.br .F. a qual determina se a cadeia de caracteres começa com uma letra minúscula. e vice-versa.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: ISDIGIT ( < cString > ) Parâmetros: Cadeia de caracteres a ser examinada.

números convertidos para cadeias de caracteres através da função STR().0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: Retorna verdadeiro (. e RTRIM() são as funções PADC().www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. LTRIM().br . e a ALLTRIM(). retorna falso (. tendo como base a string passada como parâmetro. Lógico LEN() Retorna o tamanho da string especificada no parâmetro. PADR(). Pode ser o caso de.ADVPL GUIA DE REFERÊNCIA Versão 1.com. • • Sintaxe: LEN(cString) Parâmetros String que será avaliada cString Exemplo: cNome := ALLTRIM(SA1->A1_NOME) MSGINFO(“Dados do campo A1_NOME:”+CRLF “Tamanho:” + CVALTOCHAR(LEN(SA1->A1_NOME))+CRLF “Texto:” + CVALTOCHAR(LEN(cNome))) LOWER() Retorna uma string com todos os caracteres minúsculos.F.advpl. ou alinham à esquerda as cadeias de caracteres. que remove espaços tanto à esquerda quanto à direita.com. a qual remove espaços em branco à direita.) caso o primeiro caractere da cadeia seja maiúsculo . as quais centralizam. 33 Av.). O contrário de ALLTRIM(). através da inserção de caracteres de preenchimento. por exemplo. Leona rdo da Vinci. alinham à direita.T. cString Exemplo: cTexto := “ADVPL” MSGINFO(“Texto:”+LOWER(cTexto)) LTRIM() Função para tratamento de caracteres utilizada para formatar cadeias de caracteres que possuam espaços em branco à esquerda. LTRIM() é relacionada a RTRIM(). caso contrário. • • Sintaxe: LOWER(cString) Parâmetros String que será convertida para caracteres minúsculos.br - SP . e PADL(). nº 608 – Metrô Conceição .

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

• •

Sintaxe: LTRIM ( < cString > ) Parâmetros: <cString> é a cadeia de caracteres a ser copiada sem os espaços em branco à esquerda.

cString

Retorno: LTRIM() retorna uma cópia de <cString>, sendo que os espaços em branco à esquerda foram removidos. Caso <cString> seja uma cadeia de caracteres nula ("") ou toda composta de espaços em branco, LTRIM() retorna uma cadeia de caracteres nula ("").

Caracter

MATHC() Função utilizada para realizar operações matemáticas com strings que contém um valor numérico. MATHC() realiza algumas operações matemáticas como: Soma, Subtração, Divisão, Multiplicação e Exponenciação. A função irá retornar uma string contendo o resultado da operação matemática, com uma especificação de até 18 casas de precisão no numero. • • Sintaxe: MATHC ( < cNum1 > , < cOperacao > , < cNum2 > ) Parâmetros: String contendo um valor numérico, representando o numero no qual desejamos realizar uma operação. Representa a string que indica a operação que desejamos realizar. Olhar na tabela para verificar quais valores devem ser informados aqui. String contendo um valor numérico, representando o numero no qual desejamos realizar uma operação.

cNum1 cOperacao cNum2

Retorno: Retorna uma nova string contendo o resultado matemático da operação.

Caracter

OEMTOANSI() Função que transforma uma string no Formato OEM / MS-DOS Text para uma string ANSI Text ( formato do Windows ). Quando utilizamos um programa baseado no MS-DOS para alimentar uma base de dados , os acentos e caracteres especiais são gravados como texto OEM . Para tornar possível a correta visualização destes dados em uma interface Windows , utilizamos a função OemToAnsi() para realizar a conversão. Ao utilizarmos um programa baseado no Windows para alimentar uma base de dados , o texto é capturado no formato ANSI Text . Caso este texto seja utilizado para alimentar uma base de dados a ser acessada através de um programa MS-DOS , devemos converter o dado para OEM antes de gravá-lo , através da função AnsiToOem(). • Sintaxe: OemToAnsi ( < cStringOEM > )
Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br SP

34

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Parâmetros: String em formato OEM - MsDos a ser convertida.

cStringOEM • Retorno:

Caracter

String convertida para ser exibida no Windows ( Formato ANSI ).

PADL() / PADR() / PADC() Funções de tratamento de strings que inserem caracteres de preenchimento para completar um tamanho previamente especificado em vários formatos como data ou numéricos. • • • PADC() centraliza <cExp>, adicionando caracteres de preenchimento à direita e à esquerda. PADL() adiciona caracteres de preenchimento à esquerda. PADR() adiciona caracteres de preenchimento à direita.

Caso o tamanho de <cExp> exceda o argumento <nTamanho>, todas as funções PAD() truncam string preenchida ao <nTamanho> especificado. PADC(), PADL(), e PADR() são utilizadas para exibir cadeias de caracteres de tamanho variável em uma área de tamanho fixo. Elas podem ser usadas, por exemplo, para assegurar o alinhamento com comandos ?? consecutivos. Outra utilização é exibir textos em uma tela de tamanho fixo, para certificar-se de que o texto anterior foi completamente sobrescrito. PADC(), PADL(), e PADR() são o contrário das funções ALLTRIM(), LTRIM(), e LTRIM(), as quais eliminam espaços em branco à esquerda e à direita de cadeias de caracteres. • • Sintaxe: PADL / PADR / PADC ( < cExp > , < nTamanho > , [ cCaracPreench ] ) Parâmetros Caractere, data, ou numérico no qual serão inseridos caracteres de preenchimento. Tamanho da cadeia de caracteres a ser retornada. Caractere a ser inserido em cExp. Caso não seja especificado, o padrão é o espaço em branco.

cExp nTamanho cCaracPreench

Retorno: Retornam o resultado de <cExp> na forma de uma cadeia de caracteres preenchida com <cCaracPreench>, para totalizar o tamanho especificado por <nTamanho>.

Caracter

RAT() Retorna a última posição de um caracter ou string dentro de outra string especificada.

• •

Sintaxe: RAT(cCaractere, cString) Parâmetros
Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br SP

35

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

cCaractere cString

Caractere ou string que se deseja verificar String na qual será verificada a existência do conteúdo de cCaractere.

REPLICATE() A função Replicate() é utilizada para gerar uma cadeira de caracteres repetidos a partir de um caracter base informado, podendo a string gerada conter até 64KB. Caso seja especificado no parâmetro de itens a repetir o número zero, será retornada uma string vazia. • • Sintaxe: REPLICATE(cString, nCount) Parâmetros: Caracter que será repetido Quantidade de ocorrências do caracter base que serão geradas na string de destino.

cString nCount

Retorno: String contendo as ocorrências de repeticação geradas para o caracter informado.

cReplicated

RTRIM() Função para tratamento de caracteres utilizada para formatar cadeias de caracteres que contenham espaços em branco à direita. Ela é útil quando você deseja eliminar espaços em branco à direita ao se concatenar cadeias de caracteres. É o caso típico com campos de banco de dados que são armazenados em formato de tamanho fixo. Por exemplo, você pode usar RTRIM() para concatenar o primeiro e o último campos de nome para formar uma cadeia de caracteres de nome. LTRIM() é relacionada a RTRIM(), que remove espaços em branco à direita, e a ALLTRIM(), que remove espaços em branco à direita e à esquerda. O contrário de ALLTRIM(), LTRIM(), e RTRIM() são as funções PADC(), PADR(), e PADL(), as quais centralizam, alinham à direita, ou alinham à esquerda cadeias de caracteres, inserindo caracteres de preenchimento. • • Sintaxe: RTRIM ( < cString > ) --> cTrimString Parâmetros: <cString> é a cadeia de caracteres a ser copiada sem os espaços em branco à direita.

cString

Retorno: RTRIM() retorna uma cópia de <cString>, sendo que os espaços em branco à direita foram removidos. Caso <cString> seja uma cadeia de caracteres nula ("") ou totalmente composta por espaços, RTRIM() retorna uma cadeia de caracteres nula ("").
SP

Caracter

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

36

A utilização desta função tem o mesmo efeito que REPLICATE(' '. Leona rdo da Vinci.'3'. • Sintaxe: STRTRAN ( < cString > .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. sendo case sensitive.535 (64K).ADVPL GUIA DE REFERÊNCIA Versão 1. Caracter STRTOKARR() Função utilizada para retornar um array.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” SPACE() Função de tratamento de caracteres utilizada para retornar uma quantidade especificada de espaços. [ nStart ] .') //retorna {'1'. cValue cToken • Retorno: Array Array de caracteres que representa a string passada como parâmetro. antes que a mesma seja associada a um GET.3. [ cReplace ] .br .'2'. SPACE()retorna uma cadeia de caracteres nula (""). <nCont>). de acordo com os dados passados como parâmetro para a função.2.'5'} STRTRAN() Função utilizada para realizar a busca da ocorrência da string. Esta função recebe uma string <cValue> e um caracter <cToken> que representa um separador. Sintaxe: SPACE ( < nCont > ) • Parâmetros: A quantidade de espaços a serem retornados.www.4. • • Sintaxe: STRTOKARR ( < cValue > . < cSearch > . sendo que o número máximo é 65. e é normalmente utilizada para inicializar uma variável do tipo caractere. Se <nCont> for zero. nº 608 – Metrô Conceição . Exemplo: STRTOKARR('1.'4'. nCont • Retorno: Retorna uma cadeia de caracteres. [ nCount ] ) 37 Av.5'. '.br - SP .com. e para toda ocorrência deste separador em <cValue> é adicionado um item no array.com. Representa o caracter que indica o separador em <cValue>. < cToken > ) Parâmetros: Representa a cadeia de caracteres no qual desejamos separar de acordo com <cToken>.advpl.

Exemplo: cLin := Space(100)+cEOL // Cria a string base cCpo := PADR(SA1->A1_FILIAL. Caso não seja especificado. nCount corresponde ao número máximo de trocas que deverá ser realizada pela função .br SP 38 . cAdicao) Parâmetros: A cadeia de caracteres destino na qual serão eliminados e inseridos caracteres. nStart corresponde ao número seqüencial da primeira ocorrência de cSEarch em cString a ser substituída por cReplace. especificando a posição inicial para esta adição e o número de caracteres que serão substituídos. A posição inicial na cadeia de caracteres destino onde ocorre a inserção/eliminação.com.01. Seqüência de caracteres que deve substituir a string cSearch.www. as ocorrências de cSearch em cString serão substituídas por uma string nula (""). nPosInicial.br . a função retornará uma string em branco ("").cCpo) // Substitui o conteúdo de cCpo na string base SUBSTR() Av. conforme parametrização.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: Seqüência de caracteres ou campo memo a ser pesquisado. Se este argumento for omitido . Seqüência de caracteres a ser procurada em cString. • • Sintaxe: STUFF(cString. cString cSearch cReplace nStart nCount • Retorno: A função STRTRAN retorna uma nova string. cString nPosInicial nExcluir cAdicao • Retorno: Caracter Retorna a nova string gerada pela função com as modificações. Caso este argumento não seja especificado .02) // Informação que será armazenada na string cLin := Stuff(cLin.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nExcluir. com as ocorrências especificadas de cSearch trocadas para cReplace.com.02. Code-Block STUFF() Função que permite substituir um conteúdo caractere em uma string já existente. A cadeia de caracteres a ser inserida. Leona rdo da Vinci. Caso seja passado um numero menor que 1. nº 608 – Metrô Conceição . o default é substituir todas as ocorrências encontradas. o default é 1 ( um ) .ADVPL GUIA DE REFERÊNCIA Versão 1. A quantidade de caracteres a serem eliminados.advpl.

nCaracteres) Parâmetros String que se deseja verificar Posição inicial da informação que será extraída da string Quantidade de caracteres que deverá ser retornada a partir daquele ponto (inclusive).www. lógicos e numéricos conforme um string de máscara especificado.SAY. de acordo com a posição inicial deste conteúdo na string e a quantidade de caracteres que deverá ser retornada a partir daquele ponto (inclusive).ADVPL GUIA DE REFERÊNCIA Versão 1.com.1. Leona rdo da Vinci. cExp cSayPicture • - Retorno: Retorna a conversão de <cExp> para uma cadeia de caracteres formatada conforme a definição em <cSayPicture>.. UPPER() Retorna uma string com todos os caracteres maiúsculos. • • Sintaxe: TRANSFORM ( < cExp > .com. Esta expressão pode ser qualquer tipo de dados válidos. a qual inclui uma combinação de strings de template e funções de picture. • • Sintaxe: SUBSTR(cString.. • • Sintaxe: UPPER(cString) Parâmetros String que será convertida para caracteres maiúsculos. Ela faz o mesmo que a cláusula PICTURE do comando @.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Retorna parte do conteúdo de uma string especificada. cString nPosInicial nCaracteres Exemplo: cCampo := “A1_NOME” nPosUnder := AT(cCampo) cPrefixo := SUBSTR(cCampo. data. nº 608 – Metrô Conceição . < cSayPicture > ) Parâmetros: O valor a ser formatado.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. tendo como base a string passada como parâmetro. bloco de código. nPosInicial.br - SP . exceto vetor.advpl. nPosUnder) // “A1_” TRANSFORM() Função de conversão que formata valores caractere. sendo normalmente utilizada para formatar dados a serem enviados à tela ou à impressora. e NIL. Uma string de caracteres de máscara e template usado para descrever o formato da cadeia de caracteres a ser retornada. 39 cString Av.br .

A primeira letra do retorno em maiúscula e o restante do nome.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nº 608 – Metrô Conceição .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: cTexto := “ADVPL” MSGINFO(“Texto:”+LOWER(cTexto)) Manipulação de data / hora CDOW() Função que converte uma data para uma cadeia de caracteres.www. CMONTH() Função de conversão de datas que retorna uma cadeia de caracteres com o nome do mês em inglês. • • Sintaxe: CMONTH( dData ) Parâmetros: Data que será convertida.br 40 . • • Sintaxe: CDOW( dExp ) Parâmetros: Data que será convertida. Exemplo: dData := DATE() // Resultado: 09/01/90 cDiaDaSemana := CDOW(DATE()) // Resultado: Friday cDiaDaSemana := CDOW(DATE() + 7) // Resultado: Friday cDiaDaSemana := CDOW(CTOD("06/12/90")) // Resultado: Tuesday A função FG_CDOW(dExp) retorna o nome do dia da semana de acordo com o idioma em uso pelo ERP. Leona rdo da Vinci.br .com.com. dData • Retorno: cMonth Retorna o nome do mês em uma cadeia de caracteres. dExp • Retorno: cDayWeek Nome do dia da semana como uma cadeia de caracteres. em minúsculas.advpl. SP Av. A primeira letra é maiúscula e as demais minúsculas.ADVPL GUIA DE REFERÊNCIA Versão 1.

advpl. sendo que o formato padrão é mm/dd/yy. dData • Retorno: nDias Se o mês do argumento dData for fevereiro.com.br SP 41 . Pode ser usada também em diversos cálculos envolvendo datas. 3) + STR(DAY(DATE())) // Resultado: Sep 1 DATE() Função que retorna a data do atual sistema. • • Sintaxe: DATE() Parâmetros: . • • Sintaxe: DAY( dData ) Parâmetros: Data que será convertida. 1. anos bissextos são considerados.www. Exemplo: dData := DATE() // Resultado: 09/01/01 dData := DATE() + 30 // Resultado: 10/01/01 dData := DATE() . Se a data do argumento dData for 29 de fevereiro e o ano não for bissexto.br .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci. Nenhum • Retorno: dData Data do sistema.30 // Resultado: 08/02/90 dData := DATE() cMes := CMONTH(dData) // Resultado: September DAY() Função de conversão de datas usada para converter o valor data em um número inteiro que representa o dia do mês. ou se o argumento dData for vazio.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: cMes cMes cMes cMes := := := := CMONTH(DATE()) // Resultado: September CMONTH(DATE() + 45) // Resultado: October CMONTH(CTOD("12/01/94")) // Resultado: December SUBSTR(CMONTH(DATE()). O formato de saída é controlado pelo comando SET DATE. Esta função pode ser usada em conjunto com CMONTH() e YEAR() para formatar datas. nº 608 – Metrô Conceição .com. Exemplo: Av.

use a função TRANSFORM(). Em expressões de índices de arquivo.br - SP 42 .2) // Resultado: Sunday DTOC() Função para conversão de uma data para uma cadeia de caracteres formatada segundo o padrão corrente. Útil quando se deseja fazer cálculos semanais. que retorna o dia da semana como uma cadeia de caracteres. dData • Retorno: nDia Retorna um número entre zero e sete.2) // Resultado: 1 cDiaDaSemana := CDOW(DATE() .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nº 608 – Metrô Conceição . O primeiro dia da semana é 1 (Domingo) e o último é 7 (Sábado). Leona rdo da Vinci.advpl. DOW() retorna zero. representando o dia da semana. Se for necessária a utilização de formatação especial.com. • • Sintaxe: DTOC( dData ) Parâmetros: Data que será convertida." + STR(YEAR(dData)) // Resultado: June 15.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” // Estes exemplos mostram a função DAY() de diversas maneiras: dData := DATE() // Resultado: 09/01/01 nDia := DAY(DATE()) // Resultado: 1 nDia := DAY(DATE()) + 1 // Resultado: 2 nDia := DAY(CTOD("12/01/94")) // Resultado: 1 // Este exemplo mostra a função DAY() usada em conjunto com CMONTH() e YEAR() para formatar o valor da data: dData := Date() cData := CMONTH(dData) + STR(DAY(dData)) + ". 2001 DOW() Função que converte uma data para o valor numérico que representa o dia da semana.com.ADVPL GUIA DE REFERÊNCIA Versão 1. dData Av. • • Sintaxe: DOW( dData ) Parâmetros: Data que será convertida.br .www. use DTOS() no lugar de DTOC() para converter datas para cadeia de caracteres. definido pelo comando SET DATE. Exemplo: dData := DATE() // Resultado: 09/01/01 nDiaDaSemana := DOW(DATE()) // Resultado: 3 cDiaDaSemana := CDOW(DATE()) // Resultado: Tuesday nDiaDaSemana := DOW(DATE() . DOW() é similar a CDOW(). Se a data for vazia ou inválida.

com. Exemplo: cData := DATE() // Resultado: 09/01/90 cData := DTOS(DATE()) // Resultado: 19900901 nLen := LEN(DTOS(CTOD(""))) // Resultado: 8 ELAPTIME() Função que retorna uma cadeia de caracteres contendo a diferença de tempo no formato hh:mm:ss.br - SP 43 . nº 608 – Metrô Conceição . onde hh é a hora ( 1 a 24 ). onde hh é a hora ( 1 a 24 ). dData • Retorno: sData Retorna uma cadeia de caracteres com oito byte de tamanho no formato yyyymmdd. O resultado é estruturado visando manter a ordem correta do índice (ano. • • Sintaxe: ElapTime( cHoraInicial . Para uma data nula ou inválida. O valor retornado não é afetado pela formato da data corrente. mm os minutos e ss os segundos Informe a hora final no formato hh:mm:ss. mm os minutos e ss os segundos.br . onde hh é a hora ( 1 a 24 ).www. mês. O retorno é formatado utilizando-se o formato corrente definido pelo comando SET DATE FORMAT. cHoraInicial CHoraFinal Av. o retorno será uma cadeia de caracteres com espaços e tamanho igual ao formato atual.ADVPL GUIA DE REFERÊNCIA Versão 1. cData Exemplo: cData := DATE() // Resultado: 09/01/90 cData := DTOC(DATE()) // Resultado: 09/01/90 cData := "Today is " + DTOC(DATE()) // Resultado: Today is 09/01/90 DTOS() Função para conversão de uma data que pode ser usada para criar expressões de índice. Quando dData é nulo ou invalido.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: É uma cadeia de caracteres representando o valor da data. O formato padrão é mm/dd/yy.advpl. Leona rdo da Vinci. dia). mm os minutos e ss os segundos.com. cHoraFinal ) Parâmetros: Informe a hora inicial no formato hh:mm:ss. • • Sintaxe: DTOS( dData ) Parâmetros: Data que será convertida.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. DTOS() retorna uma cadeia de caracteres com oito espaços.

Leona rdo da Vinci. segundo a hora do sistema. cElapsed := ELAPTIME(TIME().ADVPL GUIA DE REFERÊNCIA Versão 1.br . cHoraInicio) MONTH() Função de conversão que extrai da data o valor numérico do mês. mm os minutos e ss os segundos.www. SP Av. dData • Retorno: Numérico >=0 e <=12 Para uma data válida. Nenhum • Retorno: Numérico >=0 e <=86399 Retorna a hora do sistema em segundos.. onde hh é a hora ( 1 a 24 ).... 0 Se a data for nula ou inválida Exemplo: dData := DATE() // Resultado: 09/01/01 nMes := MONTH(DATE()) // Resultado: 9 nMes := MONTH(DATE()) + 1 // Resultado: 10 SECONDS() Esta função retorna o número de segundos decorridos desde a meia-noite. nº 608 – Metrô Conceição .advpl. Está relacionada à função TIME() que retorna a hora do sistema como uma cadeia de caracteres no formato hh:mm:ss.com. semelhante a função que retorna o nome do mês a partir do valor de dData.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: MONTH( dData ) Parâmetros: Data que será convertida.br 44 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: A diferença de tempo no formato hh:mm:ss.com. O valor numérico representa o número de segundos decorridos desde a meia-noite. <instruções> . • • Sintaxe: SECONDS() Parâmetros: . Caracter Exemplo: cHoraInicio := TIME() // Resultado: 10:00:00 .

YEAR() é membro de um grupo de funções que retornam valores numéricos de uma data. 1.br 45 . Nenhum • Retorno: Caracter A hora do sistema como uma cadeia de caracteres no formato hh:mm:ss onde hh é a hora ( 1 a 24 ).ADVPL GUIA DE REFERÊNCIA Versão 1. Exemplo: cTime := TIME() // Resultado: 10:37:17 cHora := SUBSTR(cTime. nElapsed nStart:= SECONDS() TIME() Função que retorna a hora do sistema como uma cadeia de caracteres.advpl. dData • Retorno: Numérico Valor numérico do ano da data especificada em dData incluindo os dígitos SP Av.br . 4.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” baseado no relógio de 24 horas e varia de 0 a 86399. nº 608 – Metrô Conceição . • • Sintaxe: YEAR( dData ) Parâmetros: Data que será convertida.www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. que retorna o valor inteiro representando o número de segundos desde a meia-noite. 2) // Resultado: 17 YEAR() YEAR() é uma função de conversão de data que extrai o valor numérico do ano. mm os minutos e ss os segundos.com. 2) // Resultado: 37 cSegundos := SUBSTR(cTime.com. Exemplo: cHora := TIME() // Resultado: 10:00:00 cSegundos := SECONDS() // Resultado: 36000. 2) // Resultado: 10 cMinutos := SUBSTR(cTime. 7. • • Sintaxe: TIME() Parâmetros: . Leona rdo da Vinci. O grupo inclui DAY() e MONTH() que retornam o dia e o mês como valores numéricos. SECONDS() é geralmente usada no lugar de TIME() para cálculos.00 //Este exemplo usa a função SECONDS() para cronometrar o tempo decorrido: LOCAL nStart. e que está relacionada com SECONDS().

com. usando como semente o segundo 46 Av.com.br .nPessoas))+“faltando”) ENDIF ALEATORIO() Gera um número aleatório de acordo com a semente passada. nº 608 – Metrô Conceição .br - SP . 1990 FUNCTION Mdy( dDate ) RETURN CMONTH(dDate) + " " + LTRIM(STR(DAY(dDate))) + ".www.advpl. • • Sintaxe: ABS(nValor) Parâmetros Valor que será avaliado nValor Exemplo: nPessoas := 20 nLugares := 18 IF nPessoas < nLugares MSGINFO(“Existem ”+CVALTOCHAR(nLugares.nPessoas)+“disponíveis”) ELSE MSGSTOP(“Existem ”+CVALTOCHAR(ABS(nLugares.ADVPL GUIA DE REFERÊNCIA Versão 1. O valor retornado não é afetado pelos valores especificados pelos comandos SET DATE ou SET CENTURY. Leona rdo da Vinci." + STR(YEAR(dDate)) Manipulação de variáveis numéricas ABS() Retorna um valor absoluto (independente do sinal) com base no valor especificado no parâmetro. Para uma data inválida ou nula será retornado o valor 0. Exemplo 1: dData := DATE() // Resultado: 09/20/01 dAno := YEAR(dData) // Resultado: 2001 dAno := YEAR(dData) + 11 // Resultado: 2012 Exemplo 2: // Este exemplo cria uma função de usuário que usa a função YEAR() para formatar o valor da // data: cData := Mdy(DATE()) // Result: September 20. Esta função retorna um número aleatório menor ou igual ao primeiro parâmetro informado.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” do século.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” parâmetro.ADVPL GUIA DE REFERÊNCIA Versão 1. É recomendado que esta semente seja sempre o último número aleatório gerado por esta função.3)+”§ numero aleatorio gerado: “+Str(nSeed.www.25 IF nDinheiro >= (nQuantidade*nPrcUnit) RETURN nQuantidade ELSEIF nDinheiro > nPrcUnit nQuantidade := INT(nDinheiro / nPrcUnit) ELSE nQuantidade := 0 ENDIF RETURN nQuantidade NOROUND() Av.3) Next i inkey(0) Return INT() Retorna a parte inteira de um valor especificado no parâmetro.com.nSeed) ? Str(i. nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br .com.br - SP 47 . • • Sintaxe: Aleatorio(nMax. • • Sintaxe: INT(nValor) Parâmetros Valor que será avaliado nValor Exemplo: STATIC FUNCTION COMPRAR(nQuantidade) LOCAL nDinheiro := 0.30 LOCAL nPrcUnit := 0.nSeed) Parâmetros Número máximo para a geração do número aleatório Semente para a geração do número aleatório nMax nSeed Exemplo: Função ALEATORIO() nSeed := 0 For i := 1 to 100 nSeed := Aleatorio(100.advpl.

utilizando o critério matemático.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci. Sintaxe: RANDOMIZE ( < nMinimo > . nCasas) Parâmetros Av. Numérico ROUND() Retorna um valor. Corresponde ao maior número ( menos um ) a ser gerado pela função. nCasas) Parâmetros Valor que será avaliado Número de casas decimais válidas. nº 608 – Metrô Conceição . compreendido entre a faixa inferior e superior recebida através dos parâmetros nMinimo e nMaximo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Retorna um valor. • • nMinimo nMaximo • Retorno: Numero randômico . • • Sintaxe: NOROUND(nValor.2) sempre retornará 1 .br . respectivamente. geramos um numero inteiro aleatório. podendo ser sorteado e fazer parte do retorno.2) 2.br SP 48 . < nMaximo > ) Parâmetros Corresponde ao menor numero a ser gerado pela função.com. Observação: • O limite inferior recebido através do parâmetro nMinimo é "maior ou igual a ". nValor nCasas Exemplo: Função NOROUND() nBase := 2. compreendido no intervalo entre (nMinimo) e (nMaximo-1) : O numero gerado pode ser maior ou igual à nMinimo e menor ou igual a nMaximo-1 . A partir da casa decimal especificada os valores serão desconsiderados. de modo a nunca será atingido ou devolvido no resultado.com. porém o limite superior é "menor que". arredondando a parte decimal do valor especificado no parâmetro de acordo com a quantidades de casas decimais solicitadas.98 RANDOMIZE() Através da função RANDOMIZE() . Por exemplo .985 nValor := NOROUND(nBase. a chamada da função RANDOMIZE(1.www. truncando a parte decimal do valor especificado no parâmetro de acordo com a quantidade de casas decimais solicitadas.ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: ROUND(nValor.

serão aceitos todos os arquivos do diretório default ( *. • Sintaxe: ADIR([ cArqEspec ].advpl. Tanto arquivos locais (Remote) como do servidor podem ser informados. [ aAtributo ]) Parâmetros: Caminho dos arquivos a serem incluídos na busca de informações.TXT". Caracteres como * e ? são aceitos normalmente. Array de Datas. Array de Caracteres. • cArqEspec aNomeArq aTamanho aData aHora aAtributos • Retorno: Quantidade de arquivos encontrados. [ aNomeArq ]. Array Numérico. Segue o padrão para especificação de arquivos. Array de Caracteres. [aHora]. através da máscara informada. São as datas de modificação dos arquivos encontrados na busca.com. aFiles) Av. [ aData ].São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www. aceitando arquivos no servidor Protheus e no Cliente.TXT")] ADIR("*. nArquivos Exemplo: LOCAL aFiles[ADIR("*.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nValor nCasas Valor que será avaliado Número de casas decimais válidas. As demais casas decimais sofrerão o arredondamento matemático.br . Array de Caracteres.O conteúdo anterior do array é apagado. senão +1 para a casa decimal superior. Caso seja omitido. É o array com os nomes dos arquivos encontrados na busca.com. Importante: ADir é uma função obsoleta. São os atributos dos arquivos. aonde: Se nX <= 4 0.985 nValor := ROUND(nBase. Exemplo: nBase := 2. Cada elemento contém horário no formato: hh:mm:ss.99 Manipulação de arquivos ADIR() Função que preenche os arrays passados com os dados dos arquivos encontrados. serão incluídos os arquivos com atributos de sistema e ocultos. Leona rdo da Vinci. São os horários de modificação dos arquivos encontrados.2) 2. nº 608 – Metrô Conceição .br SP 49 . caso esse array seja passado como parâmetros. São os tamanhos dos arquivos encontrados na busca. [ aTamanho ]. utilize sempre Directory().* ).ADVPL GUIA DE REFERÊNCIA Versão 1.

para não exibir ExpC1 ExpC2 ExpN1 ExpC3 Expl1 ExpN2 ExpL2 • Máscaras de bits para opções: Solicita confirmação para sobrescrever Permite selecionar múltiplos arquivos Não permite mudar o diretório inicial Exibe o(s) Drive(s) de disquete da maquina local Exibe o(s) HardDisk(s) Local(is) Exibe os drives da rede ( Mapeamentos ) Não implementado Retorna um diretório GETF_OVERWRITEPROMPT GETF_MULTISELECT GETF_NOCHANGEDIR GETF_LOCALFLOPPY GETF_LOCALHARD GETF_NETWORKDRIVE GETF_SHAREWARE GETF_RETDIRECTORY Exemplo: cGetFile ( '*.www. para mostrar botão como 'Salvar' e .br - SP 50 .com.PRW|*. 'C:\VER507'. Esta função está normalmente associada ao recurso de abrir ou salvar arquivos..##R') Titilo da Janela Numero da mascara default ( Ex: 1 p/ *. .F. GETF_LOCALHARD + Av.T. Leona rdo da Vinci. .F. ExpC3. ExpC2. ExpN2. disponibilizando uma interface gráfica para amigável para o usuário.F.com.ExpL2 ) Parâmetros: Mascara para filtro (Ex: 'Informes Protheus (*. nº 608 – Metrô Conceição .br . ExpN1. para botão 'Abrir' Mascara de bits para escolher as opções de visualização do Objeto. ExpL1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” AEVAL(aFiles.T. • • Sintaxe: cGetFile ( ExpC1. { |element| QOUT(element) }) CGETFILE() Função utilizada para seleção de um arquivo ou diretório. 'Fontes'.CH' GETF_LOCALFLOPPY) • Aparência: .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. permitindo para esta última a digitação opcional do nome do arquivo que será gravado.##R) | *. para exibir diretório [Servidor] e . 1.exe ) Diretório inicial se necessário .ADVPL GUIA DE REFERÊNCIA Versão 1.advpl.

01.ADVPL GUIA DE REFERÊNCIA Versão 1. DIRECTORY() e o objeto LISTBOX() conforme abaixo: • • • CGETFILE: exibe os diretórios disponíveis e retorna o nome do item selecionado. | //+--------------------------------------------------------------------+ //| Uso | CURSO DE ADVPL | //+--------------------------------------------------------------------+ Av.br SP 51 . Exemplo: Seleção de múltiplos arquivos com CGETFILE. para que sejam selecionados os arquivos que serão processados.ch" //+--------------------------------------------------------------------+ //| Rotina | SELFILE | Autor | | Data | 01. | Função exemplo para seleção de múltiplos arquivos.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. DIRECTORY: efetua a leitura dos arquivos contidos no diretório retornado pela CGETFILE.com.2007 | //+--------------------------------------------------------------------+ //| Descr.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Para permitir a seleção de diversos arquivos contidos em um diretório é necessário combinar as funções CGETFILE().www. nº 608 – Metrô Conceição . Leona rdo da Vinci.advpl. DIRECTORY() e LISTBOX() Função Principal: SELFILE() #include "protheus.com. LISTBOX: Exibe uma tela de seleção de com a opção de marcação.br .

*") aArquivos := MARKFILE(aArquivos. Leona rdo da Vinci.T.ADVPL GUIA DE REFERÊNCIA Versão 1.cDirectory.com.br SP 52 .@lSelecao) FOR nArq TO Len(aArquivos) IF !aArquivos[nArq][1] LOOP ENDIF <. . nº 608 – Metrô Conceição .br ..advpl. | Função exemplo de uso da PARAMBOX em conjunto com CGETFILE| //+--------------------------------------------------------------------+ //| Uso | CURSO DE ADVPL | //+--------------------------------------------------------------------+ STATIC FUNCTION PARBOXFILE() Local Local Local Local Local Local Local aParamBox := {} cTitulo := "Filtros Adicionais" aRet := {} bOk := {|| .} aButtons := {} lCentered := .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.T..com.T.)) aArquivos := Directory(cDirectory+"*.www.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” USER FUNCTION SELFILE() LOCAL cDirectory := "" LOCAL aArquivos := {} LOCAL nArq := 0 PRIVATE aParamFile:= ARRAY(1) IF !PARBOXFILE() RETURN ENDIF // Exibe a estrutura de diretório e permite a seleção dos arquivos que serão processados cDirectory := ALLTRIM(cGetFile("Arquivos de Dados|'"+aParamFile[1]+"'|".processamento.aParamFile[1].01.. GETF_OVERWRITEPROMPT + GETF_NETWORKDRIVE + GETF_RETDIRECTORY.. 0.> NEXT nArq RETURN Função auxiliar: PARBOXFILE() //+--------------------------------------------------------------------+ //| Rotina | PARBOXFILE | Autor | | Data | 01.2007 | //+--------------------------------------------------------------------+ //| Descr...''.T. 'Importação de lançamentos'. nPosx Av.

com. "LBOK") Local oNo := LoadBitmap( GetResources().br SP 53 . lCentered.ADVPL GUIA DE REFERÊNCIA Versão 1. ValType(aRet[nX]) == "C" aParam102[nX] := aRet[nX] // Tipo do arquivo ElseIf aParamBox[nX][1] == 2 . nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.AND.advpl. cTitulo.. bOk.}) lRet := ParamBox(aParamBox.T. | //+--------------------------------------------------------------------+ //| Uso | CURSO DE ADVPL | //+--------------------------------------------------------------------+ STATIC FUNCTION MARKFILE(aArquivos.AND."*. nPosx.cVarQ // Carrega bitmaps Local oOk := LoadBitmap( GetResources(). lCanSave.} // Variáveis utilizadas na seleção de categorias Local oChkQual. cLoad.lSelecao) Local aChaveArq := {} Local cTitulo := "Arquivos para importação: " Local bCondicao := {|| .. | Função exemplo para marcação de múltiplos arquivos.{2."AllwaysTrue()".T.www.com. ValType(aRet[nX]) == "N" aParam102[nX] := aParamBox[nX][4][aRet[nX]] // Tipo do arquivo Endif Next nX ENDIF RETURN lRet Função auxiliar: MARKFILE() //+--------------------------------------------------------------------+ //| Rotina | MARKFILE | Autor | | Data | 01. "LBNO") // Variáveis utilizadas para lista de filiais Local nx := 0 Local nAchou := 0 //+--------------------------------------------------------------------+ //| Carrega os arquivos do diretório no array da ListBox | //+--------------------------------------------------------------------+ For nX := 1 to Len(aArquivos) Av.cDiretorio. lUserSave := . AADD(aParamBox. Len(aRet) == Len(aParamBox) For nX := 1 to Len(aParamBox) If aParamBox[nX][1] == 1 aParam102[nX] := aRet[nX] ElseIf aParamBox[nX][1] == 2 .br . Leona rdo da Vinci.cDriver.01.F.lQual. nX := 0 lRet := . lUserSave) IF ValType(aRet) == "A" .100. nPosy."Tipo de arquivo" .F.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Local Local Local Local Local Local nPosy cLoad := "" lCanSave := .dtc"}.T.{"*. aRet. aButtons.dbf".oQual.2007 | //+--------------------------------------------------------------------+ //| Descr.2.AND.

..01.{.F.2007 | //+--------------------------------------------------------------------+ //| Uso | CURSO DE ADVPL | //+--------------------------------------------------------------------+ STATIC FUNCTION MarcaOk(aArray) Local lRet:=.F.T.) ENABLE OF oDlg DEFINE SBUTTON FROM 134.F.aArquivos[nX][1].0 To 445.628.F.1] Return aArray Função auxiliar: MARCAOK() //+--------------------------------------------------------------------+ //| Rotina | MARCAOK | Autor | | Data | 01. 10.cDiretorio}) Next nX //+--------------------------------------------------------------------+ //| Monta tela para seleção dos arquivos contidos no diretório | //+--------------------------------------------------------------------+ DEFINE MSDIALOG oDlg TITLE cTitulo STYLE DS_MODALFRAME From 145.20 CHECKBOX oChkQual VAR lQual PROMPT "Inverte Seleção" SIZE 50.com.01. (lSelecao := .300 LABEL UPPER(cDriver) OF oDlg PIXEL @ 15.3]}} DEFINE SBUTTON FROM 134.oNo). Leona rdo da Vinci.2007 | //+--------------------------------------------------------------------+ //| Uso | CURSO DE ADVPL | //+--------------------------------------------------------------------+ STATIC FUNCTION Troca(nIt.20 LISTBOX oQual VAR cVarQ Fields HEADER "".1] := !aArray[nIt.. OF oMainWnd PIXEL oDlg:lEscClose := .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl..aArray) aArray[nIt.1].270 TYPE 2 ACTION (lSelecao := ...www.F.br SP 54 . aChaveArq[oQual:nAt. Av. 273.br .. oDlg:End(). OF oDlg PIXEL.oOk.Contem os arquivos que serão exibidos para seleção | //+--------------------------------------------------------------------+ AADD(aChaveArq.)) @ 30. {|z| z[1] := If(z[1]==. @ 05..15 TO 125. ENABLE OF oDlg ACTIVATE MSDIALOG oDlg CENTERED RETURN aChaveArq Função auxiliar: TROCA() //+--------------------------------------------------------------------+ //| Rotina | TROCA | Autor | | Data | 01.F.)}).oQual:Refresh()).090 ON DBLCLICK (aChaveArq:=Troca(oQual:nAt.aChaveArq).T.240 TYPE 1 ACTION IIF(MarcaOk(aChaveArq). ON CLICK (AEval(aChaveArq. nº 608 – Metrô Conceição ."Descrição" SIZE.2].aChaveArq[oQual:nAt.ADVPL GUIA DE REFERÊNCIA Versão 1.T.).F. oDlg:End())."Código". NoScroll OF oDlg PIXEL oQual:SetArray(aChaveArq) oQual:bLine := { || {If(aChaveArq[oQual:nAt.T..advpl..com.. oQual:Refresh(..0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” //+--------------------------------------------------------------------+ //| aChaveArq .

www. ) CPYT2S() Função utilizada para copiar um arquivo do cliente (Remote) para o servidor.br . Diretório com o destino dos arquivos no Client ( Remote ).com. WildCards ( * e ? ) são aceitos normalmente. [ lCompacta ]) • Parâmetros: Av.DOC". em caso de falha na cópia. "C:\TEMP". sem compactar antes de transmitir CpyS2T( "\BKP\MANUAL.T. . • Sintaxe: CpyT2S( cOrigem.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.1] lRet:=. caso o arquivo seja copiado com sucesso .T. sendo que os caracteres “*” e “?” são aceitos normalmente. aceita apenas arquivos no servidor. Caso a compactação seja habilitada (lCompacta).F. . Lógico Exemplo: // Copia arquivos do servidor para o remote local. Caso a compactação seja habilitada (lCompacta). • Sintaxe: CPYS2T ( < cOrigem > . FILE". [ lCompacta ] ) • Parâmetros: cOrigem cDestino lCompacta • Retorno: lSucess retorna .T.0) EndIf Return lRet CPYS2T() Função utilizada para copiar um arquivo do servidor para o cliente (Remote). "C:\TEMP". < cDestino > .1."HELP"."Não existem itens marcados". os dados serão transmitidos de maneira compacta e descompactados antes do uso. ) // Copia arquivos do servidor para o remote local. ou . EndIf Next nx // Checa se existe algum item marcado na confirmação If !lRet HELP("SELFILE". Nome(s) dos arquivos a serem copiados. nº 608 – Metrô Conceição . Leona rdo da Vinci.br - SP 55 .F. Indica se a cópia deve ser feita compactando o arquivo antes do envio. sendo que os caracteres “*” e “?” são aceitos normalmente."SEL.com. cDestino.advpl. compactando antes de transmitir CpyS2T( "\BKP\MANUAL.1.DOC". os dados serão transmitidos de maneira compacta e descompactados antes do uso.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Local nx:=0 // Checa marcações efetuadas For nx:=1 To Len(aArray) If aArray[nx.ADVPL GUIA DE REFERÊNCIA Versão 1.

INI do Protheus Server. seja inválido . Diretório com o destino dos arquivos no remote ( Cliente ). WildCards são aceitos normalmente. Caso o path recebido como parâmetro não exista . • • Sintaxe: CURDIR ( [ cNovoPath ] ) Parâmetros: Caminho relativo .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cOrigem cDestino lCompacta • Retorno: Nomes dos arquivos a serem copiados. Caso seja passado o parâmetro cNovoPath . a função não irá setar o novo path. cNovoPath • Retorno: Caracter Diretório corrente. Inicialmente . mantendo o atual .advpl. Lógico Indica se o arquivo foi copiado para o cliente com sucesso. Leona rdo da Vinci.com. Exemplo: cOldDir := curdir() cNewDir := '\webadv\xis' curdir(cNewDir) // Troca o path If cNewDir <> '\'+curdir() // E verifica se trocou mesmo conout('Falha ao Trocar de Path de '+cOldDir + ' para '+cNewDir) Else conout('Path de '+cOldDir + ' trocado para '+cNewDir+' com sucesso. este path é assumido como sendo o Path atual. "\BKP".DOC". ou seja um path absoluto (iniciado com uma letra de drive ou caminho de rede).INI do Protheus Server.br . Indica se a cópia deve ser feita compactando o arquivo antes.com. sem a primeira barra.ADVPL GUIA DE REFERÊNCIA Versão 1. aceita apenas arquivos locais ( Cliente ).www.DOC". ) // Copia arquivos do cliente( remote ) para o Servidor sem compactar.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Exemplo: // Copia arquivos do cliente( remote ) para o Servidor compactando antes de transmitir CpyT2S( "C:\TEMP\MANUAL.') Endif Av. CpyT2S( "C:\TEMP\MANUAL. O caminho retornado é sempre relativo ao RootPath definido na configuração do Environment no . com o novo diretório que será ajustado como corrente. .br - SP 56 . "\BKP" ) CURDIR() Função que retorna o diretório corrente do servidor.T. nº 608 – Metrô Conceição . também definido na configuração do Environment no . o diretório atual da aplicação é o constante na chave StartPath .

ADVPL GUIA DE REFERÊNCIA Versão 1. Caracteres do tipo coringa são permitidos na especificação de arquivos. Em combinação com AEVAL(). que contém os #defines para os subarray subscripts. nº 608 – Metrô Conceição . • TABELA B: Estrutura dos Subvetores de DIRECTORY() Posição 1 2 3 4 5 • • Metasímbolo cNome cTamanho dData cHora cAtributos Directry.com. porém retorna um único vetor ao invés de adicionar valores a uma série de vetores existentes passados por referência. Leona rdo da Vinci. [ ] ) Parâmetros: <cDirSpec> especifica o drive.advpl. é fornecido o arquivo header Directry.*. você pode definir um bloco que pode ser aplicado a todos os arquivos que atendam a <cDirSpec> especificada. Caso <cDirSpec> seja omitido. obedecendo às definições de Path Absoluto / Relativo de acesso.br - SP 57 . especificada anteriormente. <cAtributos> especifica que arquivos com atributos especiais devem ser incluídos na informação retornada. <cAtributos> consiste em uma cadeia de caracteres que contém um ou mais dos seguintes caracteres.br . diretório e arquivo para a pesquisa no diretório. DIRECTORY() pode ser utilizada para realizar operações em conjuntos de arquivos. É semelhante a ADIR(). contidos na tabela adicional A .www. o valor padrão é *. Para tornar as referências aos vários elementos de cada sub-vetor de arquivo mais legíveis.com.ch F_NAME F_SIZE F_DATE F_TIME F_ATT Sintaxe: DIRECTORY ( < cDirSpec > .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DIRECTORY() Função de tratamento de ambiente que retorna informações a respeito dos arquivos no diretório corrente ou especificado.ch. ou no servidor. a não ser que V seja especificado. O caminho especificado pode estar na estação (remote) .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • TABELA A: Atributos de DIRECTORY() Atributo H S D V Significado Incluir arquivos ocultos Incluir arquivos de sistema Incluir diretórios Procura pelo volume DOS e exclui outros arquivos Nota: Arquivos normais são sempre incluídos na pesquisa. cDirSpec cAtributos> • Retorno: Av.

• • Sintaxe: DIRREMOVE ( < cDiretorio > ) Parâmetros: Nome do diretório a ser removido. a partir do RootPath do ambiente ( caso o path comece com \ ). Quando especificado um path absoluto ( com unidade de disco preenchida ). sem subdiretórios ou arquivos dentro do mesmo.br - SP 58 . caso o diretório tenha sido eliminado . não é possível especificar um Path absoluto de disco. nº 608 – Metrô Conceição . caso não seja possível excluir o diretório.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. a função será executada na estação onde está sendo executado o Protheus Remote. a função retornará . e FError() retornará -1 ( Syntax Error ).F.com. sendo que cada sub-vetor contém informações sobre cada arquivo que atenda a <cDirSpec>.br . discriminada anteriormente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Array DIRECTORY() retorna um vetor de sub-vetores. Note que é necessário ter direitos suficientes para remover um diretório. Exemplo: cDelPath := 'c:\TmpFiles' lRemoveOk := DIRREMOVE(cDelPath) IF !lRemoveOk MsgStop('Falha ao remover a pasta '+cDelPath+' ( File Error '+str(Fewrror(). ou a partir do diretório corrente (caso o path não seja iniciado com \ ). e o diretório a ser eliminado precisa estar vazio.*". é possível obter mais detalhes da ocorrência recuperando o código do Erro através da função FError().4)+' ) ') Else MsgStop('Pasta '+cDelPath+' removida com sucesso.F. ele será considerado no ambiente do Servidor ."D") AEVAL( aDirectory.advpl. .com.T. ou . {|aFile| CONOUT(aFile[F_NAME])} ) DIRREMOVE() Função que elimina um diretório especifico.Veja maiores detalhes na Tabela B. Quando a função DirRemove retornar .www. Quando executamos a função DirRemove() em JOB ( processo isolado no Server .ch" aDirectory := DIRECTORY("*. Caso especifiquemos um path sem a unidade de disco . sem interface ).') Endif Av. Leona rdo da Vinci. Exemplo: #INCLUDE "Directry.F. cDiretorio • Retorno: Lógico lSucesso será . Caso isto seja realizado .ADVPL GUIA DE REFERÊNCIA Versão 1.

Substitua o disco na Unidade A:') Else MsgStop('Unidade A: Verificada . Drive A: da estação remota. Esta função obtém a informação sempre relativa à estação onde está sendo executado o Protheus Remote. nº 608 – Metrô Conceição . onde 0 é o espaço na unidade de disco corrente.br SP 59 .12)+' bytes livres. If nBytes_A == -1 MsgStop('Unidade A: não está disponível ou não há disco no Drive') ElseIf nBytes_A < 8192 MsgStop('Não há espaço disponível no disco. Drive C: da estação remota.www. 2 é o drive B: do cliente.') Else MsgStop('Unidade de disco local possui '+str(nBytes_A..br . nDrive • Retorno: Número de bytes disponíveis no disco informado como parâmetro. selecionamos qual a unidade de disco que desejamos obter a informação do espaço livre . Caso a função DiskSpace seja executada através de um Job ( processo isolado no Servidor . sem interface Remota ) . Numérico Exemplo: nBytesLocal := DISKSPACE( ) // Retorna o espaço disponível na unidade de disco local IF nBytesLocal < 1048576 MsgStop('Unidade de Disco local possui menos de 1 MB livre. e 1 é o drive A: do cliente. a função DISKSPACE() retornará -1 • • Sintaxe: DISKSPACE ( [ nDrive ] ) Parâmetros: Número do drive.12)+' bytes livres.') Endif nBytes_A := DISKSPACE( 1 ) // Retorna o espaço disponível no drive A: local ( remote ). Drive D: da estação remota . '+str(nBytes_A. Através do parâmetro nDrive . e assim por diante.ADVPL GUIA DE REFERÊNCIA Versão 1.com.') Endif EXISTDIR() Função utilizada para determinar se um path de diretório existe e é valido..São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DISKSPACE() Função de ambiente que determina quantos bytes estão disponíveis em uma determinada unidade de disco.advpl.com. Drive B: da estação remota. ou seja passado um argumento de unidade de disco inexistente ou indisponível . • Sintaxe: EXISTDIR (< cPath >) Av. etc. onde: 0 1 2 3 4 : : : : : Unidade de disco atual da estação (DEFAULT).

F. do contrário. cPath • Retorno: Retorna se verdadeiro(. FCLOSE() retorna falso (. retorna verdadeiro (. Nota: Esta função permite acesso de baixo nível aos arquivos e dispositivos do DOS. invalid handle.advpl. Consulte FERROR() para obter uma lista completa dos códigos de erro.br .) se ocorre um erro enquanto os buffers estão sendo escritos. caso contrário devemos passar o path completo do diretório.) caso contrário.com. Por exemplo.ch" nHandle := FCREATE("Testfile". nHandle • Retorno: Lógico Retorna falso (. Lógico Exemplo 1: No server a partir do rootPath lRet := ExistDir('\teste') Exemplo 2: No client. • • Sintaxe: FCLOSE ( < nHandle > ) Parâmetros: Handle do arquivo obtido previamente através de FOPEN() ou FCREATE().ADVPL GUIA DE REFERÊNCIA Versão 1. Caso a operação falhe. falso(.www. devemos informar a partir do rootPath do Protheus.) caso o diretório solicitado exista.). Ela deve ser utilizada com extremo cuidado e exige que se conheça a fundo o sistema operacional utilizado.F.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.T.com.T. passando o FullPath lRet := ExistDir('c:\APO') FCLOSE() Função de tratamento de arquivos de baixo nível utilizada para fechar arquivos binários e forçar que os respectivos buffers do DOS sejam escritos no disco.). nº 608 – Metrô Conceição . Leona rdo da Vinci. FERROR() pode então ser usado para determinar a razão exata da falha.br - SP 60 .) e FERROR() retorna erro 6 do DOS.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: String contendo o diretório que será verificado.F. ao tentar-se usar FCLOSE() com um handle (tratamento dado ao arquivo pelo sistema operacional) inválido retorna falso (. FC_NORMAL) Av. caso seja feita uma verificação a partir do server. Exemplo: #include "Fileio.F.

Leona rdo da Vinci.advpl. Ao ser executada FCREATE() cria um arquivo ou elimina o seu conteúdo. nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Por exemplo . Cria o arquivo protegido para gravação. estão descritos os atributos para criação do arquivo . cArquivo nAtributo • Retorno: A função retornará o Handle do arquivo para ser usado nas demais funções de manutenção de arquivo. e será possível obter maiores detalhes da ocorrência através da função FERROR() . para ser usado nas demais funções de manutenção de arquivo. Caso não seja possível criar o arquivo . erro numero: ". definidos no arquivo header fileio.ch • Atributos definidos no include FileIO. respectivamente . passamos como atributo FC_READONLY + FC_HIDDEN. Após ser utilizado . Nota: Caso o arquivo já exista . Caso desejemos especificar mais de um atributo .com. . basta somá-los . [ nAtributo ] ) Parâmetros: Nome do arquivo a ser criado .www. Numérico FERASE() Av. Na tabela abaixo . e seu tamanho será truncado para 0 ( ZERO ) bytes. • • Sintaxe: FCREATE ( < cArquivo > .br - SP 61 . podendo ser especificado um path absoluto ou relativo . para criar arquivos no ambiente local ( Remote ) ou no Servidor. Caso não especificado.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” If !FCLOSE(nHandle) conout( "Erro ao fechar arquivo. para criar um arquivo protegido contra gravação e escondido .ADVPL GUIA DE REFERÊNCIA Versão 1. Cria o arquivo como sistema.com. o DEFAULT é FC_NORMAL. e retorna o handle (manipulador) do arquivo.br . O Handle será maior ou igual a zero. o Arquivo deve ser fechado através da função FCLOSE(). a função retornará o handle -1 .ch Constante FC_NORMAL FC_READONLY FC_HIDDEN FC_SYSTEM Valor 0 1 2 4 Descrição Criação normal do Arquivo (default/padrão). Atributos do arquivo a ser criado (Vide Tabela de atributos abaixo). FERROR() ) EndIf FCREATE() Função de baixo-nível que permite a manipulação direta dos arquivos textos como binários. Cria o arquivo como oculto. o conteúdo do mesmo será ELIMINADO .

bem como wildcards (Caracteres “*” e “?” ). Caminhos locais (Remote) ou caminhos de servidor são aceitos .com.4)+ ')') Else MsgStop('Arquivo deletado com sucesso. informando o status da operação IF FERASE("C:\ListaTXT. Leona rdo da Vinci. O Arquivo pode estar no Servidor ou na estação local (Remote). não sendo permitido a utilização de caracteres coringa (wildcards).') ENDIF FILE() Função que verifica se existe um arquivo ou um padrão de arquivos. para apagar arquivos na estação local ( Remote ) ou no Servidor.www. e -1 caso não seja possível apagar o arquivo.tmp") == -1 MsgStop('Falha na deleção do Arquivo ( FError'+str(ferror(). caso o arquivo especificado exista. respectivamente. a função retorna . no diretório. podendo ser especificado um path (caminho) .com. Caso a função retorne -1.Remote ) ou relativos ( a partir do RootPath do Protheus Server) . sendo os caracteres “*” e “?” ( wildcards) aceitos.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Função utilizada para apagar um arquivo no disco . cArquivo • Retorno: O retorno será .T.br - SP . Podem ser especificados caminhos absolutos ( arquivos na estação .F. Pode ser especificado um path absoluto ou relativo . Numérico Exemplo: #include 'DIRECTRY.CH' aEval(Directory("*. Lógico Exemplo: 62 Av. é possível obter maiores detalhes da ocorrência através da função FERROR().São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.advpl. cArquivo • Retorno: A função retornará 0 caso o arquivo seja apagado com sucesso .br . nº 608 – Metrô Conceição . • • Sintaxe: FERASE ( < cArquivo > ) Parâmetros: Nome do arquivo a ser apagado . { |aFile| FERASE(aFile[F_NAME]) }) // Este exemplo apaga um arquivo no cliente ( Remote ) . Caso o mesmo não exista no path especificado .BAK"). • • Sintaxe: FILE ( < cArquivo > ) Parâmetros: Nome do arquivo .ADVPL GUIA DE REFERÊNCIA Versão 1. O arquivo para ser apagado deve estar fechado.

e ele é exigido para identificar o arquivo aberto para as outras funções de tratamento de arquivo. caso o arquivo não exista. Caso o arquivo especificado seja aberto. Nota: Esta função permite acesso de baixo nível a arquivos e dispositivos. a função retornará . a não ser que um path seja Av.txt) . Por exemplo. como mostra o exemplo desta função. Este valor é semelhante a um alias no sistema de banco de dados.com.ADVPL GUIA DE REFERÊNCIA Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” //Verifica no diretório corrente do servidor se existe o arquivo teste.br SP 63 . e FERROR() retornará -1 ). Ela deve ser utilizada com extremo cuidado e exige que se conheça a fundo o sistema operacional utilizado.dbf FILE("C:\TEMP\TESTE.advpl. nº 608 – Metrô Conceição .br .dbf") // Verifica no diretório Sigaadv do servidor se existe o arquivo teste.dbf") // Verifica no diretório Temp do cliente (Remote) se existe o arquivo teste. FOPEN procura o arquivo no diretório corrente e nos diretórios configurados na variável de pesquisa do Sistema Operacional. Portanto.dbf FILE("\SIGAADV\TESTE.dbf") Caso a função FILE() seja executada em Job ( programa sem interface remota ). Veja FERROR() para uma lista completa dos códigos de erro. Leona rdo da Vinci.dbf FILE("teste. cString Exemplo: Local cString := '\SIGAADV\ARQZZZ.DBF' cString := FileNoExt( cString ) // Retorno “\SIGAADV\ARQZZZ” FOPEN() Função de tratamento de arquivo de baixo nível que abre um arquivo binário existente para que este possa ser lido e escrito.com. • • Sintaxe: FileNoExt( cString ) Parâmetros String contendo o nome do arquivo.www. o valor retornado é o handle (manipulador) do Sistema Operacional para o arquivo. dependendo do argumento <nModo>.F. Toda vez que houver um erro na abertura do arquivo. FERROR() pode ser usado para retornar o código de erro do Sistema Operacional. ignorando a extensão.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. FILENOEXT() Função que retorna o nome de um arquivo contido em uma string. é importante sempre atribuir o valor que foi retornado a uma variável para uso posterior. sendo passado um caminho absoluto de arquivo (exemplo c:\teste. FOPEN() retorna -1 e FERROR() retorna 2 para indicar que o arquivo não foi encontrado.

FOPEN() retorna -1..4)) Else MsgStop('Arquivo aberto com sucesso. com compartilhamento por Compatibilidade. as funções de tratamento de arquivos podem trabalhar em arquivos localizados no cliente (estação) ou no servidor.br . O modo padrão é zero.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.. Ao definirmos o modo de acesso . nH := fopen('\sigaadv\error. O ADVPL identifica o local onde o arquivo será manipulado através da existência ou não da letra do drive no nome do arquivo passado em <cArq>. somente para leitura.ch) FO_READ FO_WRITE FO_READWRITE Operação Aberto para leitura (padrão assumido) Aberto para gravação Aberto para leitura e gravação Modo 0 1 2 Av. [ nModo ] ) Parâmetros: Nome do arquivo a ser aberto que inclui o path caso haja um. cArq nModo • Retorno: FOPEN() retorna o handle de arquivo aberto na faixa de zero a 65.. se o arquivo for especificado com a letra do drive. será aberto no servidor com o diretório configurado como rootpath sendo o diretório raiz para localização do arquivo. Modo de acesso DOS solicitado que indica como o arquivo aberto deve ser acessado.ch' . Leona rdo da Vinci...log' . devemos somar um elemento da Tabela A com um elemento da Tabela B.535.com. Caso contrário.www.') .ADVPL GUIA DE REFERÊNCIA Versão 1.com. O acesso é de uma das categorias relacionadas na tabela A e as restrições de compartilhamento relacionada na Tabela B. • Tabela A: Modos de acesso a arquivos binários Constate(fileio. FO_READWRITE + FO_SHARED ) If nH == -1 MsgStop('Erro de abertura : FERROR '+str(ferror(). nº 608 – Metrô Conceição . fclose(nH) Endif . Por serem executadas em um ambiente cliente-servidor.. • • Sintaxe: FOPEN ( < cArq > . Numérico Exemplo: #include 'fileio. Caso ocorra um erro. será aberto na estação.advpl.br - SP 64 . Ou seja.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” declarado explicitamente como parte do argumento <cArq>.

através de FOPEN(). FOPENPORT(). Acesso compartilhado. Define a quantidade de Bytes que devem ser lidas do arquivo a partir posicionamento do ponteiro atual. que faz referência ao arquivo a ser lido. isto indica erro de leitura ou final de arquivo.www. FWRITE() ou FREADSTR().com. a ser utilizada como buffer de leitura . Permite a leitura e gravação por outros.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Tabela B: Modos de acesso de compartilhamento a arquivos binários Constate(fileio. onde os dados lidos deverão ser armazenados. A variável String a ser utilizada como buffer de leitura deve ser sempre pré-alocado e passado como referência. através de FOPEN(). • • Sintaxe: FREAD ( < nHandle > .br .ADVPL GUIA DE REFERÊNCIA Versão 1. nHandle cBuffer nQtdBytes • Retorno: Quantidades de bytes lidos.) e lê a partir da posição atual do ponteiro atual do arquivo .br SP 65 . FREADSTR() retornará uma string menor do que nQdBytes e Av. FOPENPORT(). Modo 0 16 32 48 64 FREAD() Função que realiza a leitura dos dados a partir um arquivo aberto. É o nome de uma variável do tipo String . FREADSTR() lerá até o número de bytes informado em nQtdBytes ou até encontrar um CHR(0).com. FREAD() lê normalmente caracteres de controle (ASC 128.ch) FO_COMPAT FO_EXCLUSIVE FO_DENYWRITE FO_DENYREAD FO_DENYNONE Operação Modo de Compatibilidade (Default) Acesso total exclusivo Acesso bloqueando a gravação de outros processos ao arquivo. Caso aconteça algum erro ou o arquivo chegue ao final. que pode ser ajustado ou modificado pelas funções FSEEK() . os dados não poderão ser retornados. < cBuffer > .advpl. FREADSTR() lê de um arquivo aberto. FCREATE() e/ou FOPENPORT(). e armazena os dados lidos por referência no buffer informado. FCREATE(). Verifique a função FERROR() para maiores detalhes. < nQtdBytes > ) Parâmetros: É o manipulador (Handle) retornado pelas funções FOPEN(). nº 608 – Metrô Conceição . FREAD() lerá até o número de bytes informado em nQtdBytes.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. caso aconteça algum erro ou o arquivo chegue ao final. Leona rdo da Vinci. ( @ antes do nome da variável ). etc. caso contrário os dados lidos não serão retornados. Numérico FREADSTR () Função que realiza a leitura de caracteres de um arquivo binário. Acesso bloqueando a leitura de outros processos ao arquivo. O tamanho desta variável deve ser maior ou igual ao tamanho informado em nQtdBytes. Caso contrário. Esta variável deve ser sempre passada por referência. FREAD() retornará um número menor que o especificado em nQtdBytes. FCREATE(). ASC 0. Caso a quantidade seja menor que a solicitada.

e fError() retornará também -1. a função retornará -1 . < cNewFile > ) Parâmetros: Nome do arquivo será renomeado. bem como especificar dois arquivos remotos e executar a função fRename() através de um JOB.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. verifique a existência do arquivo de origem. FOPENPORT(). Caso não seja especificado nenhuma unidade de disco e path. Número máximo de bytes que devem ser lidos. a função fRename() realiza a funcionalidade de MOVER o arquivo para o Path especificado. a operação de renomear o arquivo não é possível. e verifique se o nome do arquivo de destino já não existe no path de destino especificado.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” colocará o erro em FERROR(). que pode ser ajustado pelo FSEEK(). aceita caminhos do servidor e caminhos do cliente.com. < nQtdBytes > ) Parâmetros: É o manipulador retornado pelas funções FOPEN().br . ocorreu algum erro na mudança de nome : Verifique se os dois caminhos estão no mesmo ambiente. • • Sintaxe: FREADSTR ( < nHandle > . nº 608 – Metrô Conceição . A função fRename() não aceita wildcards ( * e/ou ? ). e caminho do cliente.www.advpl. Ao renomear um arquivo não esqueça que esta arquivo deverá estar fechado ( isto é . Numérico FSEEK() Av. Quando especificamos um path diferente nos arquivos de origem e destino . cOldFile cNewFile • Retorno: Se o status retornado for -1 . nHandle nQtdBytes • Retorno: Caracter Retorna uma string contendo os caracteres lidos. FRENAME() Através da função FRENAME() é possível renomear um arquivo para outro nome. se ele não está em uso no momento por outro processo . Leona rdo da Vinci. Vale lembrar que não é possível renomear um arquivo especificando nos parâmetros simultaneamente um caminho de servidor e um de estação remota. FREADSTR() lê a partir da posição atual do ponteiro. não pode estar em uso por nenhum outro processo ou estação). Caso isto ocorra. • • Sintaxe: FRENAME ( < cOldFile > . FCREATE(). aceita também caminho do servidor.com. Novo nome do arquivo. Caso o arquivo esteja aberto por outro processo .ADVPL GUIA DE REFERÊNCIA Versão 1. FWRITE( ) ou FREAD(). é considerado o path atual no servidor. tanto no servidor como na estação.br SP 66 .

advpl. nº 608 – Metrô Conceição . Ajuste a partir do final do arquivo. [ nOffSet ] .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Função que posiciona o ponteiro do arquivo para as próximas operações de leitura ou gravação. Leona rdo da Vinci. Pode ser um numero positivo . a ser considerado a partir do parâmetro passado em nOrigem. FT_FEOF() Função que retorna verdadeiro (. As movimentações de ponteiros são relativas à nOrigem que pode ter os seguintes valores. similar à função EOF() utilizada para arquivos de dados.ch) FS_SET FS_RELATIVE FS_END Operação Ajusta a partir do inicio do arquivo. [ nOrigem ] ) Parâmetros: Manipulador obtido através das funções FCREATE.ADVPL GUIA DE REFERÊNCIA Versão 1.) se o arquivo texto aberto pela função FT_FUSE() estiver posicionado no final do arquivo. FT_FGOTO() Av.ch: • Tabela A: Origem a ser considerada para a movimentação do ponteiro de posicionamento do Arquivo. Este valor não leva em conta a posição original do ponteiro de arquivos antes da execução da função FSEEK(). Origem 0 1 2 • • Sintaxe: FSEEK ( < nHandle > .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: FT_FEOF( ) Parâmetros: .FOPEN. zero ou negativo. definidos em fileio. Nenhum • Retorno: Lógico Retorna true caso o ponteiro do arquivo tenha chegado ao final.br .com.com.br - SP 67 . o nOffset será considerado. Indica a partir de qual posição do arquivo. Constate(fileio.t. false caso contrário. nHandle nOffSet nOrigem • Retorno: Numérico FSEEK() retorna a nova posição do ponteiro de arquivo com relação ao início do arquivo (posição 0) na forma de um valor numérico inteiro. (Default) Ajuste relativo a posição atual do arquivo.www. nOffSet corresponde ao número de bytes no ponteiro de posicionamento do arquivo a ser movido.

nPos • Retorno: . Nenhum FT_FGOTOP() A função tem como objetivo mover o ponteiro. Verifique maiores informações sobre formato do arquivo e tamanho máximo da linha de texto na função FT_FREADLN(). nº 608 – Metrô Conceição .br SP 68 . que indica a leitura do arquivo texto. para a posição absoluta especificada pelo argumento <nPos>. ou não exista arquivo aberto. Leona rdo da Vinci. • • Sintaxe: FT_FGOTO ( < nPos > ) Parâmetros: Indica a posição que será colocado o ponteiro para leitura dos dados no arquivo. Nenhum FT_FLASTREC() Função que retorna o número total de linhas do arquivo texto aberto pela FT_FUse. a função retornará 0 (zero). • • Sintaxe: FT_FLASTREC( ) Parâmetros: .advpl. • • Sintaxe: FT_FGOTO ( < nPos > ) Parâmetros: Indica a posição que será colocado o ponteiro para leitura dos dados no arquivo. para a posição absoluta especificada pelo argumento <nPos>. que indica a leitura do arquivo texto.www. nPos • Retorno: . Nenhum • Retorno: Numérico Retorna a quantidade de linhas existentes no arquivo.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Função utilizada para mover o ponteiro.br .com. Caso o arquivo esteja vazio. As linhas são delimitadas pela seqüência de caracteres CRLF o LF. Exemplo: Av.com.ADVPL GUIA DE REFERÊNCIA Versão 1.

e incorretas identificações nos separadores de final de linha. com build superior a 7.00. Release: Quando utilizado um Protheus Server.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” FT_FUse('teste. A movimentação do ponteiro é realizada através da função FT_FSKIP() O limite de 1022 bytes por linha inclui os caracteres delimitadores de final de linha. ou apenas LF ( chr(10 ). A utilização desta função não altera a posição do ponteiro para leitura dos dados.6)+"] Linha ["+FT_FReadln()+"]") FT_FSkip() Enddo FT_FUse() // Fecha o arquivo FT_FREADLN() Função que retorna uma linha de texto do arquivo aberto pela FT_FUse. As linhas são delimitadas pela seqüência de caracteres CRLF ( chr(13) + chr(10) ) .txt') // Abre o arquivo CONOUT("Linhas no arquivo ["+str(ft_flastrec(). nº 608 – Metrô Conceição . A utilização das mesmas em arquivos binários pode gerar comportamentos inesperados na movimentação do ponteiro de leitura do arquivo. o ponteiro do arquivo não é movido. FT_FRECNO() Av. Deste modo. Nenhum • Retorno: Caracter Retorna a linha inteira na qual está posicionado o ponteiro para leitura de dados. e o tamanho máximo de cada linha é 1022 bytes.com.www. As funções FT_F* foram projetadas para ler arquivos com conteúdo texto apenas.6)+"]") FT_FGOTOP() While !FT_FEof() conout("Ponteiro ["+str(FT_FRECNO().São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 69 . • • Sintaxe: FT_FREADLN( ) Parâmetros: . e incorreta identificação das quebras de linha posteriores. Leona rdo da Vinci. que utilizam também o caractere LF ( chr(10) ) como separador de linha. a função FT_FREADLN() também é capaz de ler arquivos texto / ASCII.br . e utilizando LF.advpl. quando utilizados os separadores CRLF. A tentativa de leitura de arquivos com linhas de texto maiores do que os valores especificados acima resultará na leitura dos 1023 primeiros bytes da linha.ADVPL GUIA DE REFERÊNCIA Versão 1.com. 1021 bytes. isto nos deixa 1020 bytes de texto.050713P.

Em caso de falha de abertura. Verifique maiores informações sobre formato do arquivo e tamanho máximo da linha de texto na função FT_FREADLN().0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função tem o objetivo de retornar a posição do ponteiro do arquivo texto. onde as linhas são delimitadas pela seqüência de caracteres CRLF ou LF (*) e o tamanho máximo de cada linha é 1022 bytes. • • Sintaxe: FT_FSKIP ( [ nLinhas ] ) Parâmetros: nLinhas corresponde ao número de linhas do arquivo TXT ref. similar à usada pelas tabelas de dados.. O arquivo é aberto em uma área de trabalho.br - SP . Função que move o ponteiro do arquivo texto aberto pela FT_FUSE() para a próxima linha. • • Sintaxe: FT_FRECNO ( ) Parâmetros: .www. o mesmo é fechado. cTXTFile • Retorno: A função retorna o Handle de controle do arquivo. a função retornará -1 Numérico FWRITE() 70 Av. similar ao DBSKIP() usado para arquivos de dados. Nenhum • Retorno: Caracter FT_FSKIP() Retorna a posição corrente do ponteiro do arquivo texto.com. Caso o nome não seja passado.br . A função FT_FRecno retorna a posição corrente do ponteiro do arquivo texto aberto pela FT_FUse. Nenhum FT_FUSE() Função que abre ou fecha um arquivo texto para uso das funções FT_F*.ADVPL GUIA DE REFERÊNCIA Versão 1.com. Leona rdo da Vinci. As funções FT_F* são usadas para ler arquivos texto.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nLinhas • Retorno . • • Sintaxe: FT_FUSE ( [ cTXTFile ] ) Parâmetros: Corresponde ao nome do arquivo TXT a ser aberto. e já exista um arquivo aberto. movimentação do ponteiro de leitura do arquivo. nº 608 – Metrô Conceição .

ou FOPENPORT(). // Abre o arquivo de Origem nHOrigem := FOPEN("ORIGEM. para o qual serão gravados ou enviados os dados do buffer informado. nTamArquivo Local nBytesLer . nHandle cBuffer nQtdBytes • Retorno: FWRITE() retorna a quantidade de bytes escritos na forma de um valor numérico inteiro. O tamanho desta variável deve ser maior ou igual ao tamanho informado em nQtdBytes (caso seja informado o tamanho). Caso o valor retornado seja igual a <nQtdBytes>. ASC 128 .CH" #DEFINE F_BLOCK 1024 // Define o bloco de Bytes a serem lidos / gravados por vez User Function TestCopy() Local cBuffer := SPACE(F_BLOCK) Local nHOrigem .br . todo o conteúdo de <cBuffer> é escrito. • • Sintaxe: FWRITE ( < nHandle > .ADVPL GUIA DE REFERÊNCIA Versão 1. FO_READ) Exemplo (continuação): Av. Numérico Exemplo: #INCLUDE "FILEIO. FCREATE(). Leona rdo da Vinci.www. nHDestino Local nBytesLidos . são suportados na String cBuffer todos os caracteres da tabela ASCII . que pode ser ajustado através das funções FSEEK() . Caso o valor de retorno seja menor que <nBytes> ou zero. Caso seja omitido. A escrita começa a partir da posição corrente do ponteiro de arquivos.). A gravação no arquivo é realizada a partir da posição atual do ponteiro . Neste caso .com. a função retornará um número menor que o nQtdBytes. ou o disco está cheio ou ocorreu outro erro. <nQtdBytes> indica a quantidade de bytes a serem escritos a partir da posição corrente do ponteiro de arquivos. Neste caso . nBytesFalta . podemos abrir ou criar um arquivo ou abrir uma porta de comunicação . e a função FWRITE retornará a quantidade real de bytes escritos. < cBuffer > . [ nQtdBytes ] ) Parâmetros: É o manipulador de arquivo ou device retornado pelas funções FOPEN(). FREAD() ou FREADSTR(). Através das funções FOPEN(). ou FOPENPORT(). ASC 12 . etc. a função FERROR() pode ser utilizada para determinar o erro específico ocorrido. <cBuffer> é a cadeia de caracteres a ser escrita no arquivo especificado. inclusive caracteres de controle ( ASC 0 .com.TXT". a operação foi bem sucedida.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Função que permite a escrita em todo ou em parte do conteúdo do buffer .T. utilize a função FERROR() para obter maiores detalhes da ocorrência. limitando a quantidade de Bytes através do parâmetro nQtdBytes. nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.advpl. Por tratar-se de uma função de manipulação de conteúdo binário . nBytesSalvo Local lCopiaOk := . Caso aconteça alguma falha na gravação . FCREATE().br - SP 71 .

2) // Move o ponteiro do arquivo de origem para o inicio do arquivo Fseek(nHOrigem.'Erro') FCLOSE(nHOrigem) // Fecha o arquivo de Origem Return . "+.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Str(nBytesSalvo. Leona rdo da Vinci.2)+" bytes a SALVAR. EXIT Endif Av. Endif // Define que a quantidade que falta copiar é o próprio tamanho do Arquivo nBytesFalta := nTamArquivo // Enquanto houver dados a serem copiados While nBytesFalta > 0 // Determina quantidade de dados a serem lidos nBytesLer := Min(nBytesFalta .www. Str(nBytesLer.com.0.ADVPL GUIA DE REFERÊNCIA Versão 1. cBuffer. nº 608 – Metrô Conceição .br - SP 72 .8.4).advpl.2)+" bytes gravados.F.4).8.4). Exit Endif // Salva os dados lidos no arquivo de destino nBytesSalvo := FWRITE(nHDestino. Str(nBytesLidos."+.F.nBytesLer) // Determina se não houve falha na gravação If nBytesSalvo < nBytesLer MsgStop("Erro de gravação do Destino.0) // Cria o arquivo de destino nHDestino := FCREATE("DESTINO.'Erro') Return . "Ferror = "+str(ferror()."+.F.'Erro') lCopiaOk := .8. Endif // Determina o tamanho do arquivo de origem nTamArquivo := Fseek(nHOrigem. "+. Str(nBytesLer.4).8.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” // Testa a abertura do Arquivo If nHOrigem == -1 MsgStop('Erro ao abrir origem. Ferror = '+str(ferror(). @cBuffer.'Erro') lCopiaOk := .F.TXT".com.br .2)+" bytes Lidos. "Ferror = "+str(ferror(). F_BLOCK ) // lê os dados do Arquivo nBytesLidos := FREAD(nHOrigem.2)+" bytes a LER. Ferror = '+str(ferror()."+. nBytesLer ) // Determina se não houve falha na leitura If nBytesLidos < nBytesLer MsgStop( "Erro de Leitura da Origem."+. FC_NORMAL) // Testa a criação do arquivo de destino If nHDestino == -1 MsgStop('Erro ao criar destino.

str(nTamArquivo.'. Arquivo de Destino incompleto.0)+' bytes copiados. '+.DBF' Local cArqDest := 'ARQ00002. faltaram '+str(nBytesFalta.12.'. 'Do total de '+str(nTamArquivo.br SP 73 . cArqDest ) Av. Exemplo: Local cArqOrig := 'ARQ00001. '+.'Final') Else MsgStop( 'Falha na Cópia.www. cArqOrig cArqDest • Retorno: Lógico Se a copia for realizada com sucesso a função retornará verdadeiro (. cArqDest ) APMsgInfo('Copia realizada com sucesso!') EndIf MSCOPYTO() Função que realiza a cópia dos registros de uma base de dados para outra.com.ADVPL GUIA DE REFERÊNCIA Versão 1. criando o arquivo destino de acordo com a estrutura da base de dados origem.12.XXX' If MsCopyFile( cArqOrig. Leona rdo da Vinci. nº 608 – Metrô Conceição . cArqDest ) Parâmetros: Nome do arquivo origem e a extensão.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo (continuação): // Elimina do Total do Arquivo a quantidade de bytes copiados nBytesFalta -= nBytesLer Enddo // Fecha os arquivos de origem e destino FCLOSE(nHOrigem) FCLOSE(nHDestino) If lCopiaOk MsgStop('Cópia de Arquivos finalizada com sucesso. • Sintaxe: MSCOPYTO( [cArqOrig].advpl. Nome do arquivo destino e a extensão.).br .com.0)+' bytes.0)+' bytes.'Final') Endif Return MSCOPYFILE() Função que executa a cópia binária de um arquivo para o destino especificado.T. • • Sintaxe: MSCOPYFILE( cArqOrig.12.

DBF' DbSelectArea('SX2') If MsCopyTo( .caracter. decimais. Para criação de tabelas no TopConnect é necessário estar conectado ao banco e o environment do protheus ser TOP.www. Estrutura do arquivo.advpl. cArquivo aStruct cDriver • Retorno: Lógico Indica se a operação foi executada com sucesso. tipo do campo. Exemplo: Av. cArqDest ) APMsgInfo('Copia realizada com sucesso!') Else APMsgInfo('Problemas ao copiar o arquivo SX2!') EndIf MSCREATE() Função que cria um arquivo (tabela) de acordo com a estrutura informada no parâmetro aStruct.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: Nome do arquivo origem e a extensão se o ambiente for Top o parâmetro passará a ser obrigatório.br .com. 3º . • • Sintaxe: MsCreate( cArquivo. 4º .ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição .caracter. tamanho do campo.br SP 74 . Leona rdo da Vinci. cArqOrig cArqDest • Retorno: Lógico Se a copia for realizada com sucesso a função retornará verdadeiro (. Exemplo: Local cArqDest := 'SX2ZZZ. 2º .).T.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Nome do arquivo destino e a extensão.[cDriver] ) Parâmetros: Nome do arquivo.com. Se o parâmetro cDriver não for informado o RDD corrente será assumido como padrão. aStruct: array contendo a estrutura da tabela aonde: 1º . RDD do arquivo.numérico. aStru . nome do campo.numérico.

Nome do arquivo de índice e a extensão. [cIndice].ADVPL GUIA DE REFERÊNCIA Versão 1. [cDriver] ) Parâmetros: Nome do arquivo e a extensão.com. 40.br - SP 75 . cIndice ) APMsgInfo( 'Arquivo deletado com sucesso!' ) Else APMsgInfo( 'Problemas ao deletar arquivo!' ) EndIf MSRENAME() Função que verifica a existência do arquivo especificado. [cDriver] ) Parâmetros: Nome do arquivo e a extensão.br . [cIndice]. se não for informado assumirá o RDD corrente. cArquivo cIndice cDriver • Retorno: Lógico Indica se a operação foi executada com sucesso.www. se não for informado assumirá o RDD corrente.DBF' Local cIndice := 'SX2ZZZ'+ OrdBagExt() If MsErase( cArquivo. Exemplo: Local cArquivo := 'SX2ZZZ. RDD do arquivo. Nome do arquivo de índice e a extensão. • • Sintaxe: MsFile( cArquivo. cArquivo cIndice cDriver • Retorno: Av. Leona rdo da Vinci. 'C'. 0 } } If MsCreate( cTarget+'ARQ1001'.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Local cTarget := '\sigaadv\' Local aStrut aStrut := { { 'Campo'. nº 608 – Metrô Conceição .advpl. RDD do arquivo. aStrut ) APMsgInfo('Criado com sucesso!') Else APMsgInfo('Problemas ao criar o arquivo!') EndIf MSERASE() Função utilizada para deletar fisicamente o arquivo especificado.com. • • Sintaxe: MsErase( cArquivo.

a função não criará arquivo de nenhum tipo.DBF' cArquivo := RetFileName( cArquivo ) // retorno ‘ARQZZZ’ Manipulação de arquivos e índices temporários CRIATRAB() Função que cria um arquivo de trabalho com uma estrutura especificada..lDbf) Parâmetros: Array multidimensional contendo a estrutura de campos da tabela que será SP • • aArray Av.com. a função criará um arquivo DBF com este nome e a estrutura definida em aArray.advpl. nº 608 – Metrô Conceição .DBF' Local cIndice := 'SX2ZZZ'+ OrdBagExt() If !MsFile ( cArquivo. Caso o parâmetro lDbf seja definido como .www.com. ignorando o caminho e a extensão.T. • • Sintaxe: RetFileName( cArquivo ) Parâmetros: String contendo o nome do arquivo cArquivo • Retorno: Caracter Nome do arquivo contido na string cArquivo sem o caminho e a extensão.br 76 .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Exemplo: Local cArquivo := '\SIGAADV\ARQZZZ.F.ADVPL GUIA DE REFERÊNCIA Versão 1. apenas fornecerá um nome válido. cIndice ) APMsgInfo( 'Arquivo não encontrado!' ) EndIf RETFILENAME() Função que retorna o nome de um arquivo contido em uma string.br . sendo que: • • Caso o parâmetro lDbf seja definido como .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Lógico Indica se o arquivo especificado existe. Exemplo: Local cArquivo := 'SX2ZZZ. Sintaxe: CriaTrab(aArray.. Leona rdo da Vinci.

Leona rdo da Vinci. . 8. Determina se o arquivo de trabalho deve ser criado ( .F. “C”. . “C”. 16.{ “ORDEM” .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” criada no formato: {Nome.www. “N”.br SP 77 .) ou não (.T. 0}) AADD(aStru. enquanto SELECT() retorna o número da área de trabalho através do alias. aStru := {} AADD(aStru.) USE &cArqTrab ALIAS TRB NEW Na criação de índices de trabalho temporários é utilizada a sintaxe: CriaTrab(Nil.{ “ENTRAJU”. 10. “C”. “C”.{ “NUMOP” . 4. 1. Tipo. .advpl. 8. 0}) AADD(aStru.F.{ “PRODUTO”. ) Caracter Exemplo: // Com lDbf = .ADVPL GUIA DE REFERÊNCIA Versão 1.{ “ENTREGA”.com. Decimal} lDbf • Retorno: Nome do Arquivo gerado pela função.F. ou um nome que foi explicitamente atribuido através da cláusula ALIAS do comando USE.{ “QUANT” . 0}) AADD(aStru. 0}) AADD(aStru.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. 4}) AADD(aStru.{ “MARK” . “D”. 1.) cIndice := “C9_AGREG+”+IndexKey() Index on &cIndice To &cArq // Com lDbf = . A função ALIAS() é o inverso da funçao SELECT() pois retorna o alias através do número da área de trabalho. 15. cArq := CriaTrab(NIL. Tamanho.F. 0}) AADD(aStru. 0}) cArqTrab := CriaTrab(aStru. • • Sintaxe: ALIAS ( [ nAreaTrabalho ] ) Parâmetros: Av. 0}) AADD(aStru. Alias é o nome atribuido a uma área de trabalho quando um arquivo de banco de dados está em uso.{ “GERADO” . “C”. nº 608 – Metrô Conceição .br .) Manipulação de bases de dados ALIAS() Função de banco de dados utilizada para determinar o alias da área de trabalho especificada.{ “AGLUT” .T. O nome real atribuido é o nome do arquivo de banco de dados. “D”. “N”. 0}) AADD(aStru. 10.T.com.

ALIAS() retorna uma cadeia de caracteres nula ("").com.) • • Sintaxe: BOF() / EOF() Parâmetros: . EOF() é uma função de tratamento de banco de dados utilizada para condição de limite de final de arquivo quando o ponteiro de registros está para frente em um arquivo de banco de dados.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nAreaTrabalho • Retorno: <nAreaTrabalho> é o número da área de trabalho a ser verificada. Nenhum • Retorno: Lógico Lógico Retorna verdadeiro (. nº 608 – Metrô Conceição . ela retorna falso (. Caso nao haja nenhum arquivo de banco de dados aberto na área de trabalho corrente. Caso <nAreaTrabalho> nao seja especificada. Exemplo: cAlias := alias() IF empty(cAlias) alert('Não há Area em uso') Else alert(Area em uso atual : '+cAlias) Endif BOF() / EOF() As funções BOF() e EOF() são utilizadas para determinar se o ponteiro de leitura do arquivo encontra-se no começo ou no final do mesmo conforme abaixo: • BOF() é uma função de tratamento de banco de dados utilizada para condição de limite de inicial do arquivo quando o ponteiro de registros está para trás em um arquivo de banco de dados. Se nao houver nenhum arquivo de banco de dados em USo na área de trabalho especificada. forçando o laço DO WHILE a terminar quando EOF() retornar verdadeiro (. é retornado o alias da área de trabalho corrente.br 78 . em letra maiúscula.F.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. EOF(). Retorna verdadeiro (. Caracter Retorna o alias da área de trabalho especificada na forma de uma cadeia de caracteres.F.com. Neste caso <lCondicao> incluiria um teste para . EOF() retorna falso SP Av.advpl.www. testar uma se movendo testar uma se movendo • • Normalmente é utilizada a condição EOF() como parte do argumento <lCondicao> de uma construçao DO WHILE que processa registros sequencialmente em um arquivo de banco de dados. do contrário.NOT.T. ela retorna falso (.T.) quando ‚ feita uma tentativa de mover o ponteiro de registros para além do último registro lógico em um arquivo de banco de dados.).). do contrário.ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci.T.br .) quando ‚ feita uma tentativa de mover o ponteiro de registros para além do primeiro registro lógico em um arquivo de banco de dados.

dia ) T ou F (campo ignorado) Ajustados à direita. com espaços em branco.). nº 608 – Metrô Conceição . através de expressões FOR/WHILE. ajustado com espaços em branco Formato aaaammdd ( ano.F. ou a ordem de navegação nos índices (SET ORDER ) seja 0 (zero).com. apenas os registros que satisfaçam a condição de fintro serão copiados. • Tabela A : Especificação do formato SDF ( System Data Format ) Formato Tamanho fixo. Nenhum SP Elemento do Arquivo Campos 'C' Caractere Campos 'D' Data Campos 'L' lógicos Campos 'M' Memo Campos 'N' Numéricos Delimitador de Campos Av.ADVPL GUIA DE REFERÊNCIA Versão 1.br 79 .br . e/ou através de um filtro.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.T.). Da mesma maneira. os registros são lidos em orden natural ( ordem de RECNO ) . Se o filtro para registros deletados ( SET DELETED ) estiver desligado (OFF). registros deletados ( marcados para deleção ) são copiados para o arquivo de destino. respeitando a ordem de índice setada. para um novo arquivo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” (. Caso contrário. EOF() retorna verdadeiro (. Leona rdo da Vinci. antes da operação de cópia efetiva ser iniciada.www. caso exista uma condição de filtro na tabela atual ( SET FILTER ). mantendo este status. e aberta em modo exclusivo. A tabela de destino dos dados copiados é criada. Se o arquivo de banco de dados corrente não possui registros. Os registros considerados para a cópia podem ser limitados pela cláusula <escopo>. nenhum registro deletado é copiado. mês. Caso não hajam índices abertos.advpl. Os registros são lidos na tabela atual. COPY() O comando COPY TO permite a cópia de todos ou parte dos registros da tabela atualmente selecionada como área de trabalho atual.

advpl. com extensão . O nome do arquivo de destimno pode ser especificado de forma literal direta.. o arquivo ASCII gerado será delimitado. suportava a geração de uma tabela delimitada diferenciada.) DELIMITED WITH BLANK . ou como uma expressão Advpl. TO <cFile> especifica o nome do arquivo de destino. Caso sejam especificadas as cláusulas SDF ou DELIMITED. a partir do registro atualmente posicionado. separados por vírgula. mês.. são copiados todos os registros (ALL). entre parênteses.. Os escopos possíveis de uso são: ALL .com..www.com. até o final da tabela. ignorando espaços à direita Formato aaaammdd ( ano. Av.Copia.. antes do Protheus..> ] TO cFile [cEscopo] [ WHILE <lCondicao> ] [ FOR <lCondicao> ] [ SDF | DELIMITED [WITH <cDelimiter>] ] [ VIA <cDriver> ] • Parâmetros: FIELDS <campo.. nº 608 – Metrô Conceição . <cEscopo> define a porção de dados da tabela atual a ser coipiada.> TO cFile cEscopo 80 ..> especifica um ou mais campos. Caso utilize-se este comando com a sintaxe acima. Leona rdo da Vinci. a serem copiados para a tabela de destino.Copia apenas <n> registros. REST . No Protheus este formato não é suportado.Copia todos os registros.txt por default.ADVPL GUIA DE REFERÊNCIA Versão 1.br . Caso não especificado este parâmetro. é gerado um arquivo ASCII. serão copiados todos os campos da tabela de origem. utilizando-se a sequência de caracteres 'BLANK' como delimitadora de campos Caractere. • Sintaxe: COPY [ FIELDS <campo. iniciando a partir do registro atualmente posicionado. obtida através do comando COPY TO (. Vírgula CRLF ( ASCII 13 + ASCII 10 ) Nenhum Elemento do Arquivo Campos 'C' Caractere Campos 'D' Data Campos 'L' lógicos Campos 'M' Memo Campos 'N' Numéricos Delimitador de Campos Separador de Registros Marca de final de arquivo (EOF) A Linguagem Advpl..br SP FIELDS <campo.. dia ) T ou F (campo ignorado) sem espaços em branco. NEXT <n> .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Separador de Registros Marca de final de arquivo (EOF) • CRLF ( ASCII 13 + ASCII 10 ) Nenhum Tabela B : Especificação do formato delimitado ( DELIMITED / DELIMITED WITH <cDelimiter> ) Formato Delimitados. Por default..

nº 608 – Metrô Conceição . Esta opção não é suportada no Protheus. DELIMITED WITH <xcDelimiter> permite especificar um novo caractere. DELIMITED especifica que o arquivo ASCII de destino será no formato delimitado. Leona rdo da Vinci.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. a mesma é sobrescrita. sendo a operação realizada apenas se lCondicao ser verdadeira ( . VIA <cDriver> • Retorno: .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Se a tabela a ser criada já exista.br - SP 81 . Caso especificado como um valor literal direto. O caractere delimitador pode ser escrito de forma literal. para compor a estrutura da tabela de destino.. ou como uma expressão entre parênteses.com. ) [ SDF | DELIMITED [WITH <xcDelimiter>] ] SDF especifica que o tipo de arquivo de destino gerado é um arquivo no formato "System Data Format" ASCII.. a ser utilizada como delimitador. executada antes de inserir um registro na tabela de destino. na documentação do comando. A tabela de destino criada utiliza o mesmo RDD da tabela de origem ( tabela ativa na área de trabalho atual ).T. O Driver deve ser especificado como uma expressão caractere. Nas Tabelas complementares A e B. A Linguagem Advpl. antes do Protheus.br . onde registros e campos possuiem tamanho fixo no arquivo de destino.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” WHILE <lCondicao> FOR <lCondicao> [SDF|DELIMITED] OBSERVAÇÃO : Vale a pena lembrar que o escopo é sensível também às demais condições de filtro ( WHILE / FOR ).Parameter <Fields> not supported in Protheus' • Sintaxe: Av.com.www. onde os campos do tipo Caractere são delimitados entre aspas duplas ( delimitador Default ).>. suportava a parametrização de uma lista de campos da tabela atual. Caso seja utilizada. ao invés do default ( aspas duplas ). WHILE <lCondicao> permite especificar uma condição para realização da cópia. VIA <xcDriver> permite especificar o driver utilizado para criar a tabela de destino dos dados a serem copiados. Nenhum COPY STRUCTURE() O comando COPY STRUCTURE cria uma nova tabela vazia. são detalhadas as especificações dos formatos SDF e DELIMITED. FOR <lCondicao> especifica uma condição para cópia de registros. executada antes de inserir cada registro na tabela de destino. o programa será abortado com a ocorrência de erro fatal : 'DBCopyStruct . Registros e campos têm tamanho variável no arquivo ASCII. com a estrutura da tabela ativa na área de trabalho atual. o mesmo deve estar entre aspas.. sendo realizada a operação de cópia enquanto esta condição for verdadeira. através da cláusula FIELDS <campo. a partir do registro atual. ou sequência de caracteres.

F.. DBAPPEND() A função DBAPPEND() acrescenta mais um registro em branco no final da tabela corrente. o registro é acrescentado e bloqueado. Nenhum Exemplo: USE Clientes NEW FOR i:=1 to 5 DBAPPEND(. todos os bloqueios anteriores são mantidos.www.. Valor default: . nº 608 – Metrô Conceição . • • Sintaxe: DBAPPEND ( [ lLiberaBloqueios ] ) Parâmetros: Se o valor for . Se for . libera todos os registros bloqueados anteriormente (locks).F.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Se não houver erro da RDD.ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: DBCLEARALLFILTER() Parâmetros: Av.) NOME := "XXX" END : ="YYY" NEXT // Os 5 registros incluídos permanecem bloqueados DBAPPEND() // Todos os bloqueios anteriores são liberados DBCLEARALLFILTER() A função DBCLEARALLFILTER() salva as atualizações realizadas e pendentes de todas as tabelas e depois limpa as condições de filtro de todas as tabelas.com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” COPY STRUCTURE TO <xcDataBase> • Parâmetros: Deve ser especificado em xcDatabase o nome da tabela a ser criada.com. lLiberaBloqueios • Retorno: . TO <xcDataBase> • Retorno: Nenhum .br .advpl.T.br - SP 82 . Leona rdo da Vinci.T.

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Nenhum • Retorno:

.

Nenhum

.

Exemplo: USE Clientes NEW DBSETFILTER( {|| Idade < 40}, 'Idade < 40') // Seta a expressão de filtro ... DBCLEARALLFILTER() // Limpa a expressão de filtro de todas as ordens

DBCLEARFILTER() A função DBCLEARFILTER() salva as atualizações realizadas e pendentes na tabela corrente e depois limpa todas as condições de filtro da ordem ativa no momento. Seu funcionamento é oposto ao comando SET FILTER. • • Sintaxe: DBCLEARFILTER() Parâmetros: .

Nenhum • Retorno:

Nenhum

.

Exemplo: USE Clientes NEW DBSETFILTER( {|| Idade < 40}, "Idade < 40" ) // Seta a expressão de filtro ... DBCLEARFILTER() // Limpa a expressão de filtro

DBCLEARINDEX() A função DBCLEARINDEX() salva as atualizações pendentes na tabela corrente e fecha todos os arquivos de índice da área de trabalho. Por conseqüência, limpa todas as ordens da lista. Seu funcionamento é oposto ao comando SET INDEX. • • Sintaxe: DBCLEARINDEX() Parâmetros:

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

83

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Nenhum • Retorno:

.

Nenhum

.

Exemplo: USE Clientes NEW DBSETINDEX("Nome") // Abre o arquivo de índice "Nome" ... DBCLEARINDEX() // Fecha todos os arquivos de índices

DBCLOSEALL() A função DBCLOSEALL() salva as atualizações pendentes, bloqueados e fecha todas as tabelas abertas (áreas chamasse DBCLOSEAREA para cada área de trabalho. • • Sintaxe: DBCLOSEALL() Parâmetros: . libera todos os registros de trabalho) como se

Nenhum • Retorno:

Nenhum

.

Exemplo: // Este exemplo demonstra como se pode utilizar o DBCLOSEALL para fechar a área de trabalho atual. USE Clientes NEW DBSETINDEX("Nome") // Abre o arquivo de índice "Nome" USE Fornecedores NEW DBSETINDEX("Idade") // Abre o arquivo de índice "Idade" ... DBCLOSEALL() //Fecha todas as áreas de trabalho, todos os indices e ordens

DBCLOSEAREA() A função DBCLOSEAREA() permite que um alias presente na conexão seja fechado, o que viabiliza seu reuso em outro operação. Este comando tem efeito apenas no alias ativo na conexão, sendo necessária sua utilização em conjunto com o comando DbSelectArea(). • Sintaxe: DBCLOSEAREA() 84

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Parâmetros: .

Nenhum • Retorno:

Nenhum

.

Exemplo: DbUserArea(.T., “DBFCDX”, “\SA1010.DBF”, “SA1DBF”, .T., .F.) DbSelectArea(“SA1DBF”) MsgInfo(“A tabela SA1010.DBF possui:” + STRZERO(RecCount(),6) + “ registros.”) DbCloseArea()

DBCOMMIT() A função DBCOMMIT() salva em disco todas as atualizações pendentes na área de trabalho corrente. • • Sintaxe: DBCOMMIT() Parâmetros: .

Nenhum • Retorno:

Nenhum

.

Exemplo: USE Clientes NEW DBGOTO(100) Nome := "Jose" USE Fornecedores NEW DBGOTO(168) Nome := "Joao" DBCOMMIT() // Salva em disco apenas as alterações realizadas na tabela Fornecedores

DBCOMMITALL() A função DBCOMMITALL() salva em disco todas as atualizações pendentes em todas as áreas de trabalho. • • Sintaxe: DBCOMMITALL() Parâmetros: 85

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

10.C. Se for omitido será criada com a corrente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Nenhum • Retorno: . Nenhum Exemplo: // Este exemplo mostra como se pode criar novo arquivo através da função DBCREATE: LOCAL aEstrutura :={{Cod. Tipo. Se não.0}. onde cada campo é expresso através de um array contendo {Nome. {Nasc. • • Sintaxe: DBCREATE ( < cNOME > . < aESTRUTURA > . Nenhum . cNOME aESTRUTURA cDRIVER • Retorno: .www.3. nº 608 – Metrô Conceição .0}. [ cDRIVER ] ) Parâmetros: Nome do arquivo a ser criado.7.2}} // Cria a tabela com o RDD corrente 86 Av.3. Nome da RDD a ser utilizado para a criação da tabela. Tamanho.0}.ADVPL GUIA DE REFERÊNCIA Versão 1.N.D. Decimais}. Se contém pasta. {Idade.com. {Pagto.com.0}.br - SP .N.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.N. é criado por padrão no caminho formado por "RootPath"+"StartPath" Lista com as informações dos campos para ser criada a tabela. {Nome. Exemplo: USE Clientes NEW DBGOTO(100) Nome := "Jose" USE Fornecedores NEW DBGOTO(168) Nome := "Joao" DBCOMMITALL() // Salva em disco as alterações realizadas nas tabelas Clientes e Fornecedores DBCREATE() A função DBCREATE() é utilizada para criar um novo arquivo de tabela cujo nome está especificado através do primeiro parâmetro (cNome) e estrutura através do segundo (aEstrutura).8.br . Leona rdo da Vinci. ela se localiza abaixo do "RootPath".advpl. A estrutura é especificada através de um array com todos os campos.

com.br . DBCreate . 6.ADVPL GUIA DE REFERÊNCIA Versão 1.dbf' VIA 'DBFCDX' NEW Erros mais comuns: 1. 'D'.dbf'. ocorre este erro se: • (len = 1) .45 poderia ser o valor de um campo com len=5 e dec=2 (no mínimo).Invalid numeric field format: Considerando 'len' o tamanho total do campo numérico e 'dec' o número de decimais.Field's name cannot be 'DATA': Algumas RDD's não suportam este nome de campo. • Erros mais comuns: Podem ocorrer também erros decorrentes de permissão e direitos na pasta onde se está tentando criar o arquivo ou por algum problema no banco de dados. DBCreate . 'N'. o campo não pode ter decimais (len>1) . 7.br - SP . nº 608 – Metrô Conceição . 8. pois.The length of Field's name must be at most 10: Nome do campo não pode ter mais que 10 caracteres. 2.Field's type is not defined: Tipo do campo não foi definido. (dec <> 0): Se o tamanho total é 1. para comportar o separador de decimais e ter pelo menos um algarismo na parte inteira. DBCreate . 87 Av. DBCreate .Field's name must be defined: Nome do campo não foi definido. DBCreate . Para tanto são executados os passos a seguir: • • • • • Salva fisicamente as alterações ocorridas na tabela corrente. DBCreate . 4. sendo que se o mesmo existir é deletado e criado o novo. Seta o novo índice como a ordem corrente. DBCREATEINDEX() A função DBCREATEINDEX() é utilizada para criar um novo arquivo de índice com o nome especificado através do primeiro parâmetro.and. Fecha todos os arquivos de índice abertos. Posiciona a tabela corrente no primeiro registro do índice.com. É uma palavra reservada. Verifique as mensagens do servidor Protheus e do banco de dados. ele seria criado na máquina onde o Remote está rodando.and. (len< dec + 2): Se o tamanho total é maior que 1. Exemplo: O número 12.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DBCREATE('\teste\cliente. 5. por convenção.Invalid empty filename: Nome do arquivo não foi especificado 3.advpl. ele deve ser maior que o número de decimais mais 2. aEstrutura) USE '\teste\cliente.Data base files can only be created on the server: O nome do arquivo a ser criado não pode conter 'driver'. 'M' ou 'L'. Leona rdo da Vinci.www. DBCreate .invalid Field's type: Tipo do campo é diferente de 'C'. DBCreate . Cria o novo índice.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

"Nome+End".ADVPL GUIA DE REFERÊNCIA Versão 1.T.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci.br SP 88 . • cNOME cEXPCHAVE bEXPCHAVE lUNICO • Retorno: . Nenhum Exemplo: // Este exemplo mostra como se pode criar novo arquivo de índice criando a ordem sobre os // campos Nome e End e não aceitará duplicação: USE Cliente VIA "DBFCDX" NEW DBCREATEINDEX("\teste\ind2. precisando para isto a tabela estar aberta em modo exclusivo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Com exceção do RDD CTREE.com.).. Cria índice como único (o padrão é .com.{ || Nome+End }.) DBDELETE() A função DBDELETE() marca o registro corrente como “apagado” logicamente(). <cEXPCHAVE>. a tabela corrente não precisa estar aberta em modo exclusivo para a criação de índice. Para filtrar os registro marcados do alias corrente pode-se utilizar o comando SET DELETED e para apagá-los fisicamente pode-se utilizar a função __DBPACK(). • • Sintaxe: DBDELETE ( ) Parâmetros: . sendo necessária sua utilização em conjunto com as funções RecLock() e MsUnLock(). pois na criação de índices no Ctree é alterada a estrutura da tabela. Expressão das chaves do índice a ser criado na forma de string. Expressão das chaves do índice a ser criado na forma executável.www. DBCREATEINDEX(<cNOME>.br . [bEXPCHAVE]. Exemplo: DbSelectArea(“SA1”) DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA Av. • Sintaxe: [lUNICO]) Parâmetros: Nome do arquivo de índice a ser criado.cdx".advpl. nº 608 – Metrô Conceição .F. Nenhum • Retorno: Nenhum .

advpl.com. • • Sintaxe: DBFIELDINFO ( < nINFOTIPO > . pois nesta é retornado o número da área de trabalho do Alias correspondente. O Alias é definido quando a tabela é aberta através do parâmetro correspondente (DBUSEAREA()). Número de casas decimais. Retorno Caracter Numérico Numérico Caracter A posição do campo não leva em consideração os campos internos do Protheus (Recno e Deleted). ) MessageBox("O Alias corrente é: "+DBF().F.br . 0) //Resultado: "O Alias corrente é: SSS" DBFIELDINFO() A função DBFIELDINFO() é utilizada para obter informações sobre determinado campo da tabela corrente.F.. < nCAMPO > ) Parâmetros: Av. Leona rdo da Vinci. Exemplo: dbUseArea( .) // Define que será realizada uma alteração no registro posicionado DbDelete() // Efetua a exclusão lógica do registro posicionado.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.dbf". nº 608 – Metrô Conceição . MsUnLock() // Confirma e finaliza a operação ENDIF DBF() A função DBF() verifica qual é o Alias da área de trabalho corrente.br SP 89 . Tamanho."dbfcdxads"."Alias". Caso não exista Alias corrente retorna "" (String vazia). Tipo."SSS".com. • • Sintaxe: DBF() Parâmetros: .ADVPL GUIA DE REFERÊNCIA Versão 1.T. "\dadosadv609\sa1990. O tipo de informação (primeiro argumento) é escolhido de acordo com as constantes abaixo: • Tabela A : Constantes utilizadas na parametrização da função Constante DBS_NAME DBS_DEC DBS_LEN DBS_TYPE Descrição Nome do campo..T. . Esta função é o inverso da função SELECT()..0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DbSeek(“01” + “900001” + “01”) // Busca exata IF Found() RecLock(“SA1”.. Nenhum • Retorno: Caracter Retorna o Alias corrente.www.

br - SP 90 . Av.www.com. Posição do campo a ser verificado.br . DBS_DEC.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição . DBS_LEN e DBS_TYPE).0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nINFOTIPO nCAMPO Tipo de informação a ser verificada (DBS_NAME.com. Leona rdo da Vinci.

Indefinido Exemplo: USE Clientes NEW DBFIELDINFO(DBS_NAME. • • Sintaxe: DBFILTER() Parâmetros: .br . realizando um posicionamento direto.ADVPL GUIA DE REFERÊNCIA Versão 1.1) // Retorno: C DBFIELDINFO(DBS_LEN. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: Retorna NIL se não há tabela corrente ou a posição do campo especificado está inválida. Exemplo: USE Cliente INDEX Ind1 NEW SET FILTER TO Nome > "Jose" DBFILTER() // retorna: Nome > "Jose" SET FILTER TO Num < 1000 DBFILTER() // retorna: Num < 1000 DBGOTO() Move o cursor da área de trabalho ativa para o record number (recno) especificado. sem a necessidade uma busca (seek) prévio.com.1) // Retorno: 0 DBFILTER() A função DBFILTER() é utilizada para verificar a expressão de filtro ativo na área de trabalho corrente.br - SP 91 . Caso não exista filtro ativo retorna "" (String vazia). tipo caracter se for nome ou tipo).1) // Retorno: 10 DBFIELDINFO(DBS_DEC.www. Nenhum • Retorno: Caracter Retorna a expressão do filtro ativo na área de trabalho atual.advpl.com. Informação do campo Informação requisitada pelo usuário (pode ser de tipo numérico se for tamanho ou casas decimais. nº 608 – Metrô Conceição .1) // Retorno: Nome DBFIELDINFO(DBS_TYPE. • • Sintaxe: DbGoto(nRecno) Parâmetros Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

Nenhum Exemplo: nCount := 0 // Variável para verificar quantos registros há no intervalo DbSelectArea(“SA1”) DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA DbGoTop() While !BOF() // Enquanto não for o início do arquivo nCount++ // Incrementa a variável de controle de registros no intervalo DbSkip(-1) End MsgInfo(“Existem :”+STRZERO(nCount.com. // Retorno esperado :000001.6)+ “registros no intervalo”).0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nRecno Record number do registro a ser posicionado. • • Sintaxe: DbGoTop() Parâmetros .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www.br .br SP 92 . • • Sintaxe: DbGoBotton() Parâmetros .com.ADVPL GUIA DE REFERÊNCIA Versão 1. pois o DbGoTop posiciona no primeiro registro.advpl. Exemplo: DbSelectArea(“SA1”) DbGoto(100) // Posiciona no registro 100 IF !EOF() // Se a área de trabalho não estiver em final de arquivo MsgInfo(“Você está no cliente:”+A1_NOME) ENDIF DBGOTOP() Move o cursor da área de trabalho ativa para o primeiro registro lógico. Leona rdo da Vinci. nº 608 – Metrô Conceição . Nenhum Exemplo: nCount := 0 // Variável para verificar quantos registros há no intervalo DbSelectArea(“SA1”) Av. DBGOBOTTON() Move o cursor da área de trabalho ativa para o último registro lógico.

0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA DbGoBotton() While !EOF() // Enquanto não for o início do arquivo nCount++ // Incrementa a variável de controle de registros no intervalo DbSkip(1) End MsgInfo(“Existem :”+STRZERO(nCount. Se está posicionada no início da tabela similar a BOF Se está posicionada no final da tabela similar a EOF Se a tabela está posicionada após uma pesquisa similar a FOUND Número de campos na estrutura tabela corrente similar a FCOUNT Nome do Alias da área corrente similar a ALIAS da Retorno Numérico Caracter Caracter Lógico Lógico Lógico Numérico Caracter Data de trabalho Data da última modificação similar a LUPDATE Sintaxe: DBINFO(<nINFOTIPO>) Parâmetros: Tipo de informação a ser verificada.br .com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Se não houver tabela corrente retorna NIL. // Retorno esperado :000001. Extensão do arquivo da tabela corrente. nINFOTIPO • Retorno: Indefinido Informação da Tabela Informação requisitada pelo usuário (o tipo depende da informação requisitada).ADVPL GUIA DE REFERÊNCIA Versão 1. O tipo de informação (primeiro argumento) é escolhido de acordo com as constantes abaixo: • Tabela A : Constantes utilizadas na parametrização da função Constante DBI_GETRECSIZE DBI_TABLEEXT DBI_FULLPATH DBI_BOF DBI_EOF DBI_FOUND DBI_FCOUNT DBI_ALIAS DBI_LASTUPDATE • • Descrição Tamanho do registro em número de bytes similar a RECSIZE.www.advpl. pois o DbGoBotton posiciona no último registro.com.br SP 93 . DBINFO() DBINFO() é utilizada para obter informações sobre a tabela corrente. Exemplo: Av. nº 608 – Metrô Conceição . Leona rdo da Vinci. Nome da tabela corrente com caminho completo.6)+ “registros no intervalo”).

DBNICKINDEXKEY() Função que retorna o “IndexKey”.com.T. do arquivo de índice (com seu diretório) ao qual a ordem pertence.ADVPL GUIA DE REFERÊNCIA Versão 1. Número de ordens existentes no arquivo de índice especificado. Se não existe índice com o nickname. nINFOTIPO • Retorno: Av. retorna uma string vazia. DBSKIP(-1) DBINFO(DBI_BOF) // Retorno: .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” USE Clientes NEW DBINFO(DBI_FULLPATH) // Retorno: C:\Teste\Clientes.O tipo de informação (primeiro argumento) é escolhido de acordo com as constantes abaixo: • Tabela A : Constantes utilizadas na parametrização da função Constante DBOI_BAGNAME DBOI_FULLPATH DBOI_ORDERCOUNT • • Descrição Nome do arquivo de índice ao qual a ordem pertence.com. DBORDERINFO() A função DBORDERINFO() é utilizada para obter informações sobre determinada ordem.ou seja.dbf DBINFO(DBI_FCOUNT) // Retorno: 12 DBGOTOP() DBINFO(DBI_BOF) // Retorno: . mas se ela não for especificada serão obtidas informações da ordem corrente. cNick • Retorno: Caracter Expressão do índice identificado pelo "NickName".F.br - SP 94 . nº 608 – Metrô Conceição . Retorno Caracter Caracter Caracter Sintaxe: DBORDERINFO(<nINFOTIPO>) Parâmetros: Nome do arquivo de índice. Leona rdo da Vinci.advpl. a expressão de índice da ordem especificada pelo NickName. • • Sintaxe: DBNICKINDEXKEY(<cNick>) Parâmetros: Indica o "NickName" da ordem de índice.br .www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. A especificação da ordem pode ser realizada através de seu nome ou sua posição dentro da lista de ordens.

www. Principais erros: Não existe tabela ativa ou não foi encontrada a ordem com o apelido. tipo caracter se for nome do arquivo de índice)."Erro". Exemplo: USE Cliente NEW SET INDEX TO Nome. Idade IF !DBORDERNICKNAME("IndNome") Messagebox("Registro não encontrado".cdx DBORDERNICKNAME() A função DBORDERNICKNAME() é utilizada para selecionar a ordem ativa através de seu apelido.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 95 .br . cAPELIDO • Retorno: Lógico Retorna Falso se não conseguiu tornar a ordem ativa. nº 608 – Metrô Conceição . • • Sintaxe: __DBPACK() Parâmetros: .com. Av.com. Caso não exista ordem corrente ou a posição da ordem especificada está inválida retorna NIL. 0) ENDIF DBPACK() A função DBPACK() remove fisicamente todos os registros com marca de excluído da tabela.ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci. Nenhum • Retorno: Nenhum Exemplo: .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Caracter Retorna a informação da Ordem requisitada pelo usuário (pode ser de tipo numérico se for número de ordens no índice.advpl. Retorna Verdadeiro se a ordem foi setada com sucesso. Exemplo: DBORDERINFO(DBOI_BAGNAME) // retorna: Ind DBORDERINFO(DBOI_FULLPATH) // retorna: C:\AP6\Teste\Ind. Esta ordem é a responsável pela seqüência lógica dos registros da tabela corrente. • • Sintaxe: DBORDERNICKNAME(<cAPELIDO>) Parâmetros: Nome do apelido da ordem a ser setada.

T. Para ser executada o registro atual deve estar bloqueado ou a tabela deve estar aberta em modo exclusivo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” USE Clientes NEW DBGOTO(100) DBDELETE() DBGOTO(105) DBDELETE() DBGOTO(110) DBDELETE() // Se a exclusão for confirmada: __DBPACK() DBRECALL() A função DBRECALL() é utilizada para retirar a marca de registro deletado do registro atual. esta função não faz nada. Exemplo 02: Desfazendo as deleções do alias corrente USE Cliente DBGOTOP() WHILE !EOF() DBRECALL() DBSKIP() ENDDO DBRECORDINFO() Av. Se o registro atual não estiver deletado.www. • • Sintaxe: DBRECALL() Parâmetros: . Leona rdo da Vinci.F. Ela é o oposto da função DBDELETE() que marca o registro atual como deletado. nº 608 – Metrô Conceição .br . Desfazendo a deleção do registro posicionado do alias corrente USE Cliente DBGOTO(100) DBDELETE() DELETED() // Retorna: .br - SP 96 .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Nenhum • Retorno: Nenhum Exemplo 01: .ADVPL GUIA DE REFERÊNCIA Versão 1.com. DBRECALL() DELETED() // Retorna: .com.advpl.

nº 608 – Metrô Conceição . nINFOTIPO nREGISTRO • Retorno: Indefinido Não há tabela corrente ou registro inválido. Leona rdo da Vinci. Exemplo: USE Clientes NEW DBGOTO(100) DBRECORDINFO(DBRI_DELETED) // Retorno: .F.com.F.br .F.advpl.T. Informação requisitada pelo usuário (o tipo depende da informação requisitada).com. Informação do Registro.br - SP 97 .100) // Retorno: . O tipo de informação (primeiro argumento) é escolhido de acordo com as constantes abaixo: • Tabela A : Constantes utilizadas na parametrização da função Constante DBRI_DELETED DBRI_RECSIZE DBRI_UPDATED Descrição Estado de deletado similar a DELETED Tamanho do registro similar a RECSIZE Verifica se o registro foi alterado e ainda não foi atualizado fisicamente similar a UPDATED Retorno Lógico Numérico Lógico • • Sintaxe: DBRECORDINFO ( < nINFOTIPO > .ADVPL GUIA DE REFERÊNCIA Versão 1. [ nREGISTRO ] ) --> xINFO Parâmetros: Tipo de informação a ser verificada. DBDELETE() DBRECORDINFO(DBRI_DELETED) // Retorno: .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. DBRECORDINFO(DBRI_UPDATED.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função DBRECORDINFO() é utilizada para obter informações sobre o registro especificado pelo segundo argumento (recno) da tabela corrente. Número do registro a ser verificado. se esta informação for omitida será verificado o registro corrente. • • Sintaxe: DBREINDEX() Parâmetros: Av. DBRECALL() DBRECORDINFO(DBRI_RECSIZE) // Retorno: 230 NOME := "JOAO" DBGOTO(200) DBRECORDINFO(DBRI_UPDATED) // Retorno: . DBREINDEX() A função DBREINDEX() reconstrói todos os índices da área de trabalho corrente e posiciona as tabelas no primeiro registro lógico.www.

"\dadosadv609\sa1990.dbf".T. mas se este for omitido será bloqueado o registro corrente como na função RLOCK()..br - SP 98 .br . que libera registros bloqueados. Para tanto. O usuário pode escolher o registro a ser bloqueado através do parâmetro (recno). Se a tabela já está aberta em modo exclusivo.com. ) DBGOTO(100) DBRLOCK() // Bloqueia o registro atual (100) DBRLOCK(110) // Bloqueia o registro de número 110 DBRLOCKLIST() A função DBRLOCKLIST() é utilizada para verificar quais registros estão locados na tabela corrente.com. Exemplo: DBUSEAREA( .T.advpl. Nenhum . nREGISTRO • Retorno: Lógico Retorna Falso se não conseguiu bloquear o registro.ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição ."dbfcdxads".F. Esta função é o oposto à DBRUNLOCK. Principal motivo: o registro já foi bloqueado por outro usuário. Exemplo: USE Clientes NEW DBSETINDEX("IndNome") DBREINDEX() DBRLOCK() A função DBRLOCK() é utilizada quando se tem uma tabela aberta e compartilhada e se deseja bloquear um registro para que outros usuários não possam alterá-lo. Leona rdo da Vinci. é retornada uma tabela unidimensional com os números dos registros.."SSS". Retorna Verdadeiro se o registro foi bloqueado com sucesso. a função não altera seu estado.www. • • Sintaxe: DBRLOCK([nREGISTRO]) Parâmetros: Número do registro a ser bloqueado. • Sintaxe: DBRLOCKLIST() Av. ..São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Nenhum • Retorno: .

"dbfcdxads".."dbfcdxads".110} DBRUNLOCK() A função DBRUNLOCK() é utilizada para liberar determinado registro bloqueado.com. "\dadosadv609\sa1990. mas se este for omitido será desbloqueado o registro corrente como na função DBUNLOCK(). O usuário pode escolher o registro a ser desbloqueado através do parâmetro (Recno). Av.advpl. Nenhum Exemplo: DBUSEAREA( . nº 608 – Metrô Conceição .T. . Retorna a lista com os recnos dos registros locados na tabela corrente. ) DBGOTOP() DBRLOCK() // Bloqueia o primeiro registro DBRLOCK(110) // Bloqueia o registro de número 110 DBRLOCK(100) // Bloqueia o registro de número 100 DBRLOCKLIST() // Retorna: {1. Ela também pode ser utilizada para especificar outro RDD como padrão. nREGISTRO • Retorno: .br - SP 99 ..dbf"."SSS"..com.100.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.. "\dadosadv609\sa1990.T. Esta função é o oposto à DBRLOCK. Nenhum • Retorno: Array Retorna NIL se não existe tabela corrente ou não existe nenhum registro locado. ) DBGOTO(100) DBRUNLOCK() //Desbloqueia o registro atual (100) DBRUNLOCK(110) // Desbloqueia o registro de número 110 DBSETDRIVER() A função DBSETDRIVER() pode ser utilizada apenas para verificar qual o RDD que está definido como padrão quando for omitido seu parâmetro. • • Sintaxe: DBRUNLOCK([nREGISTRO]) Parâmetros: Número do registro a ser desbloqueado. especificando-o através do parâmetro.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: .T.F..T."SSS". que bloquea os registros.. Leona rdo da Vinci. .www. Exemplo: DBUSEAREA( .dbf".ADVPL GUIA DE REFERÊNCIA Versão 1.F.br .

mas o driver que estava em uso antes da atualização.com. Para utilizar os arquivos de extensão padrão do RDD este dado deve ser especificado. cNOVORDD • Retorno: Caracter Nome do RDD padrão corrente. Nenhum Exemplo: USE Cliente NEW DBSETINDEX("Ind1") DBSETINDEX("\teste\Ind2. Exemplo: DBSETDRIVER("CTREECDX") // Retorna: DBFCDX DBSETDRIVER() // Retorna: CTREECDX Note que ao utilizar a função DBSETDRIVER para redefinir o driver corrente. Quando o arquivo de índice possui apenas uma ordem. • • Sintaxe: DBSETINDEX(<@cARQINDICE>) Parâmetros: Nome do arquivo de índice. todas são acrescentadas à lista e a primeira torna-se ativa.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: DBSETDRIVER([cNOVORDD]) Parâmetros: Novo nome do RDD a ser definido como padrão. com ou sem diretório. a mesma é acrescentada à lista e torna-se ativa.www.br . nº 608 – Metrô Conceição . Leona rdo da Vinci. cARQINDICE • Retorno: . DBSETINDEX() A função DBSETINDEX() é utilizada para acrescentar uma ou mais ordens de determinado índice na lista de ordens ativas da área de trabalho.br - SP 100 .cdx") DBSETNICKNAME() Av.com. Quando o índice possui mais de uma ordem. o retorno da função não será o driver definido nos parâmetros.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

nº 608 – Metrô Conceição . em função de todas as áreas já abertas pela aplicação. o que causa o mesmo // efeito de SA1->A1_NOME Av.ADVPL GUIA DE REFERÊNCIA Versão 1."NOME") // retorna: "" DBSETNICKNAME("IndNome") // retorna: "NOME" DBSELECTAREA() Define a área de trabalho especificada com sendo a área ativa.br . Nome do apelido da ordem a ser setada.www. Caso seja omitido o nome do apelido a ser dado. • • Sintaxe: DBSETNICKNAME(<cINDICE>. que pode ser utilizado ao invés do nome da área. não conseguiu setar o apelido ou não havia apelido. Leona rdo da Vinci. Exemplo: USE Cliente NEW DBSETNICKNAME("IndNome") // retorna: "" DBSETNICKNAME("IndNome". os comandos // a partir da seleção do alias compreendem que ele // está implícito na expressão. Todas as operações subseqüentes que fizerem referência a uma área de trabalho a utilização.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função DBSETNICKNAME() é utilizada para colocar um apelido em determinada ordem especificada pelo primeiro parâmetro. cINDICE cAPELIDO • Retorno: Caracter Retorna "" (String vazia) se não conseguiu encontrar a ordem especificada. • • Sintaxe: DbSelectArea(nArea | cArea) Parâmetros Valor numérico que representa a área desejada. a menos que a área desejada seja informada explicitamente. Retorna o apelido corrente.advpl.br SP 101 . nArea cArea Exemplo 01: DbselectArea(nArea) nArea := Select(“SA1”) // 10 (proposto) DbSelectArea(nArea) // De acordo com o retorno do comando Select() ALERT(“Nome do cliente: ”+A1_NOME) // Como o SA1 é o alias selecionado. Nome de referência da área de trabalho a ser selecionada.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com. a função apenas verifica o apelido corrente. [cAPELIDO]) Parâmetros: Nome da ordem que deve receber o apelido.

As ordens disponíveis no ambiente Protheus são aquelas definidas no SINDEX /SIX.ADVPL GUIA DE REFERÊNCIA Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo 02: DbselectArea(cArea) DbSelectArea(“SA1”) // Especificação direta do alias que deseja-se selecionar ALERT(“Nome do cliente: ”+A1_NOME) // Como o SA1 é o alias selecionado. • • Sintaxe: DbSetOrder(nOrdem) Parâmetros Número de referência da ordem que deseja ser definida como ordem ativa para a área de trabalho. • • Sintaxe: DbOrderNickName(NickName) Parâmetros NickName atribuído ao índice criado pelo usuário NickName Exemplo: DbSelectArea(“SA1”) DbOrderNickName(“Tipo”) // De acordo com o arquivo SIX -> A1_FILIAL+A1_TIPO NickName: Tipo DBSEEK() E MSSEEK() Av. ou as ordens disponibilizadas por meio de índices temporários. o que causa o mesmo // efeito de SA1->A1_NOME DBSETORDER() Define qual índice será utilizada pela área de trabalho ativa.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br . pela área previamente selecionada através do comando DbSelectArea().advpl. Leona rdo da Vinci. ou seja. nOrdem Exemplo: DbSelectArea(“SA1”) DbSetOrder(1) // De acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA DBORDERNICKNAME() Define qual índice criado pelo usuário seja utilizado.com. nº 608 – Metrô Conceição .com.br SP 102 .www. O usuário pode incluir os seus próprios índices e no momento da inclusão deve criar o NICKNAME para o mesmo. os comandos // a partir da seleção do alias compreendem que ele // está implícito na expressão.

Padrão . • • Sintaxe: DbSeek(cChave. “Consulta por cliente”) Endif Exemplo 02: Busca aproximada DbSelectArea(“SA1”) DbSetOrder(1) // acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA DbSeek(“01” + “000001” + “02”.ADVPL GUIA DE REFERÊNCIA Versão 1. a qual possui as mesmas funcionalidades básicas da função DbSeek(). Loja: 02 MsgInfo(“Cliente localizado”.advpl. “Consulta por cliente”) Else MsgAlert(“Cliente não encontrado”. de acordo com o índice ativo no momento para a área de trabalho.F.T.br SP 103 .www. com a vantagem de não necessitar Av. em relação a chave de busca especificada. caso não seja encontrada exatamente a informação da chave.com. . “Filial:” + A1_FILIAL + CRLF +. “Consulta por cliente”) MsSeek(): Função desenvolvida pela área de Tecnologia da Microsiga. ) // Filial: 01.F. nº 608 – Metrô Conceição . Define se o cursor ficará posicionado no próximo registro válido. ou seja. Define se o cursor será posicionado no primeiro ou no último registro de um intervalo com as mesmas informações especificadas na chave. “Loja:” + A1_LOJA + CRLF +. Padrão .br . lLast) Parâmetros Dados do registro que deseja-se localizar. o qual pode não ser o especificado na chave: MsgInfo(“Dados do cliente localizado: ”+CRLF +. lSoftSeek. cChave lSoftSeek lLast Exemplo 01: Busca exata DbSelectArea(“SA1”) DbSetOrder(1) // acordo com o arquivo SIX -> A1_FILIAL+A1_COD+A1_LOJA IF DbSeek(“01” + “000001” + “02” ) // Filial: 01. Código: 000001. ou seja.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DbSeek(): Permite posicionar o cursor da área de trabalho ativo no registro com as informações especificadas na chave de busca. “Nome:” + A1_NOME + CRLF. “Código:” + A1_COD + CRLF +.com. Loja: 02 // Exibe os dados do cliente localizado. Código: 000001. Leona rdo da Vinci. ou em final de arquivo.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. se a informação especificada na chave de busca foi localizada na área de trabalho. de acordo com a ordem de busca previamente especificada pelo comando DbSetOrder(). fornecendo um retorno lógico indicando se o posicionamento foi efetuado com sucesso.

• • Sintaxe: DbSkip(nRegistros) Parâmetros Define em quantos registros o cursor será deslocado. Leona rdo da Vinci.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - SP 104 . Padrão 1 nRegistros Exemplo 01: Avançando registros DbSelectArea(“SA1”) DbSetOrder(2) // A1_FILIAL + A1_NOME DbGotop() // Posiciona o cursor no início da área de trabalho ativa While !EOF() // Enquanto o cursor da área de trabalho ativa não indicar fim de arquivo MsgInfo(“Você está no cliente:” + A1_NOME) DbSkip() End Exemplo 02: Retrocedendo registros DbSelectArea(“SA1”) DbSetOrder(2) // A1_FILIAL + A1_NOME DbGoBotton() // Posiciona o cursor no final da área de trabalho ativa While !BOF() // Enquanto o cursor da área de trabalho ativa não indicar início de arquivo MsgInfo(“Você está no cliente:” + A1_NOME) DbSkip(-1) End DBSETFILTER() Av. em função da ordem ativa para a área de trabalho. nº 608 – Metrô Conceição . a thread mantém em memória os dados necessários para reposicionar os registros já localizados através do comando DbSeek (no caso o Recno()) de forma que a aplicação pode simplesmente efetuar o posicionamento sem executar novamente a busca. que necessitam referenciar diversas vezes o mesmo registro durante uma execução.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” acessar novamente a base de dados para localizar uma informação já utilizada pela thread (conexão) ativa. Desta forma.ADVPL GUIA DE REFERÊNCIA Versão 1.br . A diferença entre o DbSeek() e o MsSeek() é notada em aplicações com grande volume de posicionamentos.www.com. DBSKIP() Move o cursor do registro posicionado para o próximo (ou anterior dependendo do parâmetro). como relatórios.

DBSTRUCT() Retorna um array contendo a estrutura da área de trabalho (alias) ativo. cCondicao) Parâmetros Bloco de expressa a condição de filtro em forma executável Expressão de filtro simples na forma de string bCondicao cCondicao Exemplo 01: Filtro com bloco de código bCondicao := {|| A1_COD >= “000001” . A1_COD <= ‘001000’” DbSelectArea(“SA1”) DbSetOrder(1) DbSetFilter(.com.AND.ADVPL GUIA DE REFERÊNCIA Versão 1. A estrutura será um array bidimensional conforme abaixo: ID* Nome campo Tipo campo Tamanho Decimais Índice do array Av.com. nº 608 – Metrô Conceição . o qual pode ser descrito na forma de um bloco de código ou através de uma expressão simples.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Define um filtro para a área de trabalho ativa. • • Sintaxe: DbSetFilter(bCondicao. Exemplo 02: Filtro com expressão simples cCondicao := “A1_COD >= ‘000001’ . Leona rdo da Vinci.www. A1_COD <= “001000”} DbSelectArea(“SA1”) DbSetOrder(1) DbSetFilter(bCondicao) DbGoBotton() While !EOF() MsgInfo(“Você está no cliente:”+A1_COD) DbSkip() End // O último cliente visualizado deve ter o código menor do que “001000”.br .cCondicao) DbGoBotton() While !EOF() MsgInfo(“Você está no cliente:”+A1_COD) DbSkip() End // O último cliente visualizado deve ter o código menor do que “001000”.AND.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br SP 105 .

br - SP .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: DbStruct() Parâmetros . nº 608 – Metrô Conceição . Nenhum Exemplo: cCampos := “” DbSelectArea(“SA1”) aStructSA1 := DbStruct() FOR nX := 1 to Len(aStructSA1) cCampos += aStructSA1[nX][1] + “/” NEXT nX ALERT(cCampos) DBUNLOCK() A função DBUNCLOK() retira os bloqueios dos registros e do arquivo da tabela corrente. Nenhum • Retorno: Nenhum . 106 Av.br . DBUNLOCKALL() A função DBUNLOCKALL() Retira os bloqueios de todos os registros e dos arquivos de todas as tabelas abertas. • • Sintaxe: DBUNLOCKALL() Parâmetros: .advpl.com.com.www. Nenhum • Retorno: Nenhum . Esta função é utilizada para liberar todos os registros bloqueados e é equivalente a executar DBUNLOCK para todas as tabelas da área de trabalho. • • Sintaxe: DBUNLOCK() Parâmetros: .ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci.

lComparilhado.F.) DbSelectArea(“SA1DBF”) MsgInfo(“A tabela SA1010. Leona rdo da Vinci. . Se o arquivo poderá ser alterado pela conexão ativa.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. “SA1DBF”. • • Sintaxe: DELETED() Parâmetros: .ADVPL GUIA DE REFERÊNCIA Versão 1. “DBFCDXAX”.T.br - SP 107 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” DBUSEAREA() Define um arquivo de base de dados como uma área de trabalho disponível na aplicação. cArquivo.. Alias para referência do arquivos de base de dados pela aplicação. Quando o registro é excluído.T. retorna . Algumas chaves válidas: “DBFCDX”.6) + “ registros. “CTREECDX”. Quando é executada a função DBPACK() todos os registros marcados como deletados são apagados fisicamente. Nome do arquivo de base de dados que será aberto com o alias especificado. cDriver. “TOPCONN”.DBF”. nº 608 – Metrô Conceição .. permanece fisicamente na tabela..ini do server da aplicação. Nenhum • Retorno: Nenhum . A aplicação ERP possui a variável __LOCALDRIVER definida a partir das configurações do .F. Se o arquivo poderá ser utilizado por outras conexões.”) DbCloseArea() DELETED() A função DELETED() Verifica se o registro está com marca de excluído. . A função DBRECALL() retira todas as marcas. cAlias. Esta função verifica este estado.DBF possui:” + STRZERO(RecCount().com. ele seja fechado antes da abertura do arquivo da base de dados. • Sintaxe: DbUseArea(lNovo. “DBFCDX”.advpl.www. Se nenhuma área está selecionada. Av. “\SA1010. lSoLeitura) • Parâmetros Parâmetro opcional que permite que se caso o cAlias especificado já esteja em uso. Driver que permita a aplicação manipular o arquivo de base de dados especificado.br . mas fica marcado como excluído. lNovo cDriver cArquivo cAlias lComparilhado lSoLeitura Exemplo: DbUserArea(..

). • • Sintaxe: FCOUNT() Parâmetros: .www.F.ADVPL GUIA DE REFERÊNCIA Versão 1.com. Nenhum • Retorno: Numérico Quantidade de campos existentes na estrutura da área de trabalho ativa.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 108 .T.advpl.”) ENDIF FOUND() A função FOUND() recupera o resultado de sucesso referente a última operação de busca efetuada pelo processamento corrente.com.br .DBF" SHARED NEW DBGOTO(100) IF DELETED() Messagebox("O registro atual foi deletado". Nenhum • Retorno: Lógico Indica se a última operação de busca realizada pelo processamento corrente obteve sucesso (. nº 608 – Metrô Conceição . • • Sintaxe: FOUND() Parâmetros: . Av. 0) ENDIF FCOUNT() A função FCOUNT() avalia a quantidade de campos existentes na estrutura do arquivo ativo como área de trabalho."Erro".0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: USE "\DADOSADV\AA1990.) ou não (. Exemplo: DbSelectArea(“SA1”) nFields := FCOUNT() IF nFields > 0 MSGINFO(“A estrutura da tabela contém :+CvalToChar(nFields)+“campos. Leona rdo da Vinci.

Caso não haja um índice correspondente. Leona rdo da Vinci. • • Sintaxe: INDEXORD() Parâmetros: .www. e o retorna na forma de uma cadeia de caracteres. INDEXKEY() retorna uma cadeia de caracteres vazia ("").br 109 .ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição .com. sendo normalmente utilizada na área de trabalho correntemente selecionada.T. Nenhum • Retorno: Numérico Posição do índice corrente na lista de índices da tabela.. • • Sintaxe: INDEXKEY() Parâmetros: Ordem do índice na lista de índices abertos pelo comando USE.com. Retorna 0 se não SP Av. independentemente de sua posição real na lista.br .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Caracter Exemplo: cExpressao := SA1->(IndexKey()) INDEXORD() A função INDEXORD() verifica a posição do índice corrente na lista de índices do respectivo alias.advpl. O valor default zero especifica o índice corrente.) DbSelectArea(“SA1”) DbSetOrder(1) DbSeek(xFilial(“SA1”)+MVPAR01) IF Found() MSGINFO(“Cliente encontrado”) ELSE MSGALERT(“Dados não encontrados”) ENDIF INDEXKEY() A função INDEXKEY() determina a expressão da chave de um índice especificado na área de trabalho corrente. nOrdem • Retorno: Expressão da chave do índice especificado na forma de uma cadeia de caracteres...0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: Pergunte(cPerg.INDEX ou SET INDEX TO na área de trabalho corrente.

caso contrário o arquivo destino terá que ser informado. a função retornará uma data vazia (ctod("")) .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” existe índice aberto na tabela corrente.é o primeiro índice da lista LUPDATE() A função LUPDATE() verifica qual a data da última modificação e fechamento da tabela corrente. Leona rdo da Vinci. sendo que caso não exista tabela corrente é retornada uma data em branco. dModificacao := LUpdate() IF (EMPTY(dModificacao)) CONOUT("Não há tabela corrente") ELSE CONOUT(("Data da ultima modificacao : " + DTOS(dModificacao))) ENDIF MSAPPEND() A função MsAppend() adiciona registros de um arquivo para outro. Exemplo: // Mostra a data da última modificação da tabela corrente. End. Caso não haja tabela selecionada na área de trabalho atual .ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: LUPDATE() Parâmetros: . nº 608 – Metrô Conceição . cArqDest cArqOrig • Retorno: Av.com.www. indicando a data da ultima modificação e fechamento da Tabela.advpl. respeitando a estrutura das tabelas. Cep nOrd:=INDEXORD() // Return: 1 .com. Nome do arquivo origem contendo os registros a serem adicionados. • • Sintaxe: MSAPPEND( [cArqDest].br . Exemplo: USE Cliente NEW SET INDEX TO Nome.br - SP 110 . Nenhum • Retorno: Data Retorna um valor do tipo Data .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. cArqOrig ) Parâmetros: Se o RDD corrente for DBFCDX os registros serão adicionados na área selecionada.

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Lógico

Se a operação for realizada com sucesso o função retornará verdadeiro (.T.).

Exemplo: dbSelectArea(‘XXX’) MsAppend(,‘ARQ00001’)

MSUNLOCK() Libera o travamento (lock) do registro posicionado confirmando as atualizações efetuadas neste registro. • • Sintaxe: MsUnLock() Parâmetros .

Nenhum

Exemplo: DbSelectArea(“SA1”) DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA DbSeek(“01” + “900001” + “01”) // Busca exata IF Found() // Avalia o retorno do último DbSeek realizado RecLock(“SA1”,.F.) SA1->A1_NOME := “CLIENTE CURSO ADVPL BÁSICO” SA1->A1_NREDUZ := “ADVPL BÁSICO” MsUnLock() // Confirma e finaliza a operação ENDIF

ORDBAGEXT() A função ORDBAGEXT é utilizada no gerenciamento de indices para os arquivos de dados do sistema, permitindo avaliar qual a extensão deste índices atualmente em uso, de acordo com a RDD ativa. • • Sintaxe: ORDBAGEXT() Parâmetros: .

Nenhum • Retorno:

cBagExt

Extensão do arquivo dos arquivos de índices em uso pelo sistema, determinado pela RDD ativa.

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

111

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Exemplo: cArqTRB := CriaTrab(aStruTRB,.T.) // RDD UTILIZADA: “DBFCDXADS” DbUseArea(.T., “DBFCDXADS”, cArqTRB, "TRBSA1", .F., .F.) DbSelectArea("TRBSA1") cArqInd := CriaTrab(Nil,.F.) IndRegua("TRBSA1",cArqInd,cChaveInd,,"","Selecionando registros ...") #IFNDEF TOP DbSetIndex(cArqInd+OrdBagExt()) // RETORNO: “.CDX” #ENDIF DbSetOrder(1)

ORDKEY() A função ORDKEY() verifica qual é a expressão de chave de determinada ordem. Caso não sejam especificados os parâmetros de identificação da ordem, é verificada a ordem corrente. Para evitar conflito, no caso de haver mais de uma ordem com o mesmo nome, pode-se passar o parâmetro com o nome do índice ao qual a ordem pertence. A ordem passada no primeiro parâmetro pode ser especificada através da sua posição na lista de ordens ativas (através do ORDLISTADD) ou através do nome dado à ordem. A função verifica automaticamente se o parâmetro é numérico ou caracter. • • Sintaxe: ORDKEY([cOrdem | nPosicao] , [cArqIndice]) Parâmetros: Há duas opções para o primeiro parâmetro: cNome: tipo caracter, contém nome do índice. nPosicao: tipo numérico, indica ordem do índice. Nome do arquivo de índice.

cOrdem nPosicao cArqIndice • Retorno:

Caracter

Expressão de chave da ordem ativa ou especificada pelos parâmetros. Cadeia vazia indica que não existe ordem corrente.

Exemplo: USE Cliente NEW INDEX ON Nome+Cod TO Ind1 FOR Nome+Cod > 'AZZZZZZZ' ORDKEY('Ind1') // Retorna: Nome+Cod

RECLOCK() Efetua o travamento do registro posicionado na área de trabalho ativa, permitindo a inclusão ou alteração das informações do mesmo.
Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br SP

112

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

• •

Sintaxe: RecLock(cAlias,lInclui) Parâmetros Alias que identifica a área de trabalho que será manipulada. Define se a operação será uma inclusão (.T.) ou uma alteração (.F.)

cAlias lInclui

Exemplo 01: Inclusão DbSelectArea(“SA1”) RecLock(“SA1”,.T.) SA1->A1_FILIAL := xFilial(“SA1”) // Retorna a filial de acordo com as configurações do ERP SA1->A1_COD := “900001” SA1->A1_LOJA := “01” MsUnLock() // Confirma e finaliza a operação

Exemplo 02 Alteração DbSelectArea(“SA1”) DbSetOrder(1) // A1_FILIAL + A1_COD + A1_LOJA DbSeek(“01” + “900001” + “01”) // Busca exata IF Found() // Avalia o retorno do último DbSeek realizado RecLock(“SA1”,.F.) SA1->A1_NOME := “CLIENTE CURSO ADVPL BÁSICO” SA1->A1_NREDUZ := “ADVPL BÁSICO” MsUnLock() // Confirma e finaliza a operação ENDIF

A linguagem ADVPL possui variações da função RecLock(), as quais são: • • RLOCK() DBRLOCK()

A sintaxe e a descrição destas funções estão disponíveis no Guia de Referência Rápido ao final deste material.

A linguagem ADVPL possui variações da função MsUnlock(), as quais são: • • • UNLOCK() DBUNLOCK() DBUNLOCKALL() 113

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A sintaxe e a descrição destas funções estão disponíveis no Guia de Referência Rápido ao final deste material.com.3)) // 10 (proposto) Av. SELECT() retorna zero. RECNO() A função RECNO() retorna o número do registro atualmente posiconado na área de trabalho ativa.www.br .advpl.com. • • Sintaxe: RECNO() Parâmetros: . MSGINFO(“Registro posicionado:”+cValToChar(RECNO())) SELECT() A função SELECT() determina o número da área de trabalho de um alias. Leona rdo da Vinci. é retornado o número da área de trabalho corrente. Nenhum • Retorno: nRecno Identificador numérico do registro atualmente posicionando na área de trabalho ativa. Exemplo: DbSelectArea(“SA1”) DbGoto(100) // Posiciona no registro de recno 100.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: SELECT([cAlias]) Parâmetros: Nome da área de trabalho a ser verificada.br - SP 114 .ADVPL GUIA DE REFERÊNCIA Versão 1. Se <cAlias> não for especificado. O número retornado pode variar de zero a 250. Exemplo: nArea := Select(“SA1”) ALERT(“Referência do alias SA1: ”+STRZERO(nArea. cAlias • Retorno: Numérico Área de trabalho do alias especificado na forma de um valor numérico inteiro. nº 608 – Metrô Conceição . Caso <cAlias> seja especificado e o alias nao existir.

Leona rdo da Vinci. o SoftLock() é utilizado nos browses. nº 608 – Metrô Conceição . Nenhum O uso da sintaxe SET FILTER TO desativa o filtro na área de trabalho corrente.www. Na aplicação ERP Protheus.br . Phone SET FILTER TO SOFTLOCK() Permite a reserva do registro posicionado na área de trabalho ativa de forma que outras operações. o que implementa da integridade da informação.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” SET FILTER TO O comando SET FILTER TO define uma condição de filtro que será aplicada a área de trabalho ativa. pois neste momento a mesma ainda não foi efetivada.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Exemplo: USE Employee INDEX Name NEW SET FILTER TO Age > 50 LIST LastName. Esta expressão obrigatoriamente deve ter um retorno lógico.ADVPL GUIA DE REFERÊNCIA Versão 1. Difere da função RecLock() pois não gera uma obrigação de atualização. Age.br - SP .advpl. com exceção da atual. Recomenda-se o uso da função DbSetFilter() em substituição ao comando SET FILTER TO • • Sintaxe: SET FILTER TO cCondicao Parâmetros: Expressão que será avaliada pela SET FILTER. • • Sintaxe: SoftLock(cAlias) Parâmetros 115 Av.com. não possam atualizar este registro. e pode ser sucedido por ele.com. mas outras conexões não podem acessar aquele registro pois o mesmo está em manutenção. cCondicao • Retorno: . antes da confirmação da operação de alteração e exclusão. definindo os registros que ficarão disponíveis na área de trabalho ativa. FirstName.

• • Sintaxe: USED() Parâmetros: .F.ADVPL GUIA DE REFERÊNCIA Versão 1. retorna falso (.www. nº 608 – Metrô Conceição .F.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cAlias Alias de referência da área de trabalho ativa. Leona rdo da Vinci.br - SP . Endif Endif USED() A função USED() é utilizada para determinar se há um arquivo de banco de dados em uso em uma área de trabalho específica.T. para o qual o registro posicionado será travado.) caso haja um arquivo de banco de dados em uso. Nenhum • Retorno: Lógico Verdadeiro (. IF lConfirma RecLock(“SA1”.F. Controle de numeração seqüencial 116 Av. caso contrário. CLOSE CONOUT (USED()) // Resulta: .com.com. Exemplo: USE Customer NEW CONOUT(USED()) // Resulta: .).br . O padrão é que USED() opere na área de trabalho correntemente selecionada.. Exemplo: cChave := GetCliente() // Função ilustrativa que retorna os dados de busca de um cliente DbSelectArea(“SA1”) DbSetOrder(1) DbSeek(cChave) IF Found() SoftLock() // Reserva o registro localizado lConfirma := AlteraSA1() // Função ilustrativa que exibe os dados do registro // posicionado e pemite a alteração dos mesmos.T.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.) GravaSA1() // Função ilustrativa que altera os dados conforme a AlertaSA1() MsUnLock() // Liberado o RecLock() e o SoftLock() do registro.advpl.

sendo que sempre irá retornar um valor lógico falso.br . Número do índice para verificar qual a próxima ocorrência do número.ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição .com. facilitando a especificação desta situação nas parametrizações de validações de modelos de interface pré-definidos no sistema.com. • • Sintaxe: CONFIRMSXE(lVerifica) Parâmetros lVerifica Verifica se o número confirmado não foi alterado. cAliasSXE. Parâmetro opcional. Nome do campo no qual está implementado o controle da numeração. • • Sintaxe: ALLWAYSFALSE() Parâmetros: Av. • • Sintaxe: GETSXENUM(cAlias. quando esta configuração está habilitada no ambiente Protheus. quando o nome do alias nos arquivos de controle de numeração não é o nome convencional do alias para o sistema ERP. Nenhum Validação ALLWAYSFALSE() A função AllwaysFalse() foi criada com o objetivo de compatibilidade. cCampo.www. cAlias cCampo cAliasSXE nOrdem CONFIRMSXE() Confirma o número alocado através do último comando GETSXENUM().0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” GETSXENUM() Obtém o número seqüência do alias especificado no parâmetro. retornando a numeração disponível para outras conexões. Leona rdo da Vinci. e por conseqüência já existe na base de dados. ROLLBACKSXE() Descarta o número fornecido pelo último comando GETSXENUM().São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br SP 117 . através da referência aos arquivos de sistema SXE/SXF ou ao servidor de numeração. nOrdem) Parâmetros Alias de referência da tabela para a qual será efetuado o controle da numeração seqüencial.advpl. • • Sintaxe: ROLLBACKSXE() Parâmetros .

ou . Leona rdo da Vinci.advpl.F.T. ou . Nenhum • Retorno: Lógico Retorna um valor lógico sempre verdadeiro. cAlias cConteudo nIndice EXISTCPO() Retorna . a qual depende de outra tabela.www.com. ALLWAYSTRUE() A função AllwaysTrue() foi criada com o objetivo de compatibilidade. se o conteúdo especificado existe no alias especificado.ADVPL GUIA DE REFERÊNCIA Versão 1.F.com. • • Sintaxe: ALLWAYSTRUE() Parâmetros: . como por exemplo o CNPJ no cadastro de clientes ou fornecedores. nIndice) Av. Função utilizada normalmente para verificar se a informação digitada em um campo. sem a filial. realmente existe nesta outra tabela. cConteudo. como por exemplo o código de um cliente em um pedido de venda. nº 608 – Metrô Conceição . Caso exista será exibido um help de sistema com um aviso informando da ocorrência. Índice de busca para consulta da chave.br SP 118 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Nenhum • Retorno: . • Sintaxe: ExistCpo(cAlias. Lógico Retorna um valor lógico sempre falso. sendo que sempre irá retornar um valor lógico verdadeiro. Função utilizada normalmente para verificar se um determinado código de cadastro já existe na tabela na qual a informação será inserida. Chave a ser pesquisada. nIndice) Parâmetros Alias de referência para a validação da informação.T. • • Sintaxe: ExistChav(cAlias. Caso não exista será exibido um help de sistema com um aviso informando da ocorrência. se o conteúdo especificado não existe no alias especificado.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. cConteudo.br . facilitando a especificação desta situação nas parametrizações de validações de modelos de interface pré-definidos no sistema. EXISTCHAV() Retorna .

T. Nenhum NEGATIVO() Retorna .F.www. sem a filial. se o conteúdo digitado para o campo é negativo. NAOVAZIO() Retorna . LETTERORNUM() A função LETTERORNUM() avalia se um determinado conteúdo é composto apenas de letras e números (alfanumérico). alfanumérico.br - SP . se o conteúdo digitado para o campo está contido na string definida como parâmetro da função. Índice de busca para consulta da chave.T. Chave a ser pesquisada.advpl. Leona rdo da Vinci. Normalmente utilizada em campos com a opção de combo. ou seja.F. Nenhum PERTENCE() Retorna .br . • • Sintaxe: LETTERORNUM(cString) Parâmetros: String que terá seu conteúdo avaliado. cString • Retorno: Lógico Indica que se a string avaliada contém apenas letras e número.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. ou . se o conteúdo do campo posicionado no momento não está vazio. ou .com. • • Sintaxe: Negativo() Parâmetros . 119 Av.T.ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição . ou .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros cAlias cConteudo nIndice Alias de referência para a validação da informação. pois caso contrário seria utilizada a função ExistCpo().com.F. • • Sintaxe: NaoVazio() Parâmetros .

ADVPL GUIA DE REFERÊNCIA Versão 1.br SP 120 .br . Nenhum TEXTO() Retorna .T.T.F. • • Sintaxe: GETMV(cParametro) Parâmetros Av. • • Sintaxe: Positivo() Parâmetros .T.F.F. ou . se o conteúdo digitado para o campo contém apenas números ou alfanuméricos. Nenhum VAZIO() Retorna . • • Sintaxe: Texto() Parâmetros . • • Sintaxe: Vazio() Parâmetros .com. ou .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci. Nenhum Manipulação de parâmetros do sistema GETMV() Retorna o conteúdo do parâmetro especificado no arquivo SX6. Caso o parâmetro não exista será exibido um help do sistema informando a ocorrência. POSITIVO() Retorna .www.com.advpl. se o conteúdo digitado para o campo é positivo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: Pertence(cString) Parâmetros cString String contendo as informações válidas que podem ser digitadas para um campo. considerando a filial parametrizada na conexão. ou . se o conteúdo do campo posicionado no momento está vazio. nº 608 – Metrô Conceição .

br . nº 608 – Metrô Conceição . • • Sintaxe: PUTMV(cParametro. e por conseqüência não será exibida a mensagem de help.ADVPL GUIA DE REFERÊNCIA Versão 1.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www. Padrão corrente da conexão. Leona rdo da Vinci. filial cPadrao cFilial PUTMV() Atualiza o conteúdo do parâmetro especificado no arquivo SX6. cConteudo) Parâmetros Nome do parâmetro do sistema no SX6. de acordo com as parametrizações informadas. sem a especificação da filial de sistema. considerando a filial parametrizada na conexão. cParametro cConteudo SUPERGETMV() Retorna o conteúdo do parâmetro especificado no arquivo SX6. Caso o parâmetro não exista será exibido um help do sistema informando a ocorrência.com. 121 Av. Conteúdo que será atribuído ao parâmetro no SX6.advpl. Caso o parâmetro não exista será exibido um help do sistema informando a ocorrência. sem a especificação da filial de sistema. Difere do SuperGetMV() pois considera que o parâmetro pode não existir na versão atual do sistema. cFilial) Parâmetros cParametro Nome do parâmetro do sistema no SX6.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cParametro Nome do parâmetro do sistema no SX6. GETNEWPAR() Retorna o conteúdo do parâmetro especificado no arquivo SX6. Difere do GetMv() pois os parâmetros consultados são adicionados em uma área de memória. Define para qual filial será efetuada a consulta do parâmetro. Conteúdo padrão que será utilizado caso o parâmetro não exista no SX6. considerando a filial parametrizada na conexão. que permite que em uma nova consulta não seja necessário acessar e pesquisar o parâmetro na base de dados. cPadrao.br - SP .com. sem a especificação da filial de sistema. Sintaxe: GETNEWPAR(cParametro.

podendo assumir os valores 80. nº 608 – Metrô Conceição .www. configurando a impressora de acordo com o driver escolhido e os parâmetros de impressão disponíveis no array aReturn. respectivamente para os formatos “P”.01. Padrão corrente da conexão. cFilial) Parâmetros cParametro Nome do parâmetro do sistema no SX6. lHelp . Leona rdo da Vinci. cPadrao . Caracter Exemplo: /*/ +----------------------------------------------------------------------------| Função | XAVALIMP | Autor | | Data | 01.2007 | +----------------------------------------------------------------------------| Descrição | Exemplo de utilização da função AXCADASTRO() | |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ USER FUNCTION XAVALIMP() Av. Conteúdo padrão que será utilizado caso o parâmetro não exista no SX6. sem a especificação da filial de sistema.br . filial cPadrao cFilial Controle de impressão AVALIMP() A função AVALIMP() é utilzada em relatórios específicos em substituição da função CABEC().advpl. Define para qual filial será efetuada a consulta do parâmetro.132 ou 220 colunas.br SP 122 . respeitando o formato utilizado pela função SETPRINT(). “M” ou “G” de impressão. nLimite • Retorno: String com caracteres de controle.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: SUPERGETMV(cParametro . dependente das configurações escolhidas pelo usuário e do arquivo de driver especificado.ADVPL GUIA DE REFERÊNCIA Versão 1. lHelp Se será exibida a mensagem de Help caso o parâmetro não seja encontrado no SX6.com. • • Sintaxe: AVALIMP(nLimite) Parâmetros: Tamanho do relatório em colunas.

F.0) //+-------------------------------------------------------------------------+ //| Chamada da função AVALIMP() | //+-------------------------------------------------------------------------+ @ 00..com. 1.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.2007 | +----------------------------------------------------------------------------| Descrição | Função interna de processamento utilizada pela XAVALIMP() | |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ Static Function RunReport(cString) SetPrc(0.cString) Exemplo (continuação): If nLastKey == 27 Return Endif RptStatus({|| RunReport(cString)}.advpl.74) := “” := PADC(“CURSO DE ADVPL”.74) := PADC(“Demonstração do uso da função AVALIMP()”..) .br .10) // Compatibilização com MP10 := 0 :=”SF2" Pergunte(cPerg..”Administração”.cDesc2. 1. Av.T.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL cTitulo cDesc1 cDesc2 cDesc3 cTamanho cLimite cNatureza aReturn cNomeProg cPerg nLastKey cString := PADC(“AVALIMP”.com.) // Pergunta no SX1 wnrel:= SetPrint(cString.cPerg. Return CABEC() A função CABEC() determina as configurações de impressão do relatório e imprime o cabeçalho do mesmo.T.cDesc1. nº 608 – Metrô Conceição .1} := “RAVALIMP” := PADR(“RAVALIMP”.cTitulo) Return /*/ +----------------------------------------------------------------------------| Função | RUNREPORT | Autor | | Data | 01.00 PSAY AvalImp(220) dbSelectArea(cString) dbSeek(xFilial()+mv_par01+mv_par03.. 2.ADVPL GUIA DE REFERÊNCIA Versão 1.74) := “G” := 220 := “” := {“Especial”.””. Leona rdo da Vinci.br - SP 123 . 2.www.cTitulo.01.wnrel..cDesc3.) SetDefault(aReturn.

advpl. 132 ou 220) Indica se impressão será comprimida (15) ou normal (18). substituindo a estrutura padrão do sistema.2007 | +----------------------------------------------------------------------------| Descrição | Exemplo de utilização das funções de impressão CABEC() | |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ User Function MPTR001() Local Local Local Local Local cDesc1 cDesc2 cDesc3 cTitulo lImprime := := := := := "Este programa tem como objetivo imprimir relatorio " "de acordo com os parametros informados pelo usuario. cLogo) Parâmetros: Título do relatório String contendo as informações da primeira linha do cabeçalho String contendo as informações da segunda linha do cabeçalho Nome do programa de impressão do relatório. // Habilita a visalizacao do dicionario Av.01. Permite a supressão da impressão das perguntas do relatório.BMP" cLogo • Retorno: . Texto específico para o cabeçalho.com.br SP 124 . mesmo que o parâmetro MV_IMPSX1 esteja definido como “S” • cTitulo cCabec1 cCabec2 cNomeProg nTamanho nCompress aCustomText lPerg • Parâmetros (continuação): Redefine o bitmap que será impresso no relatório.com.ch" /*/ +----------------------------------------------------------------------------| Função | MPTR001 | Autor | | Data | 01. cCabec2. Tamanho do relatório em colunas (80.www." "Listagem de clientes" "Listagem de clientes" .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Sintaxe: Cabec(cTitulo. cCabec1. // Parametros da SetPrint() Local cString := "SA1" Local cPerg := "" Local lDic := .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nº 608 – Metrô Conceição .ADVPL GUIA DE REFERÊNCIA Versão 1. cNomeProg. Nenhum Exemplo: #INCLUDE "protheus. aCustomText. Leona rdo da Vinci. lPerg. não necessitando que ele esteja no formato padrão da Microsiga: "LGRL"+SM0->M0_CODIGO+SM0->M0_CODFIL+".br .T. nTamanho. nCompress.T.

.lDic.cPerg. nº 608 – Metrô Conceição .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Local Local Local Local Local Local Local aOrd lCompres lFilter cNomeProg cTamanho nTipo nLimite := := := := := := := RetSixOrd(cString) .Normal / . 1} //aReturn[4] 1.cNomeProg.cTamanho.www.cTamanho. 1. Private aReturn := { "Zebrado".advpl.aReturn[4]) // nFormato: 1.cNomeProg.br SP 125 . 2.aOrd. . 2Paisagem If nLastKey == 27 Return Endif nTipo := IIF(aReturn[4]==1...com. 3. .br .Direto na Porta.@cTitulo.T.cDesc3.2007 | +----------------------------------------------------------------------------| Descrição | Função interna de processamento utilizada pela MPTR001() | |+---------------------------------------------------------------------------Av. "Administracao".cString.lCompre s. 4.Retrato. // Habilita o filtro para o usuario "MPTR002" "M" 18 132 Default lCriaTrab := .Em Disco.cTitulo) Return /*/ +----------------------------------------------------------------------------| Função | RUNREPORT | Autor | -------------------. 2. 2..18) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Processamento. ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ wnrel := SetPrint(cString.nTipo. Private lEnd := .cDesc1.F.cString. ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ RptStatus({|| RunReport(cTitulo.15.01.cDesc2.| Data | 01.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. 2. // .nLimite)}.ADVPL GUIA DE REFERÊNCIA Versão 1.Comprimido . Leona rdo da Vinci.Retrato.com.Via Spool.lFilter) If nLastKey == 27 Return Endif SetDefault(aReturn.T.F.cTamanho.Paisagem //aReturn[5] 1. RPTSTATUS monta janela com a regua de processamento. "". 1. Private lAbortPrint := .T.T..F.Email Private nLastKey Private m_pag Private wnrel := 0 := 01 := "MPTR002" dbSelectArea("SA1") dbSetOrder(1) Exemplo (continuação): //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Monta a interface padrao com o usuario.

cTam.cNomeProg.cTamanho. “M” e “G”. cNomeProg.cCabec2. seguindo o formato especificado no tamanho.com. cCab2. nLastKey == 27 @nLin. Neste caso o formulario tem 55 linhas.OR. Cabec(cTitulo.nLimite) Local Local Local Local nLin cCabec1 cCabec2 cArqInd := += += := := 80 := "" := "" cCabec1 cCabec1 cCabec1 cCabec2 "CODIGO"+Space(2)+"LOJA"+Space(2)+"NOME REDUZIDO"+Space(9) "RAZAO SOCIAL"+Space(30)+"CNPJ"+Space(18)+"INSCR.advpl. aonde: “P”.80 colunas SP cCab1 cCab2 cCab3 cNomeProg cTam nLimite Av.nTipo. cCab3.cString.cCabec1.nTipo) nLin := 9 Endif .com.... nLimite.www.br 126 .cTamanho.ADVPL GUIA DE REFERÊNCIA Versão 1.. Leona rdo da Vinci. nº 608 – Metrô Conceição . cAlias) Parâmetros: Primeira linha do cabeçalho Segunda linha do cabeçalho Terceira linha do cabeçalho Nome do programa Tamanho do relatório nos formatos “P”.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.cNomeProg.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” | Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ Static Function RunReport(cTitulo. Número de colunas do relatório.ESTADUAL"+Space(8) "CEP" "ESTADO"+Space(2)+"MUNICIPIO"+Space(8)+"ENDERECO" dbSelectArea("TRBSA1") dbGoTop() SetRegua(RecCount()) Exemplo (continuação): While !EOF() If lAbortPrint .br .00 PSAY "*** CANCELADO PELO OPERADOR ***" Exit Endif If nLin > 55 // Salto de Página. IMPCADAST() A função IMPCADAST() cria uma interface simples que permite a impressão dos cadastros do sistema com parametrização DE/ATE. • • Sintaxe: IMPCADAST(cCab1.

Nenhum • Retorno: Nenhum .cString.nTipo.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.com.cNomeProg.nLimite) Local Local Local Local nLin cCabec1 cCabec2 cArqInd := += += := := 80 := "" := "" cCabec1 cCabec1 cCabec1 cCabec2 "CODIGO"+Space(2)+"LOJA"+Space(2)+"NOME REDUZIDO"+Space(9) "RAZAO SOCIAL"+Space(30)+"CNPJ"+Space(18)+"INSCR.com. Leona rdo da Vinci.br .2007 | +----------------------------------------------------------------------------| Descrição | Função interna de processamento utilizada pela MPTR001() | |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------| Observação| Continuação do exemplo da função CABEC() | |+---------------------------------------------------------------------------/*/ Static Function RunReport(cTitulo. MS_FLUSH() A função MS_FLUSH() envia o spool de impressão para o dispositivo previamente especificado com a utilização das funções AVALIMP() ou SETPRINT().cTamanho. nº 608 – Metrô Conceição . Exemplo: /*/ +----------------------------------------------------------------------------| Função | RUNREPORT | Autor | | Data | 01.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cAlias • Retorno: “M”.advpl.01.132 colunas “G”.br SP 127 .www.ESTADUAL"+Space(8) "CEP" "ESTADO"+Space(2)+"MUNICIPIO"+Space(8)+"ENDERECO" dbSelectArea("TRBSA1") dbGoTop() SetRegua(RecCount()) Av. • • Sintaxe: MS_FLUSH() Parâmetros: .220 colunas Alias do arquivo de cadastro que será impresso Nenhum .

www.nTipo) nLin := 9 Endif // Primeira linha de detalhe: @nLin. permitindo a visualização do arquivo de impressão gerado pelo relatório no formato PostScrip® com extensão “##R”.000 PSAY TRBSA1->A1_EST @nLin.cNomeProg.com. Cabec(cTitulo.000 PSAY TRBSA1->A1_COD @nLin...008 PSAY TRBSA1->A1_MUN @nLin.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” While !EOF() If lAbortPrint .OR.br .122 PSAY TRBSA1->A1_CEP nLin++ Exemplo (continuação): // Segunda linha de detalhe @nLin.br - SP .100 PSAY TRBSA1->A1_INSCR @nLin.000 PSAY Replicate("-".cTamanho. • Sintaxe: OURSPOOL(cArquivo) 128 Av.00 PSAY "*** CANCELADO PELO OPERADOR ***" Exit Endif If nLin > 55 // Salto de Página.cCabec2.cCabec1.nLimite) nLin++ dbSkip() // Avanca o ponteiro do registro no arquivo EndDo SET DEVICE TO SCREEN If aReturn[5]==1 dbCommitAll() SET PRINTER TO OurSpool(wnrel) Endif MS_FLUSH() RETURN OURSPOOL() A função OURSPOOL() executa o gerenciador de impressão da aplicação Protheus. Leona rdo da Vinci.014 PSAY TRBSA1->A1_NREDUZ @nLin.025 PSAY TRBSA1->A1_END nLin++ //Linha separadora de detalhes @nLin.advpl.008 PSAY TRBSA1->A1_LOJA @nLin. nº 608 – Metrô Conceição .036 PSAY TRBSA1->A1_NOME @nLin. nLastKey == 27 @nLin.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.078 PSAY TRBSA1->A1_CGC @nLin.com.ADVPL GUIA DE REFERÊNCIA Versão 1. Neste caso o formulario tem 55 linhas.

2007 | +----------------------------------------------------------------------------| Descrição | Exemplo de utilização da função RODA() em conjunto com a CABEC. Retorno: . uPar02.com. Exemplo: If aReturn[5]==1 // Indica impressão em disco. o que pode ser feito a cada página. ou somente ao final da impressão.br .br - SP 129 . cSize) Parâmetros: Não é mais utilizado Não é mais utilizado Tamanho do relatório (“P”. nº 608 – Metrô Conceição . Leona rdo da Vinci.com. Exemplo: /*/ +----------------------------------------------------------------------------| Função | TESTIMPR | Autor | | Data | 01.01. cArquivo • .| |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ Av.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros: Nome do relatório a ser visualizado. dbCommitAll() SET PRINTER TO OurSpool(wnrel) Endif RODA() A função RODA() imprime o rodapé da página do relatório. • • Sintaxe: Roda(uPar01.www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Pode ser utilizado o ponto de entrada "RodaEsp" para tratamento de uma impressão específica.ADVPL GUIA DE REFERÊNCIA Versão 1.”G”) uPar01 uPar02 cSize • Retorno: Nenhum .”M”.advpl.

.ADVPL GUIA DE REFERÊNCIA Versão 1.Tamanho. Leona rdo da Vinci.Tamanho.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.cString.05 PSAY A1_LOJA @ Li.1 } wnrel:=SetPrint(cString.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” #include "protheus.cabec1.com.F.) SetDefault(aReturn.. nº 608 – Metrô Conceição .titulo) Return Exemplo (continuação): /*/ +----------------------------------------------------------------------------| Função | TESTREL | Autor | | Data | | +----------------------------------------------------------------------------| Descrição | Função interna de impressão da TestImpr().01 PSAY A1_COD @ Li.nomeprog. 1.cabec2 cRodaTxt := oemtoansi("Rodapé") nCntImpr nTipo nCntImpr := 0 li := 80 m_pag := 1 nTipo := 15 titulo:= oemtoansi("Lista de Clientes") cabec1:= oemtoansi("COD LOJA NOME"+Space(27)+ "NOME FANTASIA") cabec2:="" dbSelectArea("SA1") dbGoTop() SetRegua(LastRec()) While !Eof() IncRegua() If Li > 60 cabec(titulo..10 PSAY A1_NOME Av."Administracao".www. "".15) @ Li..NomeProg) LOCAL LOCAL Local Local cabec1.cString) RptStatus({|lEnd| TestRel(@lEnd."".ch" User Function TestImpr() Local wnrel Local cString := "SA1" Local titulo := "Teste Impressão de Relatorios" Local NomeProg := "XXX" Local Tamanho := "M" PRIVATE aReturn := { "Zebrado". | |+---------------------------------------------------------------------------| Uso | Curso ADVPL | |+---------------------------------------------------------------------------/*/ User Function TestRel(lEnd.NomeProg. 1..0 PSAY __PrtThinLine() Endif nCntImpr++ Li++ @ Li.F."".tamanho..F. 1.@titulo.advpl.WnRel...cabec2. "".wnRel.br . 2.F.Tamanho.br SP 130 .NomeProg)}.cString. "".

[ nFormat ] ) • Parâmetros: Configurações de impressão. formato da impressão Numérico.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” @ Li.cRodaTxt. destinatário Numérico. Parâmetro reservado.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com. Parâmetro reservado.br - SP .ADVPL GUIA DE REFERÊNCIA Versão 1."M" ou "G" Formato da página. opção de margem Caracter. driver do dispositivo de impressão 131 aReturn[1] aReturn[2] aReturn[3] aReturn[4] aReturn[5] aReturn[6] Av. Leona rdo da Vinci. obtidas através da função SetPrint(). Sintaxe: SetDefault ( < aReturn > .www. [ uParm3 ] . 1 retrato e 2 paisagem. dispositivo de impressão Caracter.51 PSAY A1_NREDUZ If Li > 60 Li:=66 Endif dbSkip() EndDO If li != 80 Roda(nCntImpr. Alias do arquivo a ser impresso. nº 608 – Metrô Conceição .Tamanho) EndIf Set Device to Screen If aReturn[5] = 1 Set Printer To dbCommitAll() OurSpool(wnrel) Endif MS_FLUSH() Return SETDEFAULT() A função SetDefault() prepara o ambiente de impressão de acordo com as informações configuradas no array aReturn.br . Estrutura aReturn: Caracter. [cSize] . Tamanho da página "P". tipo do formulário Numérico. [ uParm4 ] .com. aReturn cAlias uParm3 uParm4 cSize nFormat • Retorno: Nenhum • . < cAlias > .

nº 608 – Metrô Conceição .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” aReturn[7] aReturn[8] aReturn[x] Caracter.com. Leona rdo da Vinci.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www.advpl.br - SP 132 . definidos pelo uso da opção Dicionário da SetPrint(). filtro definido pelo usuário Numérico.ADVPL GUIA DE REFERÊNCIA Versão 1. Av.com.br . ordem A partir a posição [9] devem ser informados os nomes dos campos que devem ser considerados no processamento.

< cProgram > . os dados são armazenados no vetor aReturn que será passado como parâmetro para função SetDefault()."". [ cDesc3 ] . [ lServer ] .F. [ aOrd ] .'EPSON."".Alias()) SetPrc(0.. • • Sintaxe: SETPRC(nLinha. sendo que: • • m_pag: controla o número de páginas... Nome do arquivo a ser gerado em disco. nLinha nColuna • Retorno: Nenhum .. "".br 133 . [ cDesc1 ] ..cPorta) if nLastKey == 27 Return (. [ cDesc2 ] .T.. previamente definido pelo uso das funções AVALIMP() ou SETPRINT() . em uma linha/coluna especificada..) Endif SetDefault(aReturn..ADVPL GUIA DE REFERÊNCIA Versão 1...F. [ uParm16 ] . 1. [ cPergunte ] . [ uParm12 ] . Coluna na qual deverá ser posicionado o dispositivo de impressão.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” SETPRC() A função SETPRC() é utilizada para posicionar o dispositivo de impressão ativo. [ cSize ] . "" ..advpl.www. [ cNameDrv ] .com.0) SETPRINT() A função SetPrint() cria uma interface padrão onde as opções de impressão de um relatório podem ser configuradas.IndexOrd() } SetPrint(Alias(). 3. • Sintaxe: SetPrint ( < cAlias > . [ cTitle ] . [ lCompres ] .com. SP • cAlias cProgram cPergunte Av. [ cPortPrint ] ) --> cReturn Parâmetros: Alias do arquivo a ser impresso.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. [ lDic ] . nº 608 – Metrô Conceição . sendo sua estrutura básica composta de 8 (oito) elementos. 2. Leona rdo da Vinci..br . cPorta . Após confirmada. aReturn: vetor contendo as opções de impressão. Exemplo: aReturn := { "". [ lCrystal ] . nColuna) Parâmetros: Linha na qual deverá ser posicionado o dispositivo de impressão."".. [ lFilter ] . Basicamente duas variáveis m_pag e aReturn precisam ser declaradas como privadas (private) antes de executar a SetPrint(). Grupo de perguntas cadastrado no dicionário SX1.DRV'..

o valor padrão assumido será .br . Se verdadeiro (.com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cTitle • Título do relatório.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Continuação da descrição do relatório.ADVPL GUIA DE REFERÊNCIA Versão 1. cDesc1 cDesc2 cDesc3 lDic aOrd lCompres cSize uParm12 lFilter lCrystal cNameDrv uParm16 lServer cPortPrint • Retorno: Caracter • Nome do Relatório Estrutura aReturn: Caracter. Parâmetro reservado.) força impressão no servidor. Continuação da descrição do relatório. driver do dispositivo de impressão Caracter.T. Tamanho do relatório "P". Parâmetro reservado Se verdadeiro (.) permite a utilização do assistente de filtro."M" ou "G". Define uma porta de impressão padrão.T. nº 608 – Metrô Conceição .T.T.www. Parâmetros (continuação): Descrição do relatório. formato da impressão Numérico.advpl. Nome de um driver de impressão.T. opção de margem Caracter. tipo do formulário Numérico.F. aReturn[1] aReturn[2] aReturn[3] aReturn[4] aReturn[5] aReturn[6] aReturn[7] aReturn[8] aReturn[x] Av. Se verdadeiro (. filtro definido pelo usuário Numérico. ordem A partir a posição [9] devem ser informados os nomes dos campos que devem ser considerados no processamento. destinatário Numérico.T.) permite integração com Crystal Report. o valor padrão assumido será . o valor padrão assumido será . dispositivo de impressão Caracter. Ordem(s) de impressão. Se o parametro cAlias não for informado o valor padrão assumido será .F. Utilizado na impressão de cadastro genérico permite a escolha dos campos a serem impressos.) permite escolher o formato da impressão. Se verdadeiro (.br - SP 134 . Leona rdo da Vinci. definidos pelo uso da opção Dicionário da SetPrint().

com. SM2 e SM4. PACK. • • Sintaxe: ABREEXCL(cAlias) Parâmetros: Alias do arquivo que será re-aberto em modo exclusivo. separando os itens com “/”. aClose aOpen • Retorno: Lógico Indica se todos os arquivos especificados em aOpen foram abertos com sucesso.F. cAlias • Retorno: Lógico Indica se foi possível abrir o arquivo em modo exclusivo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Controle de processamentos ABREEXCL() A função ABREEXCL() fecha o arquivo cujo alias está expresso em <cAlias> e o reabre em modo exclusivo para proceder operações em que isto é necessário. nº 608 – Metrô Conceição .br - SP 135 . com exceção dos SXs (inclusive SIX). CLOSESFILE() A função CLOSESFILE() fecha todos os arquivos em uso pela conexão.advpl.. • • Sintaxe: CLOSESFILE(cAlias) Parâmetros: String contendo os nomes dos demais Aliases que não deverão ser fechados.www. Se outra estação estiver usando o arquivo. CLOSEOPEN() A função CLOSEOPEN() é utilizada para fechar e re-abrir uma lista de arquivos especificada. Array contendo os Aliases dos arquivos que deverão ser abertos. cAlias • Retorno: Av. o retorno será . • • Sintaxe: CLOSEOPEN(aClose.br .ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. aOpen) Parâmetros: Array contendo os Aliases dos arquivos que deverão ser fechados. como por exemplo.com.

{“Sim”.com. Sempre que desejar mudar o modo de acesso do arquivo (de compartilhado para exclusivo ou vice-versa).com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.lExcl. será assumido falso (.ADVPL GUIA DE REFERÊNCIA Versão 1. o arquivo será aberto em modo exclusivo. nº 608 – Metrô Conceição .) se o arquivo já estiver aberto ou se o Alias não for informado. Exemplo: dbSelectArea(“SA1”) dbCloseArea() lOk := .br .br - SP 136 ..F.).cNewAlias) Parâmetros: Alias do arquivo a ser re-aberto. o arquivo será aberto em modo compartilhado. cAlias lExcl cNewAlias • Retorno: Lógico Indica se o arquivo foi re-aberto com sucesso. caso contrário.www.advpl. Endif // Finaliza If Select(“SA1”) dbCloseArea() Endif ChkFile(“SA1”. • • Sintaxe: ChkFile(cAlias. Exit Endif Endif EndDo If lOk // Faz o processamento com o arquivo.F. feche-o antes de chamá-la. Novo Alias para re-abertura do arquivo. Se este parâmetro não for informado.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Lógico Indica se todos os arquivos foram fechados com sucesso.F.T. While .) nResp := Alert(“Outro usuário usando! Tenta de novo?”.T.).) Return CONOUT() Av. Leona rdo da Vinci..”Nao”}) If nResp == 2 lOk := ..T.T. CHKFILE() A função CHKFILE() retorna verdadeiro (.T.. IF !ChkFile(“SA1”. Se for informado verdadeiro (.

) ou não (. cMensagem • Retorno: . Nenhum CRIAVAR() A função CRIAVAR() cria uma variável. retornando o valor do campo. Leona rdo da Vinci. de acordo com o dicionário de dados. Av.com.lIniPad. // se existir.T. Caso o Protheus esteja configurado como serviço a mensagem será gravada no arquivo de log. permitindo um retorno de acordo com o tipo de dado definido no dicionário. • • Sintaxe: CONOUT(cMensagem) Parâmetros: String contendo a mensagem que deverá ser exibida no console do Protheus. considerando inicializador padrão Indefinido Exemplo: // Exemplo do uso da função CriaVar: cNumNota := CriaVar(“F2_DOC”) // Retorna o conteúdo do // inicializador padrão. cLado pode ser: “C” . • • Sintaxe: CriaVar(cCampo.br - SP 137 . nº 608 – Metrô Conceição . “L” .F.ADVPL GUIA DE REFERÊNCIA Versão 1.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.cLado) Parâmetros: Nome do campo Indica se considera (.esquerdo ou “R” – direito. ou espaços em branco Alert(cNumNota) Return DISARMTRANSACTION() A função DISARMTRANSATCION() é utilizada para realizar um “RollBack” de uma transação aberta com o comando BEGIN TRANSACTION e delimitada com o comando END TRANSACTION.br .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função CONOUT() permite a exibição de uma mensagem de texto no console do Server do Protheus.) o inicializador Se a variável for caracter.www.centralizado.com. inclusive avaliando o inicializador padrão.advpl. cCampo lIniPad cLado • Retorno: Tipo de dado de acordo com o dicionário de dados.

MSExecAuto({|x.F.advpl. Leona rdo da Vinci. tornando PARAMIXB um array também. definido na execução da função EXECBLOCK().0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Ao utilizar esta função. processamento. finalizar o • • Sintaxe: DISARMTRANSACTION() Parâmetros: . aCampos. Av. O uso da função DISARMTRANSACTION() não finaliza a conexão ou o processamento corrente. as mesmas deverão ser definidas na forma de um array. nº 608 – Metrô Conceição .com. Esta função é normalmente utilizada pelas rotinas padrões da aplicação Protheus para executar pontos de entrada durante seu processamento. restaurando a situação da base de dados ao ponto imediatamente anterior ao início do processamento. todas as alterações realizadas no intervalo delimitado pela transação são desfeitas.ADVPL GUIA DE REFERÊNCIA Versão 1. Caso seja necessária a passagem de várias informações. Caso seja necessário além de desfazer as alterações.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. deverá ser utilizada a função USEREXCEPTION().br SP 138 . sendo que estes estarão disponíveis em uma variável private denominada PARAMIXB.y)}. A variável PARAMIXB é o reflexo do parâmetro xParam. A função de usuário executada através da EXECBLOCK() não recebe parâmetros diretamente.br . 3) If lMsErroAuto aAutoErro := GETAUTOGRLOG() DisarmTransaction() MostraErro() EndIf EXECBLOCK() A função EXECBLOCK() executa uma função de usuário que esteja compilada no repositório.com.y| MATA240(x. Nenhum • Retorno: Nenhum . Exemplo: lMsErroAuto := . a ser tratado na função de usuário que será executada.www.

br SP 139 . lReserv1. Esta função é normalmente utilizada nas rotinas padrões da apliação Protheus para determinar a existência de um ponto de entrada e permitir sua posterior execução. cLoja) IF EXISTBLOCK(“MT100GRV”) lGravou := EXECBLOCK(“MT100GRV”.. cFornece..F. Parâmetro de uso reservado da aplicação. na forma da variável private PARAMIXB.F. cSerie. Indefinido Exemplo: aParam := {cNota.F.. Definir como .www.advpl. cFunção • Retorno: Lógico Indica se a função de usuário existe compilada no repositório de objetos corrente.F.. Exemplo: IF EXISTBLOCK(“MT100GRV”) EXECBLOCK(“MT100GRV”.com. • • Sintaxe: EXISTBLOCK(cFunção) Parâmetros: Nome da função que será avaliada. Conteúdo que ficará disponível na função de usuário executada.ADVPL GUIA DE REFERÊNCIA Versão 1. nº 608 – Metrô Conceição .F.br ....aParam) ENDIF • • Sintaxe: EXECBLOCK(cFunção.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” EXISTBLOCK() A função EXISTBLOCK() verifica a existência de uma função de usuário compilada no repositório de objetos da aplicação Protheus. Leona rdo da Vinci. Parâmetro de uso reservado da aplicação.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. lReserv2.F.com. Definir como .. xParam) Parâmetros: Nome da função de usuário que será executada.aParam) ENDIF USER FUNCTION MT100GRV() Av. cFunção lReserv1 lReserv2 xParam • Retorno: O retorno da EXECBLOCK() é definido pela função que será executada.

Leona rdo da Vinci. onde: <objError> é um error object que contém informaçoes sobre o erro.T.com.). Quando avaliado. é possível especificar um bloco de tratamento de erros para uma operaçao gravando-se o bloco de manipulaçao de erros corrente e depois recuperando-o após o final da operaçao. bErrorHandler • Retorno: Retorna o bloco de código corrente que tratar o erro. Além disso. o processamento recomeça.F. Este manipulador de erros exibe uma mensagem descritiva na tela. Code-block Exemplo: Function CA010Form() LOCAL xResult LOCAL cForm:= Upper(&(ReadVar())) LOCAL bBlock:= ErrorBlock( { |e| ChecErro(e) } ) Av. • • Sintaxe: ERRORBLOCK ( < bErrorHandler > ) Parâmetros: O bloco de código a ser executado toda vez que ocorrer um erro em tempo de execuçao.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” LOCAL LOCAL LOCAL LOCAL cNota := PARAMIXB[1] cSerie:= PARAMIXB[1] cFornece:= PARAMIXB[1] cLoja:= PARAMIXB[1] RETURN . ERRORBLOCK() A função ERRORBLOCK() efetua o tratamento de erros e define a atuação de um handler de erros sempre que ocorrer um erro em tempo de execuçao. Se o bloco de tratamento de erros retornar verdadeiro (. . a operaçao que falhou é repetida. ERRORBLOCK() retorna o bloco de tratamento de erro padrao. o <bErrorHandler> é passado na forma de um objeto erro como um argumento pelo sistema.www.advpl.Dentro do bloco de código.com.ADVPL GUIA DE REFERÊNCIA Versão 1.. Se nao foi especificado nenhum <bErrorHandler> utilizando ERRORBLOCK() e ocorrer um erro em tempo de execuçao. Como ERRORBLOCK() retorna o bloco de tratamento ao de erros corrente. e se retornar falso (. O manipulador de erros é especificado como um bloco de código da seguinte forma: • { |<objError>| <lista de expressoes>.).br SP 140 . e depois sai do programa (QUIT). é que eles podem ser passados pararotinas e funçoes definidas por usuário e depois retornadas como valores. }.T.br . nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. ajusta a funçao ERRORLEVEL() para 1. podem ser enviadas mensagens ao error object para obter informaçoes sobre o erro.. uma importante consequência do fato de os blocos de tratamento de erros serem especificados como blocos de código. Caso nao tenha sido enviado nenhum bloco de tratamento de erro desde que o programa foi invocado. o bloco de tratamento ao de erros padrao é avaliado.

.") While ! Empty(cOutMod) If Left(cOutMod... Endif BEGIN SEQUENCE If !"EXECBLOCK"$cForm . cSenha ) Av.and. Endif cOutMod := Subs(cOutMod.) . "". cOutMod) . finalizando-o em seguinda. cOutMod) + 1) EndDo If ("LERSTR"$cForm .!"CTBANFS"$cForm .www. At(".F. nº 608 – Metrô Conceição . cVarOutMod) cOutMod := cVarOutMod + If(Right(cVarOutMod.com.F. "LERVAL"$cForm ..F. At(". "".br SP 141 . // nem funcao de leitura !"LERDATA"$cForm .) PRIVATE lRet:=. // de texto no cadastramento IIf(!lOptimize.And. // nao executa execblock !"LERVAL"$cForm . desbloqueando os semáforos e fechando as tabelas abertas."..or. !"LERSTR"$cForm ..1."Variavel nao disponivel para este modulo" Return .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” LOCAL cOutMod Local lOptimize := GetNewPar("MV_OPTNFE". Leona rdo da Vinci.or. !"CTBANFE"$cForm) xResult := &cForm Endif END SEQUENCE ErrorBlock(bBlock) Return lRet FINAL() A função FINAL() executa as operações básicas que garantem a integridade dos dados ao finalizar o sistema desmontando as transações (se houver). "LERDATA"$cForm) . GetNewPar("MV_OPTNFS".And.. Nenhum Exemplo: User Function ValidUser( cUsuario.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.".Or.And. ". [cMensagem2] ) Parâmetros: Primeira mensagem Segunda mensagem cMensagem1 cMensagem2 • Retorno: ."ERR_FORM.1) $ Upper(cForm) // no modulo Help( " ".F.br ..ADVPL GUIA DE REFERÊNCIA Versão 1.T.com.And. cVarOutMod := If(Type("cVarOutMod") = "U". M->I5_CODIGO > "499" Help( " ".1. 1) = ". • • Sintaxe: Final( [cMensagem1].advpl.T.And."CA010TXT") ErrorBlock(bBlock) Return .".

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Local cMensag1 := “Usuário invalido!” Local cMensag2 := “Opção disponível para usuários Adminstradores!” If !PswAdmin( cUsuario, cSenha ) Final( cMensag1, cMensag2 ) EndIf Return

FINDFUNCTION() A função FINDFUNCTION() tem como objetivo verificar se uma determinada função se encontra no repositório de objetos e até mesmo do binário do Protheus, sendo uma função básica da linguagem. • • Sintaxe: FINDFUNCTION(cFunção) Parâmetros: Nome da função que será avaliada no repositório de objetos corrente.

cFunção • Retorno:

Lógico

Indica se a função existe compilada no repositório de objetos corrente.

FUNDESC() A função FunDesc() retornará a descrição de uma opção selecionada no menu da aplicação. • • Sintaxe: FUNDESC() Parâmetros: .

Nenhum • Retorno:

Caracter

Descrição da opção selecionada no menu da aplicação.

FUNNAME() A função FunName() retornará o nome de uma função executada a partir de um menu da aplicação. • • Sintaxe: FUNNAME() Parâmetros:

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

142

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

Nenhum • Retorno:

.

Caracter

Nome da função executada a partir do menu da aplicação.

GETAREA() Função utilizada para proteger o ambiente ativo no momento de algum processamento específico. Para salvar uma outra área de trabalho (alias) que não o ativo, a função GetArea() deve ser executada dentro do alias: ALIAS->(GetArea()). • • • Sintaxe: GETAREA() Retorno: Array contendo {Alias(),IndexOrd(),Recno()} Parâmetros .

Nenhum

GETCOUNTRYLIST() A função GETCOUNTRYLIST() retorna um array de duas dimensões contendo informações dos países localizados. • • Sintaxe: GetCountryList() Parâmetros: .

Nenhum • Retorno:

Array Array de duas dimensões, sendo uma linha para cada país localizado, contendo em cada posição a sigla dos países, o nome do país e a identificação do país com dois dígitos.

Exemplo: Local aArray := GetCountryList() Local cSigla := GetMv( “MV_PAISLOC” ) Local nPos nPos := Ascan( aArray, {|d| d[1] == Upper(cSigla) } ) If nPos > 0 APMsgInfo( “País de localização ” + aArray[nPos,2] ) EndIf

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

-

SP

143

ADVPL
GUIA DE REFERÊNCIA
Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação”

ISINCALLSTACK() A função ISINCALLSTACK() verifica se uma determinada função está existe dentro da pilha de chamadas do processamento corrente. • • Sintaxe: IsInCallStack( cIsInCallStack , cStackExit ) Parâmetros: Nome da função que desejasse pesquisar na pilha. String que identifica o ponto em que desejasse finalizar a busca. Caso não seja informada, será utilizada como padrão a expressão "STACK_EXIT".

cIsInCallStack cStackExit

Retorno: Indica se a função especificada encontrasse na pilha de chamadas do processsamento corrente, até o ponto de saída especificado.

Lógico

REGTOMEMORY() Inicializa as variáveis de memória identificadas pelo uso do alias “M->” de acordo com a estrutura e/ou informações contidas no arquivo definido como referência. • • Sintaxe: REGTOMEMORY(cAlias, lInclui) Parâmetros: Alias do arquivo que será utilizado como referência para inicialização das variáveis de memória. Identifica se as variáveis deverão ser inicializadas com conteúdos padrões, ou contendo as informações do registro posicionado do alias especificado.

cAlias lInclui

Retorno: .

Nenhum

RESTAREA() Função utilizada para devolver a situação do ambiente salva através do comando GETAREA(). Deve-se observar que a última área restaurada é a área que ficará ativa para a aplicação. • • Sintaxe: RESTAREA(aArea) Parâmetros Array contendo: {cAlias, nOrdem, nRecno}, normalmente gerado pelo uso da função GetArea().

aArea

Exemplo: // ALIAS ATIVO ANTES DA EXECUÇÃO DA ROTINA SN3
SP

Av. Leona rdo da Vinci, nº 608 – Metrô Conceição - São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br - www.advpl.com.br

144

br SP 145 . aPergs) Parâmetros: Av. USEREXCEPTION() recebe uma string contendo uma descrição do erro. essa descrição será exibida de acordo com o ambiente que se está executando.ADVPL GUIA DE REFERÊNCIA Versão 1.{cSTR0003}.com. ENDIF RestArea(aArea) Return( lRet ) USEREXCEPTION() A função USEREXCEPTION() tem o objetivo de forçar um erro em ADVPL de forma que possamos tratar de alguma forma.com. Nenhum Utilização de recursos do ambiente ERP AJUSTASX1() A função AJUSTASX1() permite a inclusão simultânea de vários itens de perguntas para um grupo de perguntas no SX1 da empresa ativa.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” User Function XATF001() LOCAL cVar LOCAL aArea := GetArea() LOCAL lRet := . Leona rdo da Vinci.T.br . cMensagem • Retorno: . será exibida uma tela de erro. cVar := &(ReadVar()) dbSelectArea("SX5") IF !dbSeek(xFilial()+"Z1"+cVar) cSTR0001 := "REAV .2) lRet := . contendo a explicação da exceção. nº 608 – Metrô Conceição . caso um ambiente ERP. • • Sintaxe: USEREXCEPTION(cMensagem) Parâmetros: Mensagem que será exibida no cabeçalho do erro.Tipo de Reavaliacao" cSTR0002 := "Informe um tipo de reavalicao valido" cSTR0003 := "Continuar" Aviso(cSTR0001.F.www.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: AJUSTASX1(cPerg.cSTR0002.

Leona rdo da Vinci.advpl.www. Não é informado Descrição da opção X do combo em português Descrição da opção X do combo em espanhol Descrição da opção X do combo em inglês Não é informado Não é informado Descrição da opção X do combo em português • Estrutura – Item do array aPerg (continuação): 23 24 25 26 27 28 X1_DEFSPA3 X1_DEFENG3 X1_CNT03 X1_VAR04 X1_DEF04 X1_DEFSPA4 Caractere Caractere Caractere Caractere Caractere Caractere Descrição da opção Descrição da opção Não é informado Não é informado Descrição da opção português Descrição da opção X do combo em espanhol X do combo em inglês X do combo em X do combo em espanhol SP Av. Nenhum • .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.com. nº 608 – Metrô Conceição .br 146 . Define se a pergunta será do tipo G – Get ou C – Choice (combo) Expressão de validação do parâmetro Nome da variável MV_PAR+”Ordem” do parâmetro Descrição da opção 1 do combo em português Descrição da opção 1 do combo em espanhol Descrição da opção 1 do combo em inglês Conteúdo padrão ou ultimo conteúdo definido como respostas para a pergunta. Estrutura – Item do array aPerg: Posição 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 Campo X1_PERGUNT X1_PERSPA X1_PERENG X1_VARIAVL X1_TIPO X1_TAMANHO X1_DECIMAL X1_PRESEL X1_GSC X1_VALID X1_VAR01 X1_DEF01 X1_DEFSPA1 X1_DEFENG1 X1_CNT01 X1_VAR02 X1_DEF02 X1_DEFSPA2 X1_DEFENG2 X1_CNT02 X1_VAR03 X1_DEF03 Tipo Caractere Caractere Caractere Caractere Caractere Numérico Numérico Numérico Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Descrição Descrição da pergunta em português Descrição da pergunta em espanhol Descrição da pergunta em inglês Nome da variável de controle auxiliar (mv_ch) Tipo do parâmetro Tamanho do conteúdo do parâmetro Número de decimais para conteúdos numéricos Define qual opção do combo é a padrão para o parâmetro.br .com.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cPerg aPergs • Retorno: Grupo de perguntas do SX1 (X1_GRUPO) Array contendo a estrutura dos campos que serão gravados no SX1.

ADVPL GUIA DE REFERÊNCIA Versão 1.br - SP . Vetor simples contendo as linhas de help em português para o parâmetro. 147 Av. Vetor simples contendo as linhas de help em inglês para o parâmetro.com. Trabalhar com linhas de até 40 caracteres. Se a pergunta estará disponível no ambiente Pyme Conteúdo do campo X1_HELP Picture de formatação do conteúdo do campo. • • Sintaxe: ALLUSERS() Parâmetros: .br . quando o grupo for alterado. ALLUSERS() A função ALLUSERS() retorna um array multidimensional contendo as informações dos usuários do sistema. Nenhum • Retorno: Array Array multidimensional contendo as informações dos usuários do sistema.com. Vetor simples contendo as linhas de help em espanhol para o parâmetro.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” 29 30 31 32 33 34 35 36 37 X1_DEFENG4 X1_CNT04 X1_VAR05 X1_DEF05 X1_DEFSPA5 X1_DEFENG5 X1_CNT05 X1_F3 X1_GRPSXG Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere Caractere 38 39 40 41 X1_PYME X1_HELP X1_PICTURE aHelpPor Caractere Caractere Caractere Array 42 aHelpEng Array 43 aHelpSpa Array Descrição da opção X do combo em inglês Não é informado Não é informado Descrição da opção X do combo em português Descrição da opção X do combo em espanhol Descrição da opção X do combo em inglês Não é informado Código da consulta F3 vinculada ao parâmetro Código do grupo de campos SXG para atualização automática.advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Leona rdo da Vinci.www. aonde para cada usuário serão demonstradas as seguintes informações: aArray[x][1] aArray[x][2] aArray[x][3] Configurações gerais de acesso Configurações de impressão Condigurações de acesso aos módulos • Array de informações dos usuários: Configurações gerais de acesso Elemento Descrição Tipo Qtd. Trabalhar com linhas de até 40 caracteres. Trabalhar com linhas de até 40 caracteres. nº 608 – Metrô Conceição .

Leona rdo da Vinci. 148 .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 • ID Nome Senha Nome Completo Vetor com nº últimas senhas Data de validade Quantas vezes para expirar Autorizado a alterar a senha Alterar a senha no próximo logon Vetor com os grupos ID do superior Departamento Cargo E-Mail Número de acessos simultâneos Data da última alteração Usuário bloqueado Número de dígitos para o ano Listner de ligações Ramal C C C C A D N L L A C C C C N D L N L C 6 15 6 30 -8 4 1 1 -6 30 30 130 4 8 1 1 1 4 Array de informações dos usuários: Configurações de impressão Elemento 2 1 2 3 4 5 6 7 8 9 10 11 12 13 Vetor com horários de acesso Idioma Diretório Impressora Acessos Vetor com empresas Ponto de entrada Tipo de impressão Formato Ambiente Prioridade p/ config.com. nº 608 – Metrô Conceição .ADVPL GUIA DE REFERÊNCIA Versão 1.br SP Descrição Tipo Qtd.com. do grupo Opção de impressão Acesso a outros dir de impressão A N C C C A C N N N L C L -1 100 -512 -10 1 1 1 1 50 1 Descrição Tipo Qtd.www. • Array de informações dos usuários: Configurações de acesso aos módulos Elemento 3 Av.advpl.br .

www. Leona rdo da Vinci. Nenhum • Retorno: Array Array multidimensional contendo as informações dos grupos de usuários do sistema.ADVPL GUIA DE REFERÊNCIA Versão 1. • Array de informações dos grupos: Configurações de acesso aos módulos Av.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” 1 Módulo+nível+menu C ALLGROUPS() A função ALLGROUPS() retorna um array multidimensional contendo as informações dos grupos de usuários do sistema.br .com.br - SP 149 .advpl. nº 608 – Metrô Conceição .com. aonde para cada grupo serão demonstradas as seguintes informações: aArray[x][1] aArray[x][2] Configurações gerais de acesso Configurações de acesso aos módulos • Array de informações dos grupos: Configurações gerais de acesso Elemento 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ID Nome Vetor com horários de acesso Data de validade Quantas vezes para expirar Autorizado a alterar a senha Idioma Diretório Impressora Acessos Vetor com empresas Data da última alteração Tipo de impressão Formato Ambiente Opção de impressão Acesso a outros Dir de impressão C C A D N L N C C C A D N N N L L 8 1 1 1 1 1 512 8 4 1 1 100 6 20 Descrição Tipo Qtd.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: ALLGROUPS() Parâmetros: .

nº 608 – Metrô Conceição . [lOnlyView] ) Parâmetros: Parâmetro reservado.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. 150 Av. considerando inclusive a data informada para análise.br - SP .advpl.www.br . DATAVALIDA() A função DATAVALIDA() retorna a primeira data válida a partir de uma data especificada como referência. • • Sintaxe: CGC(cCGC) Parâmetros: String contendo o CGC a ser validado cCGC • Retorno: Lógico Indica se o CGC informado é válido. Leona rdo da Vinci. Indica se será somente para visualização.com. [uPar3] . CGC() A função CGC() valida o CGC digitado.com. CONPAD1() A função CONPAD1() exibe uma tela de consulta padrão baseada no Dicionário de Dados (SXB). cAlias . .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Elemento 2 1 Descrição Modulo+nível+menu Tipo C Qtd. Parâmetro Reservado. [cCampoRet] [uPar4] .ADVPL GUIA DE REFERÊNCIA Versão 1. • Sintaxe: ConPad1 ( [uPar1] . Parâmetro reservado. Consulta padrão cadastrada no Dicionário de Dados (SXB) a ser utilizada. [uPar2] . Nome da variável ou campo que receberá o retorno da consulta padrão. utilizando o algoritmo nacional para verificação do dígito de controle. Parâmetro reservado. • uPar uPar2 uPar3 cAlias cCampoRet uPar4 lOnlyView • Retorno: Nenhum .

• • Sintaxe: EXISTINI(cCampo) Parâmetros: Nome do campo para verificação. considerando-a inclusive como uma possibilidade. cCampo • Retorno: Lógico Indica se o campo possui um inicializador padrão. • • Sintaxe: Extenso(nValor. etc. lQtd. Leona rdo da Vinci. nMoeda) Parâmetros: Valor para geração do extenso.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: DATAVALIDA(dData) Parâmetros: Data a partir da qual será avaliada a próxima data válida.ADVPL GUIA DE REFERÊNCIA Versão 1. Exemplo: // Exemplo de uso da funcao ExistIni: // Se existir inicializador no campo B1_COD: If ExistIni(“B1_COD”) // Executa o inicializador: cCod := CriaVar(“B1_COD”) Endif Return EXTENSO() A função EXTENSO() retorna uma string referente a descrição por extenso de um valor numérico. 151 nValor lQtd nMoeda Av. dData • Retorno: Próxima data válida. Indica se o valor representa uma quantidade (.com. valor de duplicatas.T. domingos e os feriados cadastrados no sistema.advpl.br - SP . sendo comumente utilizada para impressão de cheques.br . nº 608 – Metrô Conceição .F. Data EXISTINI() A função EXISTINI() verifica se o campo possui inicializador padrão.www.) Para qual moeda do sistema deve ser o extenso.com. desconsiderando sábados.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.) ou dinheiro (.

São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www.nOrder. String FORMULA() Interpreta uma fórmula cadastrada. nº 608 – Metrô Conceição . cFormula • Retorno: Resultado da interpretação da fórmula cadastrada no SM4. • • Sintaxe: GetAdvFVal(cAlias. possibilitando o retorno de um ou mais campos. e retorna o resultado com tipo de dado de acordo com a própria fórmula.br . 152 Av.br - SP . Leona rdo da Vinci.com.uChave.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Retorno: Descrição do valor por extenso.ADVPL GUIA DE REFERÊNCIA Versão 1.uDef) Parâmetros: Alias do arquivo Nome de um campo ou array contendo os nomes dos campos desejados Chave para a pesquisa Ordem do índice para a pesquisa Valor ou array “default” para ser retornado caso a chave não seja encontrada cAlias uCpo uChave nOrder uDef • Retorno: Indefinido Retorna o conteúdo de um campo ou array com o conteúdo de vários campos A função GETADVFVAL() difere da função POSICIONE() apenas por permitir o retorno de vários campos em uma única consulta.advpl. As duas funções devem ser protegidas por GETAREA() / RESTAREA() dependendo da aplicação.com. Esta função interpreta uma fórmula.uCpo. previa-mente cadastrada no Arquivo SM4 através do Módulo Configurador. • • Sintaxe: Formula(cFormula) Parâmetros: Código da fórmula a ser avaliada e cadastrada no SM4 – Cadastro de Fórmulas. Indefinido GETADVFVAL() A função GETADVFVAL() executa uma pesquisa em um arquivo pela chave de busca e na ordem especificadas.

1. Leona rdo da Vinci. em rotinas que podem ser chamadas através da função MSEXECAUTO() deve-se sempre utilizar avisos utilizando esta função."HELP".com. escreve-se o texto em tempo de execução. Nenhum A função HELP() é tratada na execução das rotinas com o recurso de MSEXECAUTO().0) ELSE MsgAlert(“Parâmetros do JOB Inválidos”."PROCESSAMENTO". nº 608 – Metrô Conceição .nColMen) Parâmetros: Nome da Rotina chamadora do help.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. (sempre 1) Título do help Sempre NIL Mensagem a ser exibida para o Help. uPar4. cTitulo.nLinha. Por esta razão.br SP 153 .com. • • Sintaxe: Help(cHelp. Exemplo: IF lAuto // Se for rotina automática Help("ESPECIFICO". (relativa à janela) Número de colunas da Mensagem.1.www.advpl. (relativa à janela) cHelp nLinha cTitulo uPar4 cMensagem nLinMen nColMen • Retorno: . Se for um help novo.br . (sempre branco) Número da linha da rotina chamadora. “PROCESSAMENTO”) ENDIF MESEXTENSO() A função MESEXTENSO() retorna o nome de um mês por extenso. Número de linhas da Mensagem.ADVPL GUIA DE REFERÊNCIA Versão 1.cMensagem. • • Sintaxe: MESEXTENSO(nMes) Parâmetros: Av. para que este tipo de processamento não seja travado indevidamente.nLinMen. permitindo a captura e exibição da mensagem no log de processamento.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” HELP() Esta função exibe a ajuda especificada para o campo e permite sua edição."Parâmetros do JOB Inválidos".

"AxVisual" {"Atualizar" . aTitulos) Parâmetros: Variável PRIVATE tratada pelo objeto Enchoice(). aGets aTela aTitulos • Retorno: Lógico Indica se todos os campos obrigatórios foram preenchidos.0. • • Sintaxe: OBRIGATORIO(aGets.br . Leona rdo da Vinci.0."U_A010AATU" . Exemplo: #INCLUDE "protheus. .. String OBRIGATORIO() A função OBRIGATORIO() avalia se todos os campos obrigatórios de uma Enchoice() foram digitados.www. aTela.4}} SP Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br 154 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nMes Indica o número do mês a ter seu nome escrito por extenso. nº 608 – Metrô Conceição ..2} . Array contendo os títulos dos campos exibidos na Enchoice().1} . previamente definida no fonte. . previamente definida no fonte.0. Variável PRIVATE tratada pelo objeto Enchoice().com.com.ch" /*/ +----------------------------------------------------------------------------| Programa | ATFA010A | Autor | | Data | | +----------------------------------------------------------------------------| Desc. | Cadastro de dados complementares do bem – Ativo Fixo | +---------------------------------------------------------------------------| Uso | Curso de ADVPL | +----------------------------------------------------------------------------/*/ User Function ATFA010A() Private cCadastro := "Atualizacao de dados do bem" Private aRotina := { {"Pesquisar" .advpl. • Retorno: Nome do mês indicado por extenso. Este parâmetro pode ser definido também como caracter ou como data."AxPesqui" {"Visualizar" .ADVPL GUIA DE REFERÊNCIA Versão 1.

São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.F.F. cNivel >= SX3->X3_NIVEL . Exemplo (continuação): Private Private Private Private Private oDlg oGetD oEnch aTELA[0][0] aGETS[0] // Variáveis que serão atualizadas pela Enchoice() // e utilizadas pela função OBRIGATORIO() DbSelectArea("SX3") DbSetOrder(1) DbSeek(cAliasE) //+--------------------------------------------------------------------------+ //|Campos da enchoice | //+--------------------------------------------------------------------------+ While !Eof() . .And.www. "" .ADVPL GUIA DE REFERÊNCIA Versão 1.SX3->X3_CAMPO) EndIf DbSkip() Av.22.T.T.And.000.F.nReg.400.nOpc) Local aCpoEnch Local aAlter Local Local Local Local Local Local Local Local Local Local Local aButtons cAliasE aAlterEnch aPos nModelo lF3 lMemoria lColumn caTela lNoFolder lProperty := {} := {} := := := := := := := := := := := {} cAlias {} {015.600 ." Private cString := "SN1" dbSelectArea("SN1") dbSetOrder(1) dbSelectArea(cString) mBrowse( 6.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Private cDelFunc := ".1. nº 608 – Metrô Conceição .advpl. . X3Uso(SX3->X3_USADO) AAdd(aCpoEnch.com. SX3->X3_ARQUIVO == cAliasE If !(SX3->X3_CAMPO $ "A1_FILIAL") .br . . Leona rdo da Vinci.75.cString) Return /*/ +----------------------------------------------------------------------------| Programa | A010AATU | Autor | | Data | | +----------------------------------------------------------------------------| Desc.F.And. | Atualização de dados do bem – Ativo Fixo | +----------------------------------------------------------------------------| Uso | Curso de ADVPL | +----------------------------------------------------------------------------/*/ User Function A010AATU(cAlias.br SP 155 .com.

nº 608 – Metrô Conceição . nModelo. /*cLetra*/.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. lMemoria.."N1_CODPAIS") // Codigo do Pais AADD(aAlterEnch."N1_ORIGCPR") // Origem de Compras AADD(aAlterEnch."N1_DESCRIC") // Descrição AADD(aAlterEnch. /*cMensagem*/."N1_NFITEM") // Item da Nota AADD(aAlterEnch.F.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” End //+--------------------------------------------------------------------------+ //|Campos alteráveis da enchoice | //+--------------------------------------------------------------------------+ AADD(aAlterEnch."N1_PRCIMP") // Codigo do Processo de Importacao AADD(aAlterEnch. lNoFolder. oDlg. /*cTudoOk*/."N1_UM") // Unidade de Medida AADD(aAlterEnch."N1_TIPOADT") // Controle de Adiantamentos AADD(aAlterEnch.ADVPL GUIA DE REFERÊNCIA Versão 1."N1_CODSP") // Codigo da SP Interna AADD(aAlterEnch.)}. nOpc.br .www.aButtons) // Botão Cancelar RETURN Exemplo (continuação): /*/ +----------------------------------------------------------------------------| Programa | A010AGRV | Autor | | Data | | +----------------------------------------------------------------------------| Desc. lProperty) ACTIVATE MSDIALOG oDlg CENTERED. nReg.000 TO 400.) oEnch := MsMGet():New(cAliasE."N1_PRODUTO") // Código do Produto AADD(aAlterEnch.aAlter. oDlg:End()... | Validação da enchoice e gravação dos dados do bem | +----------------------------------------------------------------------------| Uso | Curso de ADVPL | +----------------------------------------------------------------------------/*/ Static Function A010AGRV(aCpos.600 PIXEL RegToMemory("SN1". lF3. Av.aTela) /*Valida o cabecalho*/ Return .com. Leona rdo da Vinci. aCpoEnch.nOpc) Local aArea Local nX := GetArea() := 0 IF !Obrigatorio(aGets."N1_ITEMPED") // Item do Pedido de Compras AADD(aAlterEnch.nOpc).."N1_CHASSIS") // Numero de serie //+--------------------------------------------------------------------------+ //|Montagem do DIALOG | //+--------------------------------------------------------------------------+ DEFINE MSDIALOG oDlg TITLE cCadastro FROM 000."N1_NSERIE") // Serie da Nota AADD(aAlterEnch.. /*cTexto*/.br SP 156 . lColumn."N1_FORNEC") // Fornecedor AADD(aAlterEnch."N1_NFISCAL") // Numero da Nota AADD(aAlterEnch. {||IIF(A010AGRV(aCpoEnch.com. // Botão OK {||oDlg:End()}.aAlterEnch."N1_CHAPA") // Numero da plaqueta AADD(aAlterEnch.."N1_PEDIDO") // Codigo do Pedido de Compras AADD(aAlterEnch. . /*aCRA*/.F. /*nColMens*/.F.advpl. caTela.aPos."N1_LOJA") // Loja do Fornecedor AADD(aAlterEnch..aAlterEnch. ON INIT EnchoiceBar(oDlg.

criando caso não existam e abre os arquivos de acordo com o módulo onde é executada ou de acordo com a parametrização. cEmp • Retorno: Nenhum . PERGUNTE() A função PERGUNTE() inicializa as variáveis de pergunta (mv_par01.. verificando a existência dos arquivos de dados e os índices do sistema. [cTitle] ) Parâmetros: Pergunta cadastrada no dicionário de dados ( SX1) a ser utilizada.) ou cancelada (.T. [lAsk] .) For nX := 1 to Len(aAlter) SN1->&(aAlter[nX]) := M->&(aAlter[nX]) Next nX MsUnLock() Return .ADVPL GUIA DE REFERÊNCIA Versão 1...www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.F.F. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” ENDIF // Atualizacao dos campos passiveis de alteracao no SN1 RecLock("SN1".com. • • Sintaxe: Pergunte( cPergunta .advpl. Título do diálogo.) PESQPICT() Av.T.br - SP 157 . Indica se exibirá a tela para edição. nº 608 – Metrô Conceição .. cPergunta |Ask cTitle • Retorno: Lógico Indica se a tela de visualização das perguntas foi confirmada (.com. OPENFILE() A função OPENFILE() exibe o diagnóstico de arquivos. Se o parâmetro lAsk não for especificado ou for verdadeiro será exibida a tela para edição da pergunta e se o usuário cofirmar as variáveis serão atualizadas e a pergunta no SX1 também será atualizada. • • Sintaxe: OPENFILE(cEmp) Parâmetros: Empresa cujo os arquivos serão re-abertos.br .) baseada na pergunta cadastrado no Dicionário de Dados (SX1).

advpl. Espaço disponível para edição. Leona rdo da Vinci. para campos numéricos. String PESQPICTQT() A função PESQPICTQT() retorna a picture de um campo numérico referente a uma quantidade. pois busca o tamanho do campo no dicionário de dados. cCampo nEdição • Retorno: String Picture ideal para o espaço definido por nEdição. será usado como o tamanho do campo para definição da picture.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. cCampo) Parâmetros: Alias do arquivo Ordem utilizada Chave pesquisa SP cAlias nOrdem cChave Av. ela tem o comportamento semelhante ao da função “X3Picture”.br 158 .br .www.cCampo. Esta função geralmente é utilizada quando há pouco espaço disponível para impressão de valores em relatórios. cChave.nTam) Parâmetros: Alias do arquivo Nome do campo Opcional.com. e usado o tamanho padrão no dicionário de dados. • • Sintaxe: Posicione(cAlias. quando o valor nEdição não é informado. Se não informado. nº 608 – Metrô Conceição . sem a separação dos milhares por vírgula. POSICIONE() A função POSICIONE() permite o retorno do conteúdo de um campo de um registro de uma tabela especificado através de uma chave de busca.com. cAlias cCampo nTam • Retorno: Picture do campo especificado.nEdição) Parâmetros: Nome do campo a verificar a picture. de acordo com o Dicionário de Dados (SX3). nOrdem. • • Sintaxe: PesqPictQt(cCampo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função PESQPICT() retorna a picture definida para um campo especificado no Dicionário de Dados (SX3). • • Sintaxe: PesqPict(cAlias.

nDecimal. Descrição da opção 1 do combo em português Descrição da opção 1 do combo em espanhol 159 • cGrupo cOrdem cPergunt cPerSpa cPerEng cVar cTipo nTamanho nDecimal nPresel cGSC cValid cF3 cGrpSxg cPyme cVar01 cDef01 cDefSpa1 Av.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cCampo • Retorno: Campo a ser retornado Indefinido Conteúdo do campo solicitado. cDefSpa4.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. cVar01. nº 608 – Metrô Conceição .cPyme.www. • Sintaxe: PutSx1(cGrupo. aHelpSpa. cDefEng4. cHelp) Parâmetros: Grupo de perguntas do SX1 (X1_GRUPO) Ordem do parâmetro no grupo (X1_ORDEM) Descrição da pergunta em português Descrição da pergunta em espanhol Descrição da pergunta em inglês Nome da variável de controle auxiliar (X1_VARIAVL) Tipo do parâmetro Tamanho do conteúdo do parâmetro Número de decimais para conteúdos numéricos Define qual opção do combo é a padrão para o parâmetro. cPerEng. Define se a pergunta será do tipo G – Get ou C – Choice (combo) Expressão de validação do parâmetro Código da consulta F3 vinculada ao parâmetro Código do grupo de campos SXG para atualização automática. cDefEng3.br . quando o grupo for alterado. nTamanho. cVar. cOrdem. aHelpEng.com. Se a pergunta estará disponível no ambiente Pyme Nome da variável MV_PAR+”Ordem” do parâmetro. cDefSpa2.com. cGrpSxg . cDef04. cTipo.br - SP . cDef02. cDefSpa3. cDefEng2. cDefSpa5. aHelpPor. nPresel. cDefSpa1 . cValid. Todos os vetores contendo os textos explicativos da pergunta devem conter até 40 caracteres por linha. cF3.advpl. A utilização da função POSICIONE() deve ser protegida com GETAREA() / RESTAREA() dependendo da aplicação.ADVPL GUIA DE REFERÊNCIA Versão 1. cGSC. cDefEng5. cDef01. cPerSpa. PUTSX1() A função PUTSX1() permite a inclusão de um único item de pergunta em um grupo de definido no Dicionário de Dados (SX1). cDefEng1. cDef05. Leona rdo da Vinci. cDef03. cPergunt. cCnt01.

cAlias • Retorno: Numérico Indica quantos índices padrões o alias especificado possui no Dicionário de Dados. Vetor simples contendo as linhas de help em espanhol para o parâmetro. • • restaura os índices padrões de um alias definidos no Dicionário de Sintaxe: RETINDEX(cAlias) Parâmetros: Alias de um arquivo do sistema existente no Dicionário de Dados.advpl. A função RETINDEX() quando utilizada em ambientes TOPCONNECT retorna -1 SIXDESCRICAO() A função SIXDESCRICAO() retorna a descrição da chave de índice.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 160 .com. Av. Conteúdo do campo X1_HELP RETINDEX() A função RETINDEX() Dados (SIX). Vetor simples contendo as linhas de help em inglês para o parâmetro.ADVPL GUIA DE REFERÊNCIA Versão 1.br .com. nº 608 – Metrô Conceição . Nenhum • Retorno: String Descrição do indice posicionado no SIX de acordo com o idioma corrente. Leona rdo da Vinci.www. de acordo com o registro posicionado no SIX e idioma corrente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cDefEng1 cCnt01 cDef0x cDefSpax cDefEngx aHelpPor aHelpEng aHelpSpa cHelp Descrição da opção 1 do combo em inglês Conteúdo padrão ou ultimo conteúdo definido como respostas para este item Descrição da opção X do combo em português Descrição da opção X do combo em espanhol Descrição da opção X do combo em inglês Vetor simples contendo as linhas de help em português para o parâmetro. • • Sintaxe: SIXDESCRICAO() Parâmetros: .

São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: Tabela(cTab.lPrint) Parâmetros: Idenficação da tabela a pesquisar (deve ser informado como caracter).www. • • Sintaxe: TAMSX3(cCampo) Parâmetros: Nome do campo a ser consultado no Dicionário de Dados (SX3).) ou não (.F.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: User Function <nome-da-função>( cChave. Leona rdo da Vinci. String TAMSX3() A função TAMSX3() retorna o tamanho (total e parte decimal) de um campo especificado no Dicionário de Dados (SX3). nº 608 – Metrô Conceição . Chave a pesquisar na tabela informada. Indica se deve (. Caso a tabela ou a chave especificada não existir será exibido um HELP() padrão do sistema.T.com.br . cTab cChav lPrint • Retorno: Conteúdo da tabela na chave especificada.ADVPL GUIA DE REFERÊNCIA Versão 1. Retorna nulo caso a tabela não exista ou a chave não seja encontrada. cCampo • Retorno: Array Array de duas posições contendo o tamanho total e o número de decimais do campo especificado respectivamente. cOrdem ) Local cSixDesc := “” dbSelectArea(“SIX”) dbSetOrder(1) If dbSeek(cChave+cOrdem) cSixDescr := SixDescricao() EndIf Return TABELA() A função TABELA() retorna o conteúdo de uma tabela cadastrada no Arquivo de Tabelas (SX5) de acordo com a chave especificada.br SP 161 .) exibir o help ou a chave NOTAB se a tabela não existir.cChav.advpl.com. TM() Av.

nEdição. Exemplo: User Function <nome-da-função>( cGrupo. Caso não seja possível ajustar o valor ao espaço dado.br .ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: TM(nValor. cPerg ) Local cDef01 Local cDef02 Av. será colocado na picture o caracter de estouro de campo “*”. sempre imprimindo a quantidade de decimais passados no parâmetro.advpl. X1DEF01() A função X1DEF01() retorna o conteúdo da primeira definição da pergunta posicionada no SX1 (caso seja combo) no idioma corrente. nº 608 – Metrô Conceição .A função também ajusta um valor ao número de decimais (nDec).São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. MV_CENT – Número de casas decimais padrão da moeda corrente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função TM() retorna a picture de impressão para valores numéricos dependendo do espaço disponível. Número de casas decimais. • • Sintaxe: X1DEF01() Parâmetros: . nDec) Parâmetros: Valor a ser avaliado. a rotina eliminará tantos pontos decimais quantos sejam necessários ao ajuste do tamanho. Espaço disponível para edição.br SP 162 . Leona rdo da Vinci. neste caso.www.com. nValor nEdição nDec • Retorno: String Picture ideal para edição do valor nValor Esta rotina leva em consideração duas variáveis: MV_MILHAR – Determina se deve haver separação de milhar. Para ajustar o valor passado (nValor) ao espaço disponível (nEdição) a função verifica se pode haver separação de milhar. Nenhum • Retorno: String Conteúdo da primeira definição da pergunta no idioma corrente.com.

br .www. • • Sintaxe: X1PERGUNT() Parâmetros: . cPerg ) Local cDescr dbSelectArea(“SX1”) dbSetOrder(1) If dbSeek( cGrupo + cPerg ) // grupo da pergunta + o numero da perg. cDef01 := X1Def01() cDef02 := X1Def02() cDef03 := X1Def03() cDef04 := X1Def04() cDef05 := X1Def05() EndIf Return X1PERGUNT() A função X1PERGUNT() retorna a descrição da pergunta posicionada no Dicionário de Dados (SX1) para o idioma corrente.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br SP 163 . Exemplo: User Function <nome-da-função>( cGrupo.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Local cDef03 Local cDef04 Local cDef05 dbSelectArea(“SX1”) dbSetOrder(1) If dbSeek( cGrupo + cPerg ) // grupo da pergunta + o numero da perg. • • Sintaxe: X2NOME() Parâmetros: Av. nº 608 – Metrô Conceição .ADVPL GUIA DE REFERÊNCIA Versão 1. Nenhum • Retorno: String Descrição da pergunta do Dicionário de Dados (SX1) no idioma corrente. cDescr := X1Pergunt() EndIf Return X2NOME() A função X2NOME() retorna a descrição de uma tabela posicionada no Dicionário de Dados (SX2) no idioma corrente. Leona rdo da Vinci.

São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com.br .advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci. Exemplo: User Function <nome-da-função>( ) Local cTitulo Local cDescri Local cCombo dbSelectArea(“SX3”) dbSetOrder(2) If dbSeek( cCampo ) cTitulo := X3Titulo() cDescri := X3Descri() cCombo := X3Cbox() EndIf Av. Nenhum • Retorno: String Conteúdo do campo do tipo combo posicionado no Dicionário de Dados (SX3) no idioma corrente. nº 608 – Metrô Conceição . String Descrição da tabela posicionada no Dicionário de Dados (SX2) no idioma corrente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Nenhum • Retorno: .com. Exemplo: User Function <nome-da-função>( ) Local cTabela dbSelectArea(“SX2”) dbSetOrder(1) If dbSeek( “SA1” ) cTabela := X2Nome() EndIf Return X3CBOX() A função X3CBOX() retorna o conteúdo de um campo tipo combo posicionado no Dicionário de Dados (SX3) no idioma corrente.br SP 164 . • • Sintaxe: X3CBOX() Parâmetros: .www.

cCampo • Retorno: Av.ADVPL GUIA DE REFERÊNCIA Versão 1.advpl. nº 608 – Metrô Conceição .com. Exemplo: User Function <nome-da-função>( ) Local cTitulo Local cDescri Local cCombo dbSelectArea(“SX3”) dbSetOrder(2) If dbSeek( cCampo ) cTitulo := X3Titulo() cDescri := X3Descri() cCombo := X3Cbox() EndIf Return X3PICTURE() A função X3PICTURE() retorna a máscara de um campo contido no Dicionário de Dados (SX3). Leona rdo da Vinci. Nenhum Retorno: String Descrição do campo posicionado no Dicionário de Dados (SX3) no idioma corrente.www.br .com. • • Sintaxe: X3DESCRIC() Parâmetros: .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Return X3DESCRIC() A função X3DESCRIC() retorna a descrição de um campo posicionado no Dicionário de Dados (SX3) no idioma corrente.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br - SP 165 . • • Sintaxe: X3PICTURE(cCampo) Parâmetros: Nome do campo contido no Dicionário de Dados (SX3).

com.br SP 166 .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” String Picture do campo informado.advpl. Exemplo: User Function <nome-da-função>( cCampo ) Local cPicture cPicture := X3Picture( cCampo ) Return cPicture X3TITULO() A função X3TITULO() retorna o título de um campo posicionado no Dicionário de Dados (SX3) no idioma corrente.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. [Modulo]) Parâmetros: Av.www. Leona rdo da Vinci. Exemplo: User Function <nome-da-função>( ) Local cTitulo dbSelectArea(“SX3”) dbSetOrder(2) If dbSeek( “A1_COD” ) cTitulo := X3Titulo() EndIf Return X3USO() A função X3USO() verifica se o campo atualmente posicionado no Dicionário de Dados (SX3) está disponível para uso. • • Sintaxe: X3USO( cUsado. nº 608 – Metrô Conceição .br . • • Sintaxe: X3TITULO() Parâmetros: . Nenhum • Retorno: String Título do campo posicionado no dicionário de dados (SX3) no idioma corrente.com.ADVPL GUIA DE REFERÊNCIA Versão 1.

com. cChave ) Local cDescr dbSelectArea(“SX5”) dbSetOrder(1) If dbSeek( cFilial+cTabela+cChave ) cDescr := X5Descri() EndIf Av.advpl.com. EndIf Return lUsado X5DESCRI() A função X5DESCRI() retorna a descrição de um item de uma tabela posicionado no Arquivo de Tabelas (SX5) no idioma corrente.br SP 167 . Nenhum • Retorno: String Decrição do item do Arquivo de Tabelas (SX5) no idioma corrente. Lógico Exemplo: User Function <nome-da-função>() Local lUsado := .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: X5DESCRI() Parâmetros: . Número do módulo. Exemplo: User Function <nome-da-função>( cFilial. Leona rdo da Vinci.F. DbSelectArea(“SX3”) DbSetOrder(2) DbSeek(“A1_COD”) If X3Uso( SX3->X3_USADO ) lUsado := .ADVPL GUIA DE REFERÊNCIA Versão 1. Caso não seja informado será assumido como padrão o número do módulo corrente.br . • Retorno: Indica se o campo está configurado como usado no Dicionário de Dados (SX3).0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cUsado Modulo Conteúdo do campo X3_USADO a ser avaliado. cTabela.T. nº 608 – Metrô Conceição .www.

nº 608 – Metrô Conceição . Leona rdo da Vinci.br - SP 168 .com. Utilizar preferêncialmente as funções de manipulação de parâmetros GETMV() e suas variantes.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1. • • Sintaxe: X6CONTEUD() Parâmetros: .www. Exemplo: User Function <nome-da-função>( cFilial.br . cParam ) Local cDescr Local cConteud dbSelectArea(“SX6”) dbSetOrder(1) If dbSeek( cFilial+cParm ) cDescr := X6Descric() cDescr += X6Desc1() cDescr += X6Desc2() cConteud := X6Conteud() EndIf Return X6DESCRIC() A função X6DESCRI() retorna o conteúdo da descrição de um parâmetro de acordo com o registro posicionado no Dicionário de Dados (SX6) no idioma corrente.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Return X6CONTEUD() A função X6CONTEUD() retorna o conteúdo de um parâmetro posicionado no Dicionário de Dados (SX6) para o idioma corrente.com. Nenhum • Retorno: Indefinido Conteúdo do parâmetro posicionado no Dicionário de Dados (SX6) para o idioma corrente.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: X6DESCRIC() Parâmetros: Av.

Leona rdo da Vinci.ADVPL GUIA DE REFERÊNCIA Versão 1. cParam ) Local cDescr Local cConteud dbSelectArea(“SX6”) dbSetOrder(1) If dbSeek( cFilial+cParm ) cDescr := X6Descric() cDescr += X6Desc1() cDescr += X6Desc2() cConteud := X6Conteud() EndIf Return XADESCRIC() A função XADESCRI() retorna o conteúdo da descrição dos folders de acordo com o registro posicionado no Dicionário de Dados (SXA) no idioma corrente.br 169 . Nenhum • Retorno: String Descrição do folder posicionado no Dicionário de Dados (SXA) no idioma corrente. Exemplo: User Function <nome-da-função>( cFilial.advpl. As três funções possuem a mesma sintaxe e forma de utilização.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. • • Sintaxe: XADESCRIC() Parâmetros: .br .www.com.com. String Descrição do parâmetro posicionado no Dicionário de Dados (SX6) no idioma corrente. nº 608 – Metrô Conceição . SP Av.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Nenhum • Retorno: . Para avaliar os conteúdos dos primeiro e segundo complementos da descrição do parâmetro utilize as funções: X6DESC01() X6DESC02() retorna o primeiro complemento da descrição. retorna o segundo complemento da descrição.

dependendo é claro se o arquivo está compartilhado ou não (definição que é feita através do módulo Configurador – Dicionário de Dados (SX2)).ADVPL GUIA DE REFERÊNCIA Versão 1. cNumero ) Local cDescr dbSelectArea(“SXA”) dbSetOrder(1) If dbSeek( cFolder+cNumero ) // alias do folder + numero do folder cDescr := XADescric() EndIf Return XBDESCRI() A função XBDESCRI() retorna o conteúdo da descrição de uma consulta de acordo com o registro posicionado no Dicionário de Dados (SXB) no idioma corrente. • • Sintaxe: XBDESCRI() Parâmetros: . É importante verificar que esta função não tem por objetivo retornar apenas a filial corrente.br SP 170 .advpl. Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nº 608 – Metrô Conceição . Se o arquivo estiver compartilhado. a função xFilial retornará dois espaços em branco. Exemplo: User Function <nome-da-função>( cAlias ) Local cDescr dbSelectArea(“SXB”) dbSetOrder(1) If dbSeek( cAlias + “1” ) cDescr := XBDescri() EndIf Return XFILIAL() A função XFILIAL() retorna a filial utilizada por determinado arquivo.br . Esta função é utilizada para permitir que pesquisas e consultas em arquivos trabalhem somente com os dados da filial corrente. Leona rdo da Vinci.www.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Exemplo: User Function <nome-da-função>( cFolder.com.com. mas retorná-la caso o arquivo seja exclusivo. Nenhum • Retorno: String Descrição da consulta posicionada no Dicionário de Dados (SXB) no idioma corrente.

o arquivo tratado será o da área corrente. Posição final em linha / coluna da janela.www. cAlias • Retorno: String contendo a filial do arquivo corrente. nColIni nLiFim. Caracter Componentes da interface visual MSDIALOG() Define o componente MSDIALOG().São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.advpl. pois um componente MSDIALOG() é uma janela da aplicação.br SP 171 .nColIni TO nLiFim. nº 608 – Metrô Conceição .000 TO 080. Unidade de medida das dimensões: PIXEL oObjetoDLG cTitulo nLinIni.com. o qual é utilizado para captura de informações digitáveis na tela da interface. o qual é utilizado como base para os demais componentes da interface visual. Objeto dialog no qual a janela será definida. Av. nColFim oObjetoRef UNIDADE Exemplo: DEFINE MSDIALOG oDlg TITLE cTitulo FROM 000.ADVPL GUIA DE REFERÊNCIA Versão 1.nColFim OF oObjetoRef UNIDADE • Parâmetros Posição do objeto Say em função da janela em que ele será definido. Posição inicial em linha / coluna da janela. • Sintaxe: DEFINE MSDIALOG oObjetoDLG TITLE cTitulo FROM nLinIni. Leona rdo da Vinci. Se não for especificado.300 PIXEL ACTIVATE MSDIALOG oDlg CENTERED MSGET() Define o componente visual MSGET.br . Título da janela de diálogo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • • Sintaxe: XFILIAL(cAlias) Parâmetros: Alias do arquivo desejado.com.

999/9999-99". String contendo a definição da Picture de digitação do campo. Dimensões do objeto MsGet para exibição do texto.nAltura Av.ADVPL GUIA DE REFERÊNCIA Versão 1. a qual pode ser diretamente . Variável da aplicação que será vinculada ao objeto MsGet.nAltura UNIDADE OF oObjetoRef • Parâmetros Posição do objeto Say em função da janela em que ele será definido. nº 608 – Metrô Conceição . nColuna VARIAVEL nLargura.www..advpl.br - SP 172 . Dimensões do objeto Say para exibição do texto.com.nAltura UNIDADE OF oObjetoRef F3 cF3 VALID VALID WHEN WHEN PICTURE cPicture • Parâmetros Posição do objeto MsGet em função da janela em que ele será definido. ou uma variável ou uma chamada de função.F.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Sintaxe: @ nLinha. 11 OF oDlg PIXEL PICTURE "@R 99.999. nColuna cTexto nLargura.T. Condição para manipulação do campo. nColuna MSGET VARIAVEL SIZE nLargura. nLinha. Texto que será exibido pelo objeto Say. Unidade de medida das dimensões: PIXEL Objeto dialog no qual o componente será definido. nLinha. que definirá suas características e na qual será armezanado o que for informado no campo.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. o qual é utilizado para exibição de textos em uma tela de interface. nColuna SAY cTexto SIZE nLargura.050 MSGET cCGC VALID !Vazio() SIZE 55.com.br . Leona rdo da Vinci. Função de validação para o campo. String que define a consulta padrão que será vinculada ao campo. • Sintaxe: @ nLinha. SAY() Define o componente visual SAY.nAltura UNIDADE oObjetoRef cF3 VALID WHEN cPicture Exemplo: @ 010. ou .

ADVPL GUIA DE REFERÊNCIA Versão 1. ou com uma imagem (BitMap) prédefinido. nLinha.br .nAltura UNIDADE OF oObjetoRef ACTION AÇÃO • Parâmetros Posição do objeto Button em função da janela em que ele será definido. String contendo o texto que será exibido no botão.nAltura UNIDADE oObjetoRef AÇÃO Exemplo: 010. ACTION (nOpca := 1. Função ou lista de expressões que define o comportamento do botão quando ele for utilizado.010 SAY cTexto SIZE 55.br - SP 173 . os quais serão visualizados dependendo da interface do sistema ERP utilizada somente com um texto simples para sua identificação. Dimensões do objeto Button para exibição do texto. o qual permite a inclusão de botões de operação na tela da interface.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.com. nColuna TYPE N ACTION AÇÃO STATUS OF oObjetoRet Av.com. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” UNIDADE oObjetoRef Unidade de medida das dimensões: PIXEL Objeto dialog no qual o componente será definido. o qual permite a inclusão de botões de operação na tela da interface.www. os quais serão visualizados somente com um texto simples para sua identificação. Exemplo: @ 010. Unidade de medida das dimensões: PIXEL Objeto dialog no qual o componente será definido.advpl. 120 BUTTON “Confirmar” SIZE 080. • Sintaxe: SBUTTON() DEFINE SBUTTON FROM nLinha. 047 PIXEL OF oDlg.oDlg:End()) SBUTTON() Define o componente visual SButton. nº 608 – Metrô Conceição . 07 OF oDlg PIXEL BUTTON() Define o componente visual Button.nColuna BUTTON cTexto SIZE nLargura. • Sintaxe: BUTTON() @ nLinha.nColuna cTexto nLargura.

Leona rdo da Vinci.br .com. nº 608 – Metrô Conceição . Propriedade de uso do botão: ENABLE ou DISABLE Objeto dialog no qual o componente será definido.nAltura MESSAGE cMensagem • Parâmetros: Av. Função ou lista de expressões que define o comportamento do botão quando ele for utilizado. 120 TYPE 2 ACTION (nOpca := 2. ENABLE OF oDlg • Visual dos diferentes tipos de botões disponíveis CHECKBOX() Define o componente visual CheckBox.nColuna CHECKBOX oCheckBox VAR VARIAVEL PROMPT cTexto WHEN WHEN UNIDADE OF oObjetoRef SIZE nLargura. • Sintaxe: @ nLinha. Número que indica o tipo do botão (imagem) pré-definida que será utilizada. sendo esta marca acompanhada de um texto explicativo. mas o Radio permite a utilização de uma lista junto com um controle de seleção.com.advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros Posição do objeto sButton em função da janela em que ele será definido.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br SP 174 .www. nLinha.oDlg:End()). o qual permite a utilização da uma marca para habilitar ou não uma opção escolhida. nColuna TYPE N AÇÃO STATUS oObjetoRet Exemplo: DEFINE SBUTTON FROM 020. Difere do RadioMenu pois cada elemento do check é único.

nLinha. Variável do tipo caracter que irá receber a descrição do item selecionado no ComboBox. nº 608 – Metrô Conceição .T.F.advpl.T.nColuna COMBOBOX VARIAVEL ITEMS AITENS SIZE nLargura.nAltura cMensagem Posição do objeto ComboBox em função da janela em que ele será definido.. Texto que será exibido ao clicar no componente. Unidade de medida das dimensões: PIXEL Objeto dialog no qual o componente será definido.007 PIXEL OF oDlg . • Sintaxe: @ nLinha.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nLinha. Dimensões do objeto CheckBox. .10 CHECKBOX oChk VAR lChk PROMPT "Marca/Desmarca" SIZE 60.nColuna oCheckBox VARIAVEL cTexto WHEN UNIDADE oObjetoRef nLargura. Unidade de medida das dimensões: PIXEL Objeto dialog no qual o componente será definido. – desmarcado). ou .{|x| x[1]:=lChk}). ON CLICK(aEval(aVetor. ou uma variável ou uma chamada de função. Texto que será exibido ao lado do get de marcação.br .nColuna VARIAVEL AITENS nLargura. Condição para manipulação do objeto.www.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Exemplo: @ 110.nAltura UNIDADE oObjetoRef Exemplo: 175 Av. Vetor simples contendo as strings que serão exibidas como opções do ComboBox. Leona rdo da Vinci. Variável do tipo lógico com o status do objeto (.oLbx:Refresh()) COMBOBOX() Define o componente visual ComboBox.com. Dimensões do objeto ComboBox. – marcado.ADVPL GUIA DE REFERÊNCIA Versão 1.F.com.nAltura UNIDADE OF oObjetoRef • Parâmetros: Posição do objeto ComboBox em função da janela em que ele será definido. o qual permite seleção de um item dentro de uma lista de opções de textos simples no formato de um vetor.br - SP . a qual pode ser diretamente . Objeto do tipo CheckBox que será criado.

o qual permite a inclusão de diversos Dialogs dentro de uma mesma interface visual.www. sempre precedidas por &.cItemX OF oObjetoRef UNIDADE ON CHANGE CHANGE ON CLICK CLICK • Parâmetros Av. Exemplo: “&Pasta1”.com.nAltura <ITEMS PROMPT> cItem1.nAltura Exemplo: @ 50. "Check-&Up / Botões" PIXEL SIZE 222. Objeto Folder que será criado.nColuna FOLDER oFolder OF oObjetoRef PROMPT &cTexto1. • Sintaxe: @ nLinha.078 RADIO() Define o componente visual Radio. pois cada elemento de check é sempre único.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” @ 40.advpl.….10 PIXEL OF oFld:aDialogs[2] FOLDER() Define o componente visual Folder.&cTextoX UNIDADE SIZE nLargura..com.br SP 176 .…. também conhecido como RadioMenu.”&PastaX”.&cTextoX UNIDADE nLargura. aonde cada painel recebe seus componentes e tem seus atributos definidos independentemente dos demais. Um Folder pode ser entendido como um array de Dialogs.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br .ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci.cItem2.nColuna oFolder oObjetoRef &cTexto1.nColuna RADIO oRadio VAR nRadio 3D SIZE nLargura.nAltura • Parâmetros Posição do objeto Folder em função da janela em que ele será definido. • Sintaxe: @ nLinha.. e o Radio pode conter um ou mais elementos. nº 608 – Metrô Conceição . "&Consultas". 10 COMBOBOX oCombo VAR cCombo ITEMS aCombo SIZE 180... o qual é seleção de uma opção ou de múltiplas opções através de uma marca para os itens exibidos de uma lista. Strings de títulos de cada uma das abas do Folder. Unidade de medida das dimensões: PIXEL Dimensões do objeto Folder. Difere do componente CheckBox. Objeto dialog no qual o componente será definido. nLinha.06 FOLDER oFld OF oDlg PROMPT "&Buscas".

aRadio[2]. Dimensões do objeto Radio.8 . Função ou lista de expressões que será executada na seleção de um item RadioButton. cVldAlt) O AxCadastro() é uma funcionalidade de cadastro simples.MsgInfo("Opção 2".cAtencao)))) Interfaces de cadastro AXCADASTRO() Sintaxe Descrição AxCadastro(cAlias.. MBROWSE() Sintaxe Descrição MBrowse(nLin1.MsgInfo("Opção 3". ON CHANGE . cVldExc.cItem2. Texto que será vinculado a cada RadioButton.aRadio[3] SIZE 65.cAtencao).br . "Disco" ) aAdd( aRadio. Unidade de medida das dimensões: PIXEL Função ou lista de expressões que será executada na mudança de um item de um RadioButton para outro.. nLin2.com. Objeto dialog no qual o componente será definido..cItemX oObjetoRef UNIDADE CHANGE CLICK Posição do objeto Radio em função da janela em que ele será definido. "Impressora" ) aAdd( aRadio.MsgInfo("Opcão 1".nAltura <ITEMS PROMPT> cItem1. "Scanner" ) @ 30. Leona rdo da Vinci. cTitulo.cAtencao). com poucas opções de customização. Objeto do tipo Radio que será criado. Item do objeto Radio que está selecionado. Iif(nRadio==2.. PIXEL OF . nCol1. Utilizar um dos dois identificadores para definir quais os textos que serão vinculados a cada RadioButton.com.nColuna oRadio nRadio 3D nLargura.advpl.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nLinha.www.br 177 . SP Av. nº 608 – Metrô Conceição . Exemplo: aAdd( aRadio..ADVPL GUIA DE REFERÊNCIA Versão 1. oFld:aDialogs[3] .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. nCol2. Item opcional que define se o RadioButton terá aspecto simples ou 3D. cAlias) A Mbrowse() é uma funcionalidade de cadastro que permite a utilização de recursos mais aprimorados na visualização e manipulação das informações do sistema. 10 RADIO oRadio VAR nRadio ITEMS aRadio[1]. (Iif(nRadio==1.

cTudoOk.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.br . lMaximized) Av. nº 608 – Metrô Conceição . • • Sintaxe: AXPESQUI() Parâmetros . lF3. no formato Enchoice. Botões adicionais para a EnchoiceBar. Exclusão. no formato: aArray[n][1] -> Imagem do botão aArray[n][2] -> bloco de código contendo a ação do botão aArray[n][3] -> título do botão Indica se a janela deverá ser ou não maximizada • cAlias nReg nOpc aAcho nColMens cMensagem cFunc aButtons lMaximized AXINCLUI() Função de inclusão padrão das informações de um registro.com.com. aCpos. aButtons. nReg. nReg. Número da linha do aRotina que definirá o tipo de edição (Inclusão. nColMens. Os campos de usuário sempre serão exibidos se não existir no parâmetro um elemento com a expressão "NOUSER". Vetor com nome dos campos que serão exibidos.. Parâmetro não utilizado. no formato Enchoice. aButtons. aAcho. Função que deverá ser utilizada para carregar as variáveis que serão utilizadas pela Enchoice. cTransact. • Sintaxe: AXVISUAL(cAlias. • Sintaxe: AxInclui(cAlias. nOpc.www. lMaximized ) Parâmetros Tabela cadastrada no Dicionário de Tabelas (SX2) que será editada Record number (recno) do registro posicionado no alias ativo.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” AXPESQUI() Função de pesquisa padrão em registros exibidos pelos browses do sistema. Alteração. nOpc. Neste caso o parâmetro lVirtual é definido internamente pela AxFunction() executada como . cFunc. a qual posiciona o browse no registro pesquisado. cFunc. aParam..T. Exibe uma tela que permite a seleção do índice a ser utilizado na pesquisa e a digitação das informações que compõe a chave de busca. conforme demonstrado no tópico sobre a interface AxCadastro(). aAcho.ADVPL GUIA DE REFERÊNCIA Versão 1. Leona rdo da Vinci. Parâmetro não utilizado. conforme demonstrado no tópico sobre a interface AxCadastro(). aAuto.advpl. cMensagem. Visualização).br SP 178 . Nenhum AXVISUAL() Função de visualização padrão das informações de um registro. lVirtual.

Vetor com nome dos campos que poderão ser editados Função de validação de confirmação da tela.ADVPL GUIA DE REFERÊNCIA Versão 1.T. no formato: aArray[n][1] -> Imagem do botão aArray[n][2] -> bloco de código contendo a ação do botão aArray[n][3] -> título do botão Funções para execução em pontos pré-definidos da AxFunction(). Os campos de usuário sempre serão exibidos se não existir no parâmetro um elemento com a expressão "NOUSER". nº 608 – Metrô Conceição .www.FuncX(). . . mas pode ser passada como uma lista de expressões. aAuto[n][1] := Nome do campo aAuto[n][2] := Conteúdo do campo aAuto[n][3] := Validação que será utilizada em substituição as validações do SX3 Indica se a Enchoice() chamada pela AxFunction() utilizará variáveis de memória ou os campos da tabela na edição Indica se a janela deverá ser ou não maximizada aButtons aParam aAuto lVirtual lMaximized AXALTERA() 179 Av.T.advpl. Não deve ser passada como Bloco de Código. Número da linha do aRotina que definirá o tipo de edição (Inclusão. aParam[3] := Bloco de código que será executado dentro da transação da AxFunction(). Func2(). Alteração. Exclusão..br .com. aParam[4] := Bloco de código que será executado fora da transação da AxFunction(). Array no formato utilizado pela funcionalidade MsExecAuto(). Neste caso o parâmetro lVirtual é definido internamente pela AxFunction() executada como . Função que deverá ser utilizada para carregar as variáveis que serão utilizadas pela Enchoice.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. desde que a última ação efetue um retorno lógico: “(Func1(). Caso seja informado este array.com. conforme abaixo: aParam[1] := Bloco de código que será processado antes da exibição da interface..br - SP .. )” cAlias nReg nOpc aAcho cFunc aCpos cTudoOk lF3 cTransact Indica se a enchoice esta sendo criada em uma consulta F3 para utilizar variáveis de memória Função que será executada dentro da transação da AxFunction() Botões adicionais para a EnchoiceBar. Leona rdo da Vinci.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” • Parâmetros Tabela cadastrada no Dicionário de Tabelas (SX2) que será editada Record number (recno) do registro posicionado no alias ativo. Visualização). Vetor com nome dos campos que serão exibidos. aParam[2] := Bloco de código para processamento na validação da confirmação. não será exibida a tela de interface. e será executada a função EnchAuto().

cFunc. aButtons. • • Av.advpl. nOpc. aAuto. Leona rdo da Vinci. aCpos. nReg.br - SP 180 ..www. lMaximized) Parâmetros Vide documentação de parâmetros da função AxInclui().0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” Função de alteração padrão das informações de um registro. aParam. conforme demonstrado no tópico sobre a interface AxCadastro(). • Sintaxe: AXALTERA(cAlias.com. cMensagem. cTudoOk. nº 608 – Metrô Conceição . aAcho. nColMens.ADVPL GUIA DE REFERÊNCIA Versão 1.com. no formato Enchoice.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. cTransact. lVirtual.br .

aCpos.com. aButtons. Número da linha do aRotina que definirá o tipo de edição (Inclusão. no formato: aArray[n][1] -> Imagem do botão aArray[n][2] -> bloco de código contendo a ação do botão aArray[n][3] -> título do botão Funções para execução em pontos pré-definidos da AxFunction(). no formato Enchoice. cTransact. aParam[4] := Bloco de código que será executado fora da transação da AxFunction(). Função que será executada dentro da transação da AxFunction() Vetor com nome dos campos que poderão ser editados Botões adicionais para a EnchoiceBar. Visualização). lMaximized) Parâmetros Tabela cadastrada no Dicionário de Tabelas (SX2) que será editada Record number (recno) do registro posicionado no alias ativo. Caso seja informado este array. nReg. Array no formato utilizado pela funcionalidade MsExecAuto()..com. aAuto.br . conforme abaixo: aParam[1] := Bloco de código que será processado antes da exibição da interface. aAuto[n][1] := Nome do campo aAuto[n][2] := Conteúdo do campo aAuto[n][3] := Validação que será utilizada em substituição as validações do SX3 Indica se a janela deverá ser ou não maximizada • cAlias nReg nOpc cTransact aCpos aButtons aParam aAuto lMaximized Interfaces visuais para aplicações ALERT() • • Sintaxe: AVISO(cTexto) Parâmetros Av.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” AXDELETA() Função de exclusão padrão das informações de um registro. aParam.www. nOpc.br - SP 181 . Alteração. Leona rdo da Vinci. e será executada a função EnchAuto().advpl.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. conforme demonstrado no tópico sobre a interface AxCadastro(). não será exibida a tela de interface.ADVPL GUIA DE REFERÊNCIA Versão 1. • Sintaxe: AXDELETA(cAlias. aParam[3] := Bloco de código que será executado dentro da transação da AxFunction(). aParam[2] := Bloco de código para processamento na validação da confirmação. Exclusão. nº 608 – Metrô Conceição .

aTexto. nAltura. Parâmetros Título da janela Texto do aviso Array simples (vetor) com os botões de opção Tamanho (1.com. nLargura ) Parâmetros Título da janela Array simples (vetor) contendo cada uma das linhas de texto que serão exibidas no corpo da tela. cTexto. com a seguinte estrutura: {nTipo.ADVPL GUIA DE REFERÊNCIA Versão 1. bValid.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” cTexto Texto a ser exibido AVISO() • • • Sintaxe: AVISO(cTitulo.www. Leona rdo da Vinci. nº 608 – Metrô Conceição .lEnable.br 182 .com.br .{|| Ação() }} (opcional) Bloco de validação do janela SP cTitulo aTexto aBotoes bValid Av.2 ou 3) cTitulo cTexto aBotoes nTamanho FORMBACTH() • • Sintaxe: FORMBATCH(cTitulo. aBotoes. nTamanho) Retorno: numérico indicando o botão selecionado. aBotoes.advpl. Array com os botões do tipo SBUTTON().São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.

ADVPL GUIA DE REFERÊNCIA Versão 1.br - SP 183 .com. cTitulo) MSGINFO(cTexto. cTitulo) Parâmetros Texto a ser exibido como mensagem Título da janela de mensagem cTexto cTitulo MSGALERT MSGINFO Av.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.www. nº 608 – Metrô Conceição .br .com.advpl. cTitulo) MSGSTOP(cTexto.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” nAltura nLargura (opcional) Altura em pixels da janela (opcional) Largura em pixels da janela MSGFUNCTIONS() • • • • • Sintaxe: Sintaxe: Sintaxe: Sintaxe: MSGALERT(cTexto. cTitulo) MSGYESNO(cTexto. Leona rdo da Vinci.

com. cCampo nLinha • Retorno: Indefinido GDFIELDPOS() Conteúdo do campo especificado de acordo com a linha da grid informada. Linha da grid que deverá ser avaliada. • • Sintaxe: GDFIELDGET(cCampo.advpl.br - SP 184 . Leona rdo da Vinci.com.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl. Av.br .0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” MSGSTOP MSGYESNO Recursos das interfaces visuais GDFIELDGET() A função GDFIELDGET() retorna o conteúdo de um campo especificado em uma grid formada por um objeto do tipo MsNewGetDados() de acordo com a linha da grid desejada. nº 608 – Metrô Conceição . nLinha) Parâmetros: Nome do campo para retorno do conteúdo.www.ADVPL GUIA DE REFERÊNCIA Versão 1.

br - SP 185 . xConteudo.T.São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.www.advpl. Conteúdo que será atribuído a célula da grid. Caso o mesmo não exista será retornado 0.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” A função GDFIELDPOS() retorna a posição de um campo especificado em uma gria formada por um objeto do tipo MsNewGetDados(). nLinha) Parâmetros: Nome do campo a ser atualizado. cCampo xConteudo nLinha • Retorno: Nenhum .com. • • Sintaxe: GETMARK( [lUpper] ) Parâmetros: Se verdadeiro (. GETMARK() A função GETMARK() é utilizada em conjunto com a função MarkBrow(). Av.) retorna somente caracteres em maiúsculos.br . • • Sintaxe: GDFIELDPUT(cCampo. cCampo • Retorno: Numérico Posição que o campo ocupada na grid. nº 608 – Metrô Conceição .com. para retornar o conjunto de caracteres que serão utilizados para identificar os registros marcados pelo browse. • • Sintaxe: GDFIELDPOS(cCampo) Parâmetros: Nome do campo a ser avaliado na grid. GDFIELDPUT() A função GDFIELDPUT() atualiza o conteúdo de uma grid formada por um objeto do tipo MsNewGetDados() de acordo com o campo e linha da grid especificados. lUpper • Retorno: String Conjunto de caracteres que definem a marca que deverá ser utilizada pela MarkBrowse durante o processamento corrente. Linha da grid que será atualizada. Leona rdo da Vinci.

e normalmente está associonada a clique de “inverter” seleção. Nenhum • Retorno: Nenhum .. 'AxPesqui' . {'CB_TABHORA' .. Leona rdo da Vinci.www. 'CB_OK'. nº 608 – Metrô Conceição ... É altamente recomendável limpar o conteúdo do campo “marcado” pela MarkBrowse() ao término do processamento..com. • • Sintaxe: MARKBREFRESH() Parâmetros: .advpl.'MarkAll()'.'!CB_USERLIB'.'Usuário'}. {'CB_USERLIB' . sendo utilizada quando algum processamento paralelo atualiza o conteúdo do campo definido como controle de marca para os registros em exibição pelo browse. 0.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” O retorno da função GETMARK() depende do conteúdo atual do parâmetro MV_MARCA.'Hora'}.ADVPL GUIA DE REFERÊNCIA Versão 1.com. Este tipo de processamento é comum..São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.'Data'}} Private cMarca := GetMark() Private cCadastro := 'Cadastro de Contrato' Private aRotina := { { 'Pesquisar' ...'Mark()' ) Return MARKBREFRESH() A função MARKBREFRESH() atualiza a exibição da marca no MarkBrowse(). SP Av. que neste caso somam 1891 possibilidades de “00” a “zz”. ou a opções de “marcar” e “desmarcar” todas. para se evitar problemas com a reutilização da marca após a exaustão das possibilidades de combinação de dois caracteres. {'CB_DTTAB' .''}. o qual é o tamanho padrão do campos utilizados para marcação de registros pela MarkBrowse(). 1 }} MarkBrow( 'SCB'...aCampos. Exemplo: Function <nome-da-função>( ) Local aCampos := {{'CB_OK' . cMarca.br 186 .br . A MarkBrowse() atualiza automaticamente a exibição da marca de registros quando utilizado o browse..

nº 608 – Metrô Conceição .São Paulo Tel: 11 5011–4895 / 5011–6082 / 9808–1988 E m a i l / M S N : suporte@advpl.ADVPL GUIA DE REFERÊNCIA Versão 1.com. Av.br .www. Leona rdo da Vinci.advpl. • • Sintaxe: READVAR() Parâmetros: . Nenhum • Retorno: String Nome da variável ou campo associado ao objeto do tipo GET.0 – 06/2008 – Todos direitos reservados ”Escola Parceira Certificação” READVAR() A função READVAR() retorna o nome da variável ou campo associoado ao objeto do tipo GET() atualmente selecionado ou em edição.br - SP 187 .com.