amm - advpl avançado-rev00

Download AMM - ADVPL Avançado-rev00

If you can't read please download the document

Upload: joao-paco

Post on 03-Jul-2015

5.273 views

Category:

Documents


10 download

TRANSCRIPT

Educao Corporativa

ADVPL Avanado (Capacitao Interna)

Matriz Av. Braz Leme, 1.717 02511-000 So Paulo SP Brasil. Tel.: 55 (11) 3981-7001 www.totvs.com.br

-2ADVPL Avanado

ESTRUTURA DO TREINAMENTOOBJETIVOS DO CURSO................................................................................................................................................14 MDULO 05: Introduo orientao objetos .........................................................................................................15 1. Conceitos de orientao objetos.................................................................................................................................15

1.1. Definies ..........................................................................................................................................15 1.2. Conceitos Bsicos ..............................................................................................................................18 1.3. O Modelo de Objetos (OMT)............................................................................................................191.3.1. Objetos e Classes ...........................................................................................................................................19 1.3.2. Atributos .........................................................................................................................................................20 1.3.3. Operaes e Mtodos .....................................................................................................................................21 1.3.4. Sugestes de desenvolvimento .......................................................................................................................22 2. Orientao a objetos em ADVPL..................................................................................................................................23

2.1. Sintaxe e operadores para orientao a objetos..............................................................................23 2.2. Estrutura de uma classe de objetos em ADVPL..............................................................................27 2.3. Implementao dos mtodos de uma classe em ADVPL................................................................283. Regras adicionais da linguagem ADVPL.....................................................................................................................32

3.1. Palavras reservadas ..........................................................................................................................32 3.2. Pictures de formatao disponveis..................................................................................................33MDULO 07: ADVPL Orientado objetos II ...............................................................................................................34 4. Componentes da interface visual do ADVPL...............................................................................................................34 TSRVOBJECT().............................................................................................................................................36 TFONT().........................................................................................................................................................39 MSDIALOG().................................................................................................................................................40 TDIALOG().....................................................................................................................................................41 TWINDOW()..................................................................................................................................................44 TCONTROL() ................................................................................................................................................47 BRGETDDB().................................................................................................................................................48 MSCALEND()................................................................................................................................................51 MSCALENDGRID().......................................................................................................................................53 MSSELBR()....................................................................................................................................................55 MSWORKTIME()...........................................................................................................................................58 SBUTTON()....................................................................................................................................................61 TBAR()............................................................................................................................................................63 TBITMAP().....................................................................................................................................................65 TBROWSEBUTTON()...................................................................................................................................68 TBTNBMP()...................................................................................................................................................70 TBTNBMP2().................................................................................................................................................72 TBUTTON()....................................................................................................................................................74 TCBROWSE().................................................................................................................................................76 TCHECKBOX()..............................................................................................................................................80 TCOLORTRIANGLE()..................................................................................................................................82 TCOMBOBOX().............................................................................................................................................84 TFOLDER()....................................................................................................................................................87 TGET()............................................................................................................................................................89 TGROUP()......................................................................................................................................................91 THBUTTON().................................................................................................................................................93 TIBROWSER()...............................................................................................................................................94 TLISTBOX()...................................................................................................................................................97-3ADVPL Avanado

TMENU()......................................................................................................................................................101 TMENUBAR()..............................................................................................................................................102 TMETER()....................................................................................................................................................103 TMSGRAPHIC()...........................................................................................................................................106 TMSGBAR().................................................................................................................................................113 TMSGITEM()...............................................................................................................................................115 TMULTIBTN().............................................................................................................................................116 TMULTIGET().............................................................................................................................................119 TOLECONTAINER()...................................................................................................................................121 TPAGEVIEW().............................................................................................................................................123 TPANEL().....................................................................................................................................................126 TRADMENU()..............................................................................................................................................127 TSBROWSE()...............................................................................................................................................131 TSAY()..........................................................................................................................................................135 TSCROLLBOX()..........................................................................................................................................137 TSIMPLEEDITOR().....................................................................................................................................138 TSLIDER()....................................................................................................................................................144 TSPLITTER()................................................................................................................................................147 TTABS()........................................................................................................................................................151 TTOOLBOX()...............................................................................................................................................153 TWBROWSE().............................................................................................................................................156 VCBROWSE()..............................................................................................................................................160

4.1. Particularidades dos componentes visuais.....................................................................................1664.1.1. Configurando as cores para os componentes................................................................................................166 5. Aplicaes com a interface visual do ADVPL............................................................................................................168

