Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - TOTVS Backoffice Linha Protheus - ADVPL - Generic integração com o word e copias de arquivos

time.pngTempo aproximado para leitura: 00:04:00 min

Dúvida
A documentação do TDN não esta legível sobre as funções de integração Office: GENERIC - INTEGRACAO COM O WORD E COPIAS DE ARQUIV

Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL– A partir da versão 11.80

Solução
Segue conteúdo formatado:
O Word só abre/cria Documentos em um local físico, isto e, tem que ter acesso ao diretório/drive, não pode ser via Server do Protheus, do Client o Word não abre diretamente no Server a não ser que esteja mapeado e o Client esteja com acesso de gravação.
Para que o Client possa visualizar/atualizar algum documento devera ser copiado do Server para o Client os arquivos necessários para a realização das tarefas e de acordo com a necessidade/objetivo poderá ser retornado para Server através das funções CPYS2T() E CPYT2S(). Em alguns casos onde sera feita apenas a leitura poderá ser utilizado o WordViewer mencionado em outro item do Banco de Conhecimento.
É aconselhável que as versões do Office instaladas nas maquinas Client e Server serem iguais para evitar problemas futuros, como por exemplo, a criação de um documento no Officer2000 e a leitura feita por um Client que tenha o Officer 97. Outro ponto importante e que a instalação do Windows e Office devera ser feita do zero (formatar HD), não instalar versões de upgrade, experiencia obtida em vários clientes.
Exemplo de copia do Server para o Client:

CPYS2T("\DOCS\EXEMPLO.DOC","C:\WINDOWS\TEMP",.T.)
1o. Parâmetro e o nome do arquivo a ser copiado para o Client
2o. Parâmetro e o diretório do Client e/ou local físico onde sera copiado o arquivo.
3o. Parâmetro se deseja compactar o arquivo (recomendável).

CPYT2S("C:\WINDOWS\TEMP","\DOCS\EXEMPLO.DOC",.T.)
Exemplo de copia do Client para o Server:
1o. Parâmetro e o nome do arquivo a ser copiado para o Server
2o. Parâmetro e o diretório do Server
3o. Parâmetro se deseja compactar o arquivo (recomendável).

Observação: Os Arquivos que poderão ser copiados deverão estar necessariamente embaixo do RootPath, isto e, o diretório DOCS do exemplo acima devera ser subdiretório do diretório colocado no RootPath, apenas um exemplo existe outras maneiras de direcionar o diretório. 

Funções do Word:
oWord:=OLE_CreateLink("TMSOLEWORD97")
-Função que abre o Link com o Word tendo como parâmetro a versão (Office 95 ou Office 97)

OLE_SetProperty(oWord, OLEWDVISIBLE, .T. )
OLE_SetProperty(oWord, OLEWDPRINTBACK,.T. )
-Função que faz o Word aparecer na Área de Transferência do Windows, sendo que para habilitar/desabilitar e só colocar .T. ou .F.

OLE_SetProperty(oWord,OLEWDLEFT ,000)
OLE_SetProperty(oWord,OLEWDTOP ,090)
OLE_SetProperty(oWord,OLEWDWIDTH ,480)
OLE_SetProperty(oWord,OLEWDHEIGHT,250)
-Funções que configuram o tamanho da janela do Word

OLE_OPENFILE(oWord,"C:\WINDOWS\TEMP\EXEMPLO.DOC",lReadOnly,"SENHAXXX","SENHAWWW")
-Função de abertura do Documento com os parâmetros lReadOnly (Somente Leitura), com SENHAXXX (senha de abertura do Documento) e com SENHAWWW (senha de gravação).

OLE_NewFile(oWord,"C:\WINDOWS\TEMP\EXEMPLO.DOT")
-Função para criar um Documento com Modelo(DOT) especificado no parâmetro.

OLE_SaveAsFile(oWord,"C:\WINDOWS\TEMP\EXEMPLO1.DOC","SENHAXXX","SENHAWWW",.F.)
-Função que salva o Documento com o nome especificado, com senha e no formato Word.

OLE_SaveFile(oWord)
-Função salva o Documento corrente.

OLE_SetDocumentVar(oWord,"Adv_NomeFilial", "Microsiga Software S/A")
-Função que atualiza as variáveis do Word, conforme exemplo ira atualizar a variável "AdvNomeFilial" com o conteúdo "Microsiga Software S/A". O RdMake GPEWORD poderá servir de exemplo para atualização de variáveis.

OLE_Updatefields(oWord)
-Função que atualiza os campos da memoria para o Documento, utilizada logo apos a função OLE_SetDocumentVar().

OLE_PrintFile(oWord,"ALL",nPagInicial,nPagFinal,nCopias)
-Função que imprime o Documento corrente podendo ser especificado o numero de copias, podendo também imprimir com um intervalo especificado nos parâmetros "nPagInicial" ate "nPagFinal" retirando o parâmetro "ALL".

OLE_CloseFile(oWord)
-Função que fecha o Documento sem fechar o Link com o Word, utilizado para manipulação de dois ou mais arquivos (recomendado fechar todos os arquivos antes de fechar o Link com Word)

OLE_CloseLink(oWord)
-Função que fecha o Link com o Word.

Esse artigo foi útil?
Usuários que acharam isso útil: 3 de 3

2 Comentários

  • Avatar
    Lucas Normilio

    Nessa parte aqui OLE_SaveAsFile, não há como salvar em PDF ? Tentei adicionar no final .pdf mas ele não cria o arquivo PDF!

    1
    Ações de comentário Permalink
  • Avatar
    DANIEL CICERO GONDRAN

    Utilize OLE_SaveAsFile(oWord, cNewFile,,,, '17') onde cNewFile é o nome do arquivo. O parâmetro '17' faz com que seja salvo em PDF.

    0
    Ações de comentário Permalink
Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _