Postagem em destaque
- Gerar link
- X
- Outros aplicativos
BlackTDN :: ADVPL & Harbour MiniGui Extended ~ GPEWriter
Muitos são os clientes que utilizam a “suíte OpenOffice” em detrimento da “suíte Office” da Microsoft e, em função disto, não conseguem utilizar alguns recursos do protheus como o programa GPEWord, disponível no módulo de Gestão de Pessoal, para a impressão de documentos (Contrato de Trabalho, Termo de Prorrogação de Contrato de Trabalho, Acordo de Compensação de Horas de Trabalho,Termo de Vale-Transporte, Declaração de Dependentes dentre outros).
Em função disto, e atendendo a uma necessidade pontual, combinei GPEWord e Harbour MiniGui Extended para criar um “mini aplicativo” para permitir a impressão dos documentos WORD, disponibilizados no SIGAGPE, no Writer.
Para que isso seja possível algumas alterações se fazem necessárias:
- Conversão dos documentos do Microsoft Office para OpenOffice;
- Substituição das DOCVariables do WORD por Constantes que serão substituídas por seus respectivos valores (1);
- Criação do programa GPEWriter (baseado no GPEWord);
- Compilação do programa em Harbour MiniGui Extended gpe_word.prg; e
- Criação do diretório C:\gpe_writer
(1) A técnica utilizada no WORD para substituição das DOCVariables deu muito trabalho no OpenOffice e por isso preferi substituir essa técnica por outra.
Tive que utilizar o Harbour MiniGui Extended para “integração” com a suíte OpenOffice porque ADVPL, infelizmente, não suporta OLE e COM de forma nativa. A idéia básica é a seguinte:
Através do GPEWriter será gerado um arquivo CSV com cabeçalho (campos GPE_?) e item (Conteúdo atribuído a cada campo). Esse arquivo será delimitado com “Pipe” |, após a geração do arquivo e utilizando WaitRun o programa compilado no Harbour gpe_writer.exe será executado para instanciar os componentes OLE/COM do OpenOffice, carregará o conteúdo do arquivo gerado pela GPEWriter e fará a busca e substituição das variáveis pelos seus respectivos valores (semelhante ao que faz OLE_SetDocumentVar() e OLE_UpDateFields()) e, logo após, irá efetuar a impressão do documento. Não implementei a parte de salvar o arquivo, então, para este caso, recomendo utilizar uma impressora virtual que gera arquivo PDF.
O código, dividido em duas partes, uma em Harbour e outra em ADVPL poderá ser obtido ao clicar aqui.
Para utilizar o GPEWriter proceda da seguinte forma:
- Baixe o arquivo disponibilizado acima e descompacte em C:\;
- Compile o programa em ADVPL GPEWriter;
- Adicione a chamada ao Menu do SIGAGPE conforme abaixo;
<MenuItem Status="Enable"> |
Obs.: O arquivo gpe_wcontrato.odt, um exemplo de DOC convertido para ODT, será encontrado em c:\gpe_writer e será utilizado como base para teste.
Alguns “ScreenShots”:
Obs.:
- Diferente do GPEWord o GPEWriter poderá ser executado no Linux (bastando, para isso, alguns ajustes e recompilar o código gpe_writer.prg nessa plataforma);
- Caso necessite recompilar e gerar um novo executável para o gpe_writer.prg baixe o Harbour MiniGui Extended clicando aqui
[]s
иαldσ dj
- Gerar link
- X
- Outros aplicativos
Comentários
Postagens mais visitadas
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- X
- Outros aplicativos
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- X
- Outros aplicativos
Depto de Tecnologia Totvs..
ResponderExcluir..um pouco atrás do BTDN.
Tem algumas alterações a serem feitas, como por exemplo: deixar dinâmica a escolha do arquivo de modelo e permitir a escolha de arquivo .ODT além de .DOT e ou .DOC.
ResponderExcluirGran trabalho... é uma lástima que a TOTVS nao profece o Software Libre!
ResponderExcluirÉ uma pena que a TOTVS nao pense em usar Software Libre para seus aplicativos.
ResponderExcluirOlá... ainda hoje tenho problemas porque o Prothues nao e compativel com Office 2013... PUAHH!!! Éste trabalho do usar o OpenOffice trabalha com as ultimas vercoes?
ResponderExcluirVoce tem um exemplo da criacao de um documento con cabelho e itens?
ResponderExcluir