5.1. Captura de informaes simples (Multi-Gets)...............................................................................1685.1.1. Enchoice().....................................................................................................................................................169 5.1.2. MsMGet()......................................................................................................................................................171

5.2. Captura de mltiplas informaes (Multi-Lines)..........................................................................1735.2.1. MsGetDB()....................................................................................................................................................175 5.2.2. MsGetDados()...............................................................................................................................................180 5.2.3. MsNewGetDados().......................................................................................................................................184 5.2.3.1. Definindo cores personalizadas para o objeto MsNewGetDados()......................................................189

5.3. Barras de botes..............................................................................................................................1945.3.1. EnchoiceBar()...............................................................................................................................................194 5.3.2. TBar()............................................................................................................................................................196 5.3.3. ButtonBar......................................................................................................................................................197 5.3.4. Imagens pr-definidas para as barras de botes............................................................................................200 6. Outras aplicaes da interface visual do ADVPL......................................................................................................201

6.1. MaWndBrowse().............................................................................................................................2016.1.1. Enchoice para Arquivos Temporrios...........................................................................................................204

6.2. DbTree()...........................................................................................................................................214 6.3. MsSelect().........................................................................................................................................2197. Introduo relatrios grficos.................................................................................................................................222

7.1. TReport()..........................................................................................................................................2227.1.1. Introduo.....................................................................................................................................................222 Finalidade......................................................................................................................................................222 Descrio.......................................................................................................................................................223 Pr-Requisitos...............................................................................................................................................223 7.1.2. Impresso do relatrio personalizvel...........................................................................................................224 7.1.2.1. Parmetros de impresso.......................................................................................................................224 Impresso ......................................................................................................................................................224-4ADVPL Avanado

Arquivo .........................................................................................................................................................224 Spool..............................................................................................................................................................225 E-mail............................................................................................................................................................225 Papel..............................................................................................................................................................226 Tamanho do papel.........................................................................................................................................226 Formato da impresso...................................................................................................................................226 Configuraes................................................................................................................................................226 Ttulo.............................................................................................................................................................226 Ordem............................................................................................................................................................226 Layout............................................................................................................................................................226 Preview..........................................................................................................................................................226 Executar em segundo plano...........................................................................................................................227 7.1.3. Personalizao...............................................................................................................................................227 7.1.3.1. Editando o layout do relatrio...............................................................................................................227 Nova estrutura do relatrio TReport:............................................................................................................228 7.1.4. Definindo a Funo ReportDef() .................................................................................................................228 DEFINE REPORT........................................................................................................................................229 DEFINE SECTION.......................................................................................................................................229 DEFINE CELL..............................................................................................................................................229 MDULO 08: Aplicaes ADVPL para o ERP............................................................................................................230 8. Protheus e o TOPCONNECT / TOTVS DbAccess.....................................................................................................230

8.1. Caractersticas tcnicas com o uso do TOTVS DbAccess............................................................231Comportamento de Queries Colunas Calculadas.......................................................................................231 Comportamento diferenciado com Bandos de Dados PostGres....................................................................233 Conceito de ndices Permanentes e Diferenas das RDDs...........................................................................234 Funcionamento Interno..................................................................................................................................234 Quebra de Compatibilidade com CodeBase/DBF.........................................................................................235 Lista dos cdigos de erro do TOPConnect / DbAccess.................................................................................236

8.2. Funes ADVPL para TOPCONNECT / TOTVS DbAccess.......................................................237Lista das funes de interao com a aplicao TopConnect / DbAccess:...................................................237 Lista das funes acessrias utilizadas nos fontes como facilitadoras:.........................................................237 Funes de interao com o TopConnect / DbAccess..................................................................................238 TCCANOPEN ()...........................................................................................................................................238 TCCONTYPE().............................................................................................................................................238 TCDELFILE()...............................................................................................................................................239 .......................................................................................................................................................................239 TCGENQRY()...............................................................................................................................................240 TCGETDB()..................................................................................................................................................240 TCLINK()......................................................................................................................................................241 TCQUERY().................................................................................................................................................244 TCQUIT()......................................................................................................................................................245 TCSETCONN().............................................................................................................................................245 TCSETFIELD().............................................................................................................................................246 TCSPEXEC()................................................................................................................................................248 TCSPEXIST()...............................................................................................................................................250 TCSQLERROR()..........................................................................................................................................250 TCSQLEXEC().............................................................................................................................................251 TCSRVTYPE().............................................................................................................................................251 TCUNLINK()................................................................................................................................................252 TCCHKOBJ()................................................................................................................................................253 TCEXEERROR()..........................................................................................................................................253 TCPGMEXE()...............................................................................................................................................254 TCSYSEXE()................................................................................................................................................254 Funes acessrias para uso em fontes com interao com o TOTVS DbAccess........................................255 CHANGEQUERY()......................................................................................................................................255-5ADVPL Avanado

RETFULLNAME().......................................................................................................................................256 RETSQLCOND()..........................................................................................................................................257 RETSQLNAME().........................................................................................................................................257 RETSQLTABLE()........................................................................................................................................258 SQLCOPY()..................................................................................................................................................258 SQLORDER()...............................................................................................................................................259 SQLTOTRB()................................................................................................................................................260

8.3. Aplicaes com controle de comunio com o Banco de Dados...................................................2618.3.1. MaWndBrowse com Alias Temporrio gerado por Query...........................................................................261 Exemplo: MaWndBrowse com Alias Temporrio gerado por Query...........................................................262 8.3.2. Banco de dados de interface..........................................................................................................................274 Consideraes relevantes sobre as funes TCLink() e TCSetConn().........................................................274 Consideraes complementares sobre o conceito de Banco de Dados de Interface.....................................276

8.4. Embedded SQL Facilitador de Querys......................................................................................277Disponibilidade do Recurso..........................................................................................................................277 Caractersticas operacionais - Sintaxe...........................................................................................................278 Limitao: .....................................................................................................................................................278 Erros de Compilao ....................................................................................................................................279 Erros de Execuo.........................................................................................................................................279 Caractersticas operacionais - depurao .....................................................................................................280 Funo auxiliar - GETLastQuery()...............................................................................................................280 9. Funcionalidade MsExecAuto.....................................................................................................................................282 Sobre a MsExecAuto e Rotinas Automticas................................................................................................282 Quando utilizar a funcionalidade MsExecAuto ?..........................................................................................283 Processos da aplicao ERP com tratamentos para execuo por MsExecAuto..........................................283 Quando no utilizar a funcionalidade MsExecAuto......................................................................................284

9.1. Desenvolvendo aplicaes com MsExecAuto................................................................................285Estrutura de uma rotina com execuo de MsExecAuto...............................................................................285 Variveis de controle.....................................................................................................................................285 Montagem dos arrays de parmetros.............................................................................................................285 Definio dos parmetros especficos da rotina que ser executada.............................................................289 Controle de transao....................................................................................................................................290 Tratamento de mensagens de erro.................................................................................................................292 Aplicao completa de importao utilizando MsExecAuto: Carga de imobilizado ...................................295 10. Recursos de envio de e-mail......................................................................................................................................308 Funes para manipulao de e-mails...........................................................................................................308 Detalhamento das funes de manipulao de e-mails.................................................................................308 CALLPROC()...............................................................................................................................................308 MAILSMTPON()..........................................................................................................................................309 MAILPOPON().............................................................................................................................................309 MAILSMTPOFF()........................................................................................................................................311 MAILPOPOFF()...........................................................................................................................................311 MAILRECEIVE().........................................................................................................................................312 MAILAUTH()...............................................................................................................................................313 POPMSGCOUNT().......................................................................................................................................314 MAILSEND()................................................................................................................................................314 MAILGETERR()...........................................................................................................................................315 Exemplos de utilizao das funcionalidades de envio e recebimento de e-mail...........................................315 Envio de mensagens utilizando sintaxe clssica...........................................................................................315 Envio de mensagens utilizando funes........................................................................................................318 Recebimento de mensagens utilizando funes............................................................................................321 11. Integrao bsica com MsOffice..............................................................................................................................323

11.1. Exportao para EXCEL.............................................................................................................323DLGTOEXCEL()..........................................................................................................................................323 Exemplo de exportao para o Microsoft Excel utilizando a funo DlgToExcel().....................................324-6ADVPL Avanado

APNDICES..................................................................................................................................................................327

Relao de imagens para aplicaes visuais........................................................................................327LISTAS DE EXERCCIOS............................................................................................................................................335

Projeto: Avaliao prtica do treinamento de ADVPL Avanado....................................................340REFERNCIAS BIBLIOGRFICAS..........................................................................................................................341 GUIA DE REFERNCIA RPIDA: Funes e Comandos ADVPL..........................................................................343

Converso entre tipos de dados............................................................................................................343CTOD().........................................................................................................................................................343 CVALTOCHAR().........................................................................................................................................343 DTOC().........................................................................................................................................................344 DTOS()..........................................................................................................................................................344 STOD()..........................................................................................................................................................344 STR().............................................................................................................................................................345 STRZERO()...................................................................................................................................................345 VAL()............................................................................................................................................................346

