Escolar Documentos
Profissional Documentos
Cultura Documentos
Integracao Protheus X Word
Integracao Protheus X Word
Para efetuar a integrao entre um documento MS Word e o Protheus devemos criar um modelo (.dot) no formato desejado e incluir as devidas variveis. ntes! "or#m ser $til configurarmos o Word de forma a visuali%armos as variveis inclu&das. '. (m )erramentas * +",es selecione a o"o
Para exi-io das variveis! selecionar o cam"o .c/digo de cam"os0. Ser $til tam-#m a seleo do cam"o .indicadores0 "ara a exi-io dos indicadores no caso de utili%ao de ta-elas din1micas! em 2ue sero necessrias a im"lantao de macros.
5igite o nome da varivel 2ue dever ser referenciada no rdma7e. ( selecione o -oto +8.
"/s a incluso de todas as variveis no sistema! insira um indicador na ta-ela "ara iniciarmos o tratamento da macro. Posicione o cursor na ultima coluna da ta-ela e cli2ue em .inserir * indicador...0
:omeie o indicador! com o mesmo nome da macro 2ue ser criada no documento e acionada na rotina Protheus atrav#s da funo O!"#"$ecute%acro&'( e clique no boto Adicionar
;. Para im"ortar uma macro! selecione .)erramentas * Macro * (ditor do 6isual <asic0 "ara acionar o editor e a im"orte atrav#s do menu . r2uivo * Im"ortar0! em seguida selecione o ar2uivo (.-as) e cli2ue no -oto a-rir. (conforme demonstrado nas "r/ximas 9 imagens.
=.
"/s esta a im"ortao da macro! cli2ue no -oto salvar! feche o editor e salve o modelo do documento (.dot)
,tatic Function .ord%m1() 'ocal wc!rcam, wc$ata, wc6liente, wc5ro'inha 'ocal wa6od 9: ;< 'ocal wa$escr 9: ;< 'ocal wa7 ot 9: ;< 'ocal n&u= ot 9: 0 'ocal n> 'ocal c4ath$ot 9: "69?48! @*U,?&4A4$7?$! ?%5 .!8$.$! " 4riBate h.ord 6lose(o$l)) wc5umero wc$ata wc6liente 9: "121212" 9: &ll rim(,tr($aC(d$ata3ase),2))DE F de FD&ll rim(+es*=tenso(d$ata3ase))DF de FDE &ll rim(,tr(0ear(d$ata3ase),#)) 9: "6'%*5 * *, * %5 *(8&6&! .!8$"
Gor n> 9: 1 to 10 a&dd(wa6od,"48"DstrHero(n>,2)) a&dd(wa$escr,"48!$U ! 58! "DstrHero(n>,2)) a&dd(wa7 ot, ransGorm(n>I100,"@* 999,999,999.99")) n&u= ot D: n>I100 ne=t
JJ6onecta ao word h.ord 9: !'*A6reate'ink() !'*A5ewFile(h.ord, c4ath$ot ) JJ+onta)em das BariaBeis do caKecalho !'*A,et$ocument7ar(h.ord, F4rtAnumeroF, wc5umero) !'*A,et$ocument7ar(h.ord, F4rtA$ataF, wc$ata) !'*A,et$ocument7ar(h.ord, F4rtA6lienteF, wc6liente) !'*A,et$ocument7ar(h.ord, F4rtAnroitensF,str('en(wa6od)))
JJBariaBel 1ara identiGicar o numero total de linhas na 1arte BariaBel JJ,era utiliLado na macro do documento 1ara e=ecucao do Gor ne=t
JJ+onta)em das BariaBeis dos itens. 5o documento word estas BariaBeis serao criadas JJdinamicamente da se)uinte Gorma9 JJ1rtAcod1, 1rtAcod2 ... 1rtAcod10 Gor n> 9: 1 to 'en(wa6od) !'*A,et$ocument7ar(h.ord,"4rtA6od"D&ll rim(,tr(n>)),wa6odMn>N) !'*A,et$ocument7ar(h.ord,"4rtA$escr"D&ll rim(,tr(n>)),wa$escrMn>N) !'*A,et$ocument7ar(h.ord,"4rtA7 ot"D&ll rim(,tr(n>)),wa7 otMn>N) ne=t !'*A*=ecute+acro(h.ord,"taKitens") !'*A,et$ocument7ar(h.ord, F1rtAtotorcF, ransGorm(n&u= ot,"@* 999,999,999.99"))
!'*AU1dateFields(h.ord) JJ &tualiLando as BariaBeis do documento do .ord %G +s)0es5o("%m1rime o $ocumento O") !leA4rintFile(h.ord,"&''",,,1) *nd%G %G +s)0es5o("Fecha o .ord e 6orta o 'ink O") !'*A6loseFile( h.ord ) !'*A6lose'ink( h.ord ) *ndiG 8eturn()
F %nsere uma noBa linha na taKela ,election.+oBe8i)ht Unit9:wd6ell F %nsere o cam1o 6odi)o do 4roduto 6am1o : "$!67&8%&3'* 1rtAcod" P rim(,tr(>)) ,election.Fields.&dd 8an)e9:,election.8an)e,
C1e9:wdField*m1tC,
F %nsere o cam1o $escricao do 4roduto ,election.+oBe8i)ht 6am1o : "$!67&8%&3'* 1rtAdescr" P rim(,tr(>)) ,election.Fields.&dd 8an)e9:,election.8an)e, C1e9:wdField*m1tC, F %nsere o cam1o otal ,election.+oBe8i)ht 6am1o : "$!67&8%&3'* 1rtABtot" P rim(,tr(>)) ,election.Fields.&dd 8an)e9:,election.8an)e, C1e9:wdField*m1tC, 5e=t *nd ,uK