Matemticas...........................................................................................................................................347ACOS() ........................................................................................................................................................347 CEILING()....................................................................................................................................................347 COS().............................................................................................................................................................347 LOG10()........................................................................................................................................................348 SIN()..............................................................................................................................................................348 SQRT()..........................................................................................................................................................349 TAN()............................................................................................................................................................349

Anlise de variveis...............................................................................................................................350TYPE()..........................................................................................................................................................350 VALTYPE()..................................................................................................................................................350

Manipulao de arrays..........................................................................................................................351AADD().........................................................................................................................................................351 ACLONE()....................................................................................................................................................352 ACOPY().......................................................................................................................................................352 ADEL()..........................................................................................................................................................353 ADIR()...........................................................................................................................................................354 AFILL() .......................................................................................................................................................355 AINS()...........................................................................................................................................................355 ARRAY()......................................................................................................................................................356 ASCAN().......................................................................................................................................................356 ASCANX() ..................................................................................................................................................357 ASIZE().........................................................................................................................................................358 ASORT().......................................................................................................................................................359 ATAIL()........................................................................................................................................................360

Manipulao de blocos de cdigo ........................................................................................................361EVAL()..........................................................................................................................................................361 DBEVAL()....................................................................................................................................................361 AEVAL().......................................................................................................................................................363

Manipulao de strings.........................................................................................................................364ALLTRIM()...................................................................................................................................................364 ASC().............................................................................................................................................................364 AT()...............................................................................................................................................................365 BITON() ......................................................................................................................................................366 CAPITAL()...................................................................................................................................................366 CHR()............................................................................................................................................................366 DESCEND() ................................................................................................................................................367-7ADVPL Avanado

GETDTOVAL() ..........................................................................................................................................367 ISALPHA() .................................................................................................................................................368 ISDIGIT() ....................................................................................................................................................368 ISLOWER() .................................................................................................................................................369 ISUPPER() ..................................................................................................................................................369 LEN().............................................................................................................................................................369 LOWER()......................................................................................................................................................370 LTRIM() ......................................................................................................................................................370 MATHC() ....................................................................................................................................................371 OEMTOANSI() ...........................................................................................................................................371 PADL() / PADR() / PADC().........................................................................................................................372 RAT()............................................................................................................................................................372 REPLICATE() .............................................................................................................................................373 RETASC() ...................................................................................................................................................373 RTRIM() ......................................................................................................................................................374 SPACE() ......................................................................................................................................................374 STRTOKARR() ...........................................................................................................................................375 STRTRAN() ................................................................................................................................................375 STUFF()........................................................................................................................................................376 SUBSTR().....................................................................................................................................................376 TRANSFORM() ..........................................................................................................................................377 UPPER()........................................................................................................................................................377

Manipulao de data / hora..................................................................................................................378CDOW() ......................................................................................................................................................378 CMONTH() .................................................................................................................................................378 DATE() ........................................................................................................................................................379 DAY() ..........................................................................................................................................................379 DOW() .........................................................................................................................................................380 DTOC() .......................................................................................................................................................380 DTOS() ........................................................................................................................................................381 ELAPTIME() ...............................................................................................................................................381 MONTH() ....................................................................................................................................................382 SECONDS() ................................................................................................................................................382 TIME() .........................................................................................................................................................383 YEAR() .......................................................................................................................................................383

Manipulao de variveis numricas...................................................................................................384ABS().............................................................................................................................................................384 ALEATORIO().............................................................................................................................................384 INT()..............................................................................................................................................................385 NOROUND()................................................................................................................................................385 RANDOMIZE()............................................................................................................................................386 ROUND()......................................................................................................................................................386

Manipulao de arquivos .....................................................................................................................387ADIR()...........................................................................................................................................................387 CGETFILE() ...............................................................................................................................................389 CPYS2T()......................................................................................................................................................395 CPYT2S()......................................................................................................................................................395 CURDIR() ...................................................................................................................................................396 DIRECTORY() ...........................................................................................................................................397 DIRREMOVE().............................................................................................................................................398 DISKSPACE()...............................................................................................................................................399 EXISTDIR()..................................................................................................................................................400 FCLOSE().....................................................................................................................................................400 FCREATE() .................................................................................................................................................401 FERASE() ...................................................................................................................................................402 FILE() ..........................................................................................................................................................402 FILENOEXT()..............................................................................................................................................403-8ADVPL Avanado

FOPEN()........................................................................................................................................................404 FREAD().......................................................................................................................................................406 FREADSTR ()...............................................................................................................................................406 FRENAME().................................................................................................................................................407 FSEEK()........................................................................................................................................................408 FT_FEOF()....................................................................................................................................................408 FT_FGOTO()................................................................................................................................................409 FT_FGOTOP()..............................................................................................................................................409 FT_FLASTREC()..........................................................................................................................................409 FT_FREADLN()...........................................................................................................................................410 FT_FRECNO()..............................................................................................................................................411 FT_FSKIP()...................................................................................................................................................411 FT_FUSE()....................................................................................................................................................411 FWRITE().....................................................................................................................................................412 MSCOPYFILE()...........................................................................................................................................414 MSCOPYTO()...............................................................................................................................................415 MSCREATE()...............................................................................................................................................415 MSERASE()..................................................................................................................................................416 MSRENAME()..............................................................................................................................................417 RETFILENAME().........................................................................................................................................417

Manipulao de arquivos e ndices temporrios ................................................................................418CRIATRAB()................................................................................................................................................418

Manipulao de bases de dados ...........................................................................................................419ALIAS().........................................................................................................................................................419 BOF() / EOF() .............................................................................................................................................419 COPY()..........................................................................................................................................................420 COPY STRUCTURE() ................................................................................................................................423 DBAPPEND()...............................................................................................................................................423 DBCLEARALLFILTER() ..........................................................................................................................424 DBCLEARFILTER()....................................................................................................................................425 DBCLEARINDEX().....................................................................................................................................425 DBCLOSEALL()..........................................................................................................................................426 DBCLOSEAREA().......................................................................................................................................426 DBCOMMIT()..............................................................................................................................................427 DBCOMMITALL().......................................................................................................................................427 DBCREATE()...............................................................................................................................................428 DBCREATEINDEX()...................................................................................................................................429 DBDELETE()................................................................................................................................................430 DBF().............................................................................................................................................................431 DBFIELDINFO()..........................................................................................................................................431 DBFILTER().................................................................................................................................................432 DBGOTO()....................................................................................................................................................433 DBGOTOP().................................................................................................................................................433 DBGOBOTTON().........................................................................................................................................434 DBINFO().....................................................................................................................................................434 DBNICKINDEXKEY()................................................................................................................................435 DBORDERINFO()........................................................................................................................................437 DBORDERNICKNAME()............................................................................................................................438 DBPACK()....................................................................................................................................................438 DBRECALL()...............................................................................................................................................438 DBRECORDINFO().....................................................................................................................................439 DBREINDEX().............................................................................................................................................440 DBRLOCK().................................................................................................................................................441 DBRLOCKLIST().........................................................................................................................................441 DBRUNLOCK()...........................................................................................................................................442 DBSETDRIVER().........................................................................................................................................442 DBSETINDEX()...........................................................................................................................................443 DBSETNICKNAME()..................................................................................................................................444-9ADVPL Avanado

DBSELECTAREA() ....................................................................................................................................444 DBSETORDER()..........................................................................................................................................445 DBSEEK() E MSSEEK()..............................................................................................................................446 DBSKIP()......................................................................................................................................................447 DBSETFILTER()..........................................................................................................................................448 DBSTRUCT()...............................................................................................................................................449 DBUNLOCK()..............................................................................................................................................449 DBUNLOCKALL()......................................................................................................................................450 DBUSEAREA()............................................................................................................................................450 DELETED()..................................................................................................................................................451 FCOUNT()....................................................................................................................................................451 FOUND().......................................................................................................................................................452 INDEXKEY()................................................................................................................................................452 INDEXORD()...............................................................................................................................................453 LUPDATE()..................................................................................................................................................453 MSAPPEND()...............................................................................................................................................454 MSUNLOCK()..............................................................................................................................................454 ORDBAGEXT()............................................................................................................................................455 ORDKEY()....................................................................................................................................................455 RECLOCK()..................................................................................................................................................456 RECNO().......................................................................................................................................................457 SELECT()......................................................................................................................................................457 SET FILTER TO...........................................................................................................................................458 SOFTLOCK()................................................................................................................................................459 USED()..........................................................................................................................................................460 ZAP...............................................................................................................................................................460

Controle de numerao seqencial......................................................................................................461GETSXENUM()............................................................................................................................................461 CONFIRMSXE()...........................................................................................................................................461 ROLLBACKSXE().......................................................................................................................................461

Validao ...............................................................................................................................................462ALLWAYSFALSE().....................................................................................................................................462 ALLWAYSTRUE()......................................................................................................................................462 EXISTCHAV()..............................................................................................................................................462 EXISTCPO().................................................................................................................................................463 LETTERORNUM().......................................................................................................................................463 NAOVAZIO()...............................................................................................................................................463 NEGATIVO()................................................................................................................................................463 PERTENCE()................................................................................................................................................464 POSITIVO()..................................................................................................................................................464 TEXTO().......................................................................................................................................................464 VAZIO()........................................................................................................................................................464

Manipulao de parmetros do sistema..............................................................................................465GETMV()......................................................................................................................................................465 GETNEWPAR()............................................................................................................................................465 PUTMV()......................................................................................................................................................466 SUPERGETMV()..........................................................................................................................................466

Controle de impresso...........................................................................................................................467AVALIMP()..................................................................................................................................................467 CABEC().......................................................................................................................................................468 IMPCADAST().............................................................................................................................................471 MS_FLUSH()................................................................................................................................................471 OURSPOOL()...............................................................................................................................................473 RODA().........................................................................................................................................................474 SETDEFAULT()...........................................................................................................................................476 SETPRC()......................................................................................................................................................477- 10 ADVPL Avanado

SETPRINT()..................................................................................................................................................477

Controle de processamentos.................................................................................................................479ABREEXCL()...............................................................................................................................................479 CLOSEOPEN().............................................................................................................................................479 CLOSESFILE().............................................................................................................................................479 CHKFILE()...................................................................................................................................................480 CONOUT()....................................................................................................................................................481 CRIAVAR()..................................................................................................................................................481 DISARMTRANSACTION().........................................................................................................................482 EXECBLOCK()............................................................................................................................................483 EXISTBLOCK()...........................................................................................................................................483 ERRORBLOCK() ........................................................................................................................................484 FINAL().........................................................................................................................................................486 FINDFUNCTION() .....................................................................................................................................486 FUNDESC()..................................................................................................................................................487 FUNNAME().................................................................................................................................................487 GETAREA()..................................................................................................................................................487 GETCOUNTRYLIST().................................................................................................................................488 ISINCALLSTACK().....................................................................................................................................488 REGTOMEMORY().....................................................................................................................................489 RESTAREA()................................................................................................................................................490 USEREXCEPTION()....................................................................................................................................490

Utilizao de recursos do ambiente ERP.............................................................................................492AJUSTASX1()..............................................................................................................................................492 ALLUSERS()................................................................................................................................................494 ALLGROUPS().............................................................................................................................................496 CGC()............................................................................................................................................................496 CONPAD1()..................................................................................................................................................497 DATAVALIDA()..........................................................................................................................................498 EXISTINI()...................................................................................................................................................498 EXTENSO()..................................................................................................................................................499 FORMULA().................................................................................................................................................499 GETADVFVAL().........................................................................................................................................499 HELP()..........................................................................................................................................................500 MESEXTENSO()..........................................................................................................................................501 OBRIGATORIO().........................................................................................................................................501 OPENFILE().................................................................................................................................................504 PERGUNTE()...............................................................................................................................................505 PESQPICT()..................................................................................................................................................505 PESQPICTQT().............................................................................................................................................506 POSICIONE()...............................................................................................................................................506 PUTSX1()......................................................................................................................................................507 RETINDEX()................................................................................................................................................508 SIXDESCRICAO().......................................................................................................................................508 TABELA().....................................................................................................................................................509 TAMSX3()....................................................................................................................................................509 TM()..............................................................................................................................................................510 X1DEF01()....................................................................................................................................................511 X1PERGUNT().............................................................................................................................................512 X2NOME()....................................................................................................................................................512 X3CBOX()....................................................................................................................................................513 X3DESCRIC()...............................................................................................................................................513 X3PICTURE()...............................................................................................................................................514 X3TITULO().................................................................................................................................................515 X3USO().......................................................................................................................................................515 X5DESCRI().................................................................................................................................................516 X6CONTEUD()............................................................................................................................................517 X6DESCRIC()...............................................................................................................................................518- 11 ADVPL Avanado

XADESCRIC()..............................................................................................................................................519 XBDESCRI().................................................................................................................................................519 XFILIAL().....................................................................................................................................................520

Interfaces de cadastro...........................................................................................................................521AXCADASTRO().........................................................................................................................................521 AXPESQUI().................................................................................................................................................523 AXVISUAL()................................................................................................................................................523 AXINCLUI().................................................................................................................................................524 AXALTERA()...............................................................................................................................................525 AXDELETA()...............................................................................................................................................525 BRWLEGENDA()........................................................................................................................................526 ENDFILBRW().............................................................................................................................................526 FILBROWSE()..............................................................................................................................................528 PESQBRW().................................................................................................................................................528 MARKBROW()............................................................................................................................................529 MBROWSE()................................................................................................................................................533 MODELO2().................................................................................................................................................541 MODELO3().................................................................................................................................................544

Interfaces visuais para aplicaes........................................................................................................547ALERT().......................................................................................................................................................547 AVISO()........................................................................................................................................................548 FORMBACTH()...........................................................................................................................................548 MSGFUNCTIONS().....................................................................................................................................549

Recursos das interfaces visuais.............................................................................................................550GDFIELDGET()...........................................................................................................................................550 GDFIELDPOS()............................................................................................................................................550 GDFIELDPUT()............................................................................................................................................550 GETMARK().................................................................................................................................................551 ISMARK().....................................................................................................................................................552 MARKBREFRESH()....................................................................................................................................552 READVAR() ...............................................................................................................................................553 THISINV()....................................................................................................................................................553 THISMARK()...............................................................................................................................................553

- 12 ADVPL Avanado

- 13 ADVPL Avanado

OBJETIVOS DO CURSOObjetivos especficos do curso:Ao final do curso o treinando dever ter desenvolvido os seguintes conceitos, habilidades e atitudes: a) Conceitos a serem aprendidos estruturas para implementao aplicaes orientadas a objetos introduo as tcnicas de programao de desenvolvimento de relatrios grficos introduo aos conceitos de ADVPL ASP e WebServices

b) Habilidades e tcnicas a serem aprendidas desenvolvimento de aplicaes voltadas ao ERP Protheus anlise de fontes de mdia complexidade desenvolvimento de com orientao a objetos

c) Atitudes a serem desenvolvidas adquirir conhecimentos atravs da anlise dos funcionalidades disponveis no ERP Protheus; estudar a implementao de fontes com estruturas orientadas a objetos em ADVPL; embasar a realizao de outros cursos relativos a linguagem ADVPL

- 14 ADVPL Avanado

MDULO 05: Introduo orientao objetos1. Conceitos de orientao objetosO termo orientao a objetos pressupe uma organizao de software em termos de coleo de objetos discretos incorporando estrutura e comportamento prprios. Esta abordagem de organizao essencialmente diferente do desenvolvimento tradicional de software, onde estruturas de dados e rotinas so desenvolvidas de forma apenas fracamente acopladas. Neste tpico sero os conceitos de programao orientada a objetos listados abaixo. Esta breve viso geral do paradigma permitir entender melhor os conceitos associados programao orientada a objetos e, em particular, s construes implementadas atravs da linguagem ADVPL. Objetos Herana Atributos Mtodos Classes Abstrao Generalizao Encapsulamento Polimorfismo

1.1.Objeto

Definies

Um objeto uma entidade do mundo real que tem uma identidade. Objetos podem representar entidades concretas (um arquivo no meu computador, uma bicicleta) ou entidades conceituais (uma estratgia de jogo, uma poltica de escalonamento em um sistema operacional). Cada objeto ter sua identidade significa que dois objetos so distintos mesmo que eles apresentem exatamente as mesmas caractersticas. Embora objetos tenham existncia prpria no mundo real, em termos de linguagem de programao um objeto necessita um mecanismo de identificao. Esta identificao de objeto deve ser nica, uniforme e independente do contedo do objeto. Este um dos mecanismos que permite a criao de colees de objetos, as quais so tambm objetos em si. A estrutura de um objeto representada em termos de atributos. O comportamento de um objeto representado pelo conjunto de operaes que podem ser executadas sobre o objeto.

- 15 ADVPL Avanado

Classe Objetos com a mesma estrutura e o mesmo comportamento so agrupados em classes. Uma classe uma abstrao que descreve propriedades importantes para uma aplicao e simplesmente ignora o resto. Cada classe descreve um conjunto (possivelmente infinito) de objetos individuais. Cada objeto dito ser uma instncia de uma classe. Assim, cada instncia de uma classe tem seus prprios valores para cada atributo, mas dividem os nomes dos atributos e mtodos com as outras instncias da classe. Implicitamente, cada objeto contm uma referncia para sua prpria classe, em outras palavras, ele sabe o que ele .

Figura: Representao de uma classe de objetos

Figura: Representao de um objeto instanciado de uma classe- 16 ADVPL Avanado

Polimorfismo Polimorfismo significa que a mesma operao pode se comportar de forma diferente em classes diferentes. Por exemplo, a operao move quando aplicada a uma janela de um sistema de interfaces tem um comportamento distinto do que quando aplicada a uma pea de um jogo de xadrez. Um mtodo uma implementao especfica de uma operao para uma certa classe. Polimorfismo tambm implica que uma operao de uma mesma classe pode ser implementada por mais de um mtodo. O usurio no precisa saber quantas implementaes existem para uma operao, ou explicitar qual mtodo deve ser utilizado: a linguagem de programao deve ser capaz de selecionar o mtodo correto a partir do nome da operao, classe do objeto e argumentos para a operao. Desta forma, novas classes podem ser adicionadas sem necessidade de modificao de cdigo j existente, pois cada classe apenas define os seus mtodos e atributos. No mundo real, alguns objetos e classes podem ser descritos como casos especiais, ou especializaes, de outros objetos e classes. Por exemplo, a classe de computadores pessoais com processador da linha 80x86 uma especializao de computadores pessoais, que por sua vez uma especializao de computadores. No desejvel que tudo que j foi descrito para computadores tenha de ser repetido para computadores pessoais ou para computadores pessoais com processador da linha 80x86. Herana Herana o mecanismo do paradigma de orientao a objetos que permite compartilhar atributos e operaes entre classes baseada em um relacionamento hierrquico. Uma classe pode ser definida de forma genrica e depois refinada sucessivamente em termos de subclasses ou classes derivadas. Cada subclasse incorpora, or herda, todas as propriedades de sua superclasse (ou classe base) e adiciona suas propriedades nicas e particulares. As propriedades da classe base no precisam ser repetidas em cada classe derivada. Esta capacidade de fatorar as propriedades comuns de diversas classes em uma superclasse pode reduzir dramaticamente a repetio de cdigo em um projeto ou programa, sendo uma das principais vantagens da abordagem de orientao a objetos.

- 17 ADVPL Avanado

1.2.

Conceitos Bsicos

A abordagem de orientao a objetos favorece a aplicao de diversos conceitos considerados fundamentais para o desenvolvimento de bons programas, tais como abstrao e encapsulamento. Tais conceitos no so exclusivos desta abordagem, mas so suportados de forma melhor no desenvolvimento orientado a objetos do que em outras metodologias. Abstrao Abstrao consiste de focalizar nos aspectos essenciais inerentes a uma entidade e ignorar propriedades acidentais. Em termos de desenvolvimento de sistemas, isto significa concentrar-se no que um objeto e faz antes de se decidir como ele ser implementado. O uso de abstrao preserva a liberdade para tomar decises de desenvolvimento ou de implementao apenas quando h um melhor entendimento do problema a ser resolvido. Muitas linguagens de programao modernas suportam o conceito de abstrao de dados; porm, o uso de abstrao juntamente com polimorfismo e herana, como suportado em orientao a objetos, um mecanismo muito mais poderoso. O uso apropriado de abstrao permite que um mesmo modelo conceitual (orientao a objetos) seja utilizado para todas as fases de desenvolvimento de um sistema, desde sua anlise at sua documentao. Encapsulamento Encapsulamento, tambm referido como esconder informao, consiste em separar os aspectos externos de um objeto, os quais so acessveis a outros objetos, dos detalhes internos de implementao do objeto, os quais permanecem escondidos dos outros objetos. O uso de encapsulamento evita que um programa torne-se to interdependente que uma pequena mudana tenha grandes efeitos colaterais. O uso de encapsulamento permite que a implementao de um objeto possa ser modificada sem afetar as aplicaes que usam este objeto. Motivos para modificar a implementao de um objeto podem ser, por exemplo, melhoria de desempenho, correo de erros e mudana de plataforma de execuo. Assim como abstrao, o conceito de Encapsulamento no exclusivo da abordagem de orientao a objetos. Entretanto, a habilidade de se combinar estrutura de dados e comportamento em uma nica entidade torna a Encapsulamento mais elegante e mais poderosa do que em linguagens convencionais que separam estruturas de dados e comportamento. Compartilhamento Tcnicas de orientao a objetos promovem compartilhamento em diversos nveis distintos. Herana de estrutura de dados e comportamento permite que estruturas comuns sejam compartilhadas entre diversas classes derivadas similares sem redundncia. O compartilhamento de cdigo usando herana uma das grandes vantagens da orientao a objetos. Ainda mais importante que a economia de cdigo a clareza conceitual de reconhecer que operaes diferentes so na verdade a mesma coisa, o que reduz o nmero de casos distintos que devem ser entendidos e analisados.

- 18 ADVPL Avanado

O desenvolvimento orientado a objetos no apenas permite que a informao dentro de um projeto se