Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleÍndice

Índice

Introdução

...

A Integração Office via Progress permite a leitura e geração de documentos, possibilitando a apresentação de relatórios e planilhas ricas em conteúdo e formatação. A estrutura de integração suporta duas plataformas distintas, Microsoft Office e LibreOffice, permitindo assim uma alternativa de utilização solução OpenSource. São várias as possibilidades de criação de documentos, alguns exemplos são:

  • Geração de dados em forma de listagem em planilhas para aplicação de filtros e classificações.
  • Criação de planilhas com tabelas dinâmicas relacionadas a dados exportados.
  • Apresentação de dados via gráfico.
  • Geração de relatórios personalizados com imagens, bordas, preenchimento, etc, através de listagem em planilha.
  • Preenchimento de documentos modelos através de processador de texto (Word / Writer).

Configuração

Por padrão a plataforma utilizada de geração dos documentos Office é o Micrososft Office. Para habilitar a utilização da plataforma LibreOffice é necessário adicionar a seguinte informação no arquivo de configuração do sistema (datasul_framework.properties):

Image Removed

Estrutura da solução

Com o objetivo de permitir alternativas de plataformas Office na geração de documentos, foi criado uma estrutura de classes Progress, chamadas de Wrapper. Tais classes, no momento da leitura ou geração de um documento, identificam a configuração do ambiente, e direcionam a integração através da suíte de aplicativos do Microsoft Office ou LibreOffice. No caso do Microsoft Office, a integração ocorre via OLE Automation, modelo este já utilizado anteriormente nos programas da linha Datasul. Já para a suíte LibreOffice, foi utilizado também a integração via OLE Automation, porém com uma DLL (Data Definition Language) de intermediação, necessária em função de uma limitação técnica apresentada pela linguagem Progress (utilização de array).

 

Image Removed

Diferenças de programação

Em função da nova estrutura adotada (classes Wrapper) existem algumas pequenas mudanças na criação de uma integração com a plataforma Office que devem ser observadas e ajustadas caso necessário:

  1. Na criação do objeto OLE deve ser alterado para atribuir uma instância da classe wrapper (Excel ou Word). A include inicializa a variável passada como parâmetro com base na configuração do arquivo datasul_framework.properties (Office).

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    CREATE "Excel.Application" chExcel.
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    {office/office.i Excel chExcel}
  2. Na definição das variáveis que serão utilizadas na integração devem ser alteradas do tipo COMPONENT-HANDLE para o tipo CLASS apontando para a interface responsável pela implantação da funcionalidade nas classes Wrapper.

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    DEFINE VAR chExcel    AS COM-HANDLE NO-UNDO.
    DEFINE VAR chWorkbook AS COM-HANDLE NO-UNDO.
    DEFINE VAR chRange    AS COM-HANDLE NO-UNDO.
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    DEFINE VAR chExcel    AS office.iface.excel.ExcelWrapper NO-UNDO.
    DEFINE VAR chWorkbook AS office.iface.excel.Workbook     NO-UNDO.
    DEFINE VAR chRange    AS office.iface.excel.Range        NO-UNDO.
  3. Alterar métodos que não passam parâmetros adicionando “?” ou utilizando um método correspondente sem os mesmos, quando existir.

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    chWorkbook:SaveAs(tt-param.arquivo,"56",,,,,,,,,,).
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    chWorkbook:SaveAs(tt-param.arquivo,"56",?,?,?,?,?,?,?,?,?,?). ou chWorkbook:SaveAs(tt-param.arquivo,"56").
  4. Alterar atribuição à métodos por propriedades com extent.

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    chChart:HasAxis({&xlCategory}) = false.
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    chChart:HasAxis({&xlCategory}, false).
  5. Alterar métodos que recebem como parâmetro a propriedade de outro objeto.

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    chWorksheet = chWorkbook:Sheets(chWorkbook:Sheets:COUNT).
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    iWorkSheets = chWorkbook:Sheets:COUNT.
    chWorksheet = chWorkbook:Sheets(iWorkSheets).
  6. Alterar a atribuição da propriedade VALUE, que é CHARACTER, pela correspondente de acordo com o tipo (DATE, INTEGER, DECIMAL ou LOGICAL) em questão.

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    chWorksheet:Range('A1'):Value = da-conversao. /* Variável com o tipo data */
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    chWorksheet:Range('A1'):DateValue = da-conversao. ou chWorksheet:Range('A1'):SetValue(da-conversao).
    Informações

    O método SetValue() recebe qualquer tipo de valor, independente da tipagem, porem não por ser utilizado dentro de um bloco de ASSIGN. Exemplo:

    chWorksheet:Range('A1'):SetValue('Valor da célula'). ou chWorksheet:Range('A1'):SetValue(10000).

             

  7. Alterar os RELEASEs de objetos OLE por DELETEs de objetos ABL, e caso seja a variável principal da API, o Excel, adicionar a chamada ao método "Release", para que o OLE automation na DLL seja liberado. Caso seja feita a verificação com VALID-HANDLE alterar para uma comparação com o valor desconhecido (?).

    Bloco de código
    languageruby
    titleModelo antigo
    linenumberstrue
    IF VALID-HANDLE(chExcel) THEN
       RELEASE OBJECT chExcel NO-ERROR.
    Bloco de código
    languageruby
    titleModelo novo
    linenumberstrue
    IF chExcel <> ? THEN
       DELETE OBJECT chExcel NO-ERROR.

 

Esta funcionalidade está disponível para utilização conforme apresentado no quadro abaixo:

Informações
titleMatriz de Evolução
Versão / ReleaseFuncionalidade
12.1.6Datasul - EMS 2
12.1.6Datasul - EMS 5
12.1.7Datasul - HCM
12.1.9GOTO Excel (Ctrl-Alt-E)
12.1.10Configuração para utilizar a suíte Office instalada (LibreOffice ou Microsoft) de acordo com parametrização (CD0101)
12.1.13Utilização automática da suíte Office instalada (LibreOffice ou Microsoft) de acordo com associação à extensão de arquivo no Sistema Operacional.
Informações
titleOffice 365

As versões do Office 365 que disponibilizam os recursos on-line/Web não estão homologadas para o uso do produto. Para o funcionamento é necessário a instalação do suite office 365 no desktop.

Informações
titleVersão do Office

A versão Office 2010 e suas anteriores não possuem mais suporte, no entanto elas continuarão a funcionar, mas sem garantia de compatibilidade com o produto.

Para saber a versão do Office que utiliza, acessa a documentação.

Instalação LibreOffice

...

Caso se opte pela solução OpenSource LibreOffice é necessário efetuar a instalação da ferramenta em cada estação de trabalho (para acesso local) ou no servidor (em caso de acesso remoto).

A instalação do LibreOffice poderá ser obtida através do seguinte endereço: https://www.libreoffice.org/download/libreoffice-fresh/

Aviso

Sempre utilize as versões estáveis liberadas do LibreOffice. Versões em desenvolvimento ou candidatas poderão conter inconsistências, impactando diretamente na geração dos documentos.

Configuração de performance

...

Dica

Para a melhor performance da solução, é recomendável a configuração do ambiente ou o parâmetro Progress -q ou adicionar a pasta do foundation "fnd/interfac/DLLOffice" como primeira entrada no Propath. Para maiores detalhes acesse http://knowledgebase.progress.com/articles/Article/P12659.

Configuração para versões do Datasul 12.1.13 e posteriores

...

Por padrão, a plataforma utilizada para geração dos documentos Office é o aquela que no sistema operacional estiver associada aos documentos do tipo xls.

Caso o LibreOffice esteja habilitado, ocorrerá a tentativa de geração do documento utilizando o mesmo. Se o LibreOffice não estiver instalado, será utilizado o Microsoft Office.

Dica

Automaticamente o ERP utiliza o Excel ou LibreOffice do sistema operacional local. Portanto o usuário pode optar por Excel ou LibreOffice, de acordo com a existência destes aplicativos na estação de trabalho. 

Nota

A associação de arquivos inclui as extensões ( .xls .xlsx .csv .xml , etc )


Para optar por gerar relatórios em Excel ou LibreOffice, o usuário pode seguir estes passos abaixo:

1 - Clicar com o botão direito sobre o ícone de qualquer arquivo de planilha. Escolher "Propriedades".

Image Added

2 - Clicar em Alterar.

Image Added

3 - Escolher entre utilizar o Excel ou LibreOffice para abrir arquivos do tipo (extensão) selecionado.

Image Added

Pronto, os relatórios serão gerados compatíveis com o programa escolhido.

Adicionalmente o ERP irá abrir o Excel ou LibreOffice de acordo com o programa escolhido.

Configuração para versões do Datasul 12.1.12 e anteriores

...

Por padrão, a plataforma utilizada para geração dos documentos Office é o Micrososft Office. Para habilitar a utilização da plataforma LibreOffice é necessário marcar a opção correspondente na  tela de parâmetros globais (CD0101) - Habilitar LibreOffice?.

Caso o LibreOffice esteja habilitado, ocorrerá a tentativa de geração do documento utilizando o mesmo. Se não estiver instalado, será utilizado o Microsoft Office.

Nota

 A integração com a plataforma OpenSource LibreOffice está disponível apenas para ambientes Microsoft Windows, desta forma, a execução da geração dos documentos deve ocorrer neste sistema operacional.

Aviso

Para versões inferiores a release 12.1.10, é necessário atualizar o ambiente conforme pacote disponível em: https://download.totvs.com/DownloadCentral/DownloadCentral?file=%2FFTPTOTVSDATASUL%2FDATASUL%2FLIBESPECIAL%2F99070%2FTUBIBL%2FPACOTE-LIBREOFFICE-PROPERTIES-CD0101-20160408.ZIP&bro=true

Este pacote prerara o ambiente para suportar a parametrização do LibreOffice com o programa CD0101.


Versões do LibreOffice Homologadas pela TOTVS
  •  LibreOffice 4.4.4
  •  LibreOffice 6.1.6.2
Aviso

Não recomendamos utilizar versões posteriores a 6.1.6.2 da Suite LibreOffice. Já existem situações mapeadas e em estudos quanto ao uso de versões superiores a supra citada com a utilização de formulários no LibreOffice Writer.

Versões do LibreOffice NÃO recomendadasSituação
  •  LibreOffice 6.2
Grande problema de performance nas formatações (Calc) | Falha ao preencher formulários (Writer).
  •  LibreOffice 6.3
Houve a melhora na performance das formatações no Calc, mas, caso utilize Formulários no Writer ainda não estão funcionando corretamente.
  •  LibreOffice 6.4
Versão Entusiasta (Não recomendamos pois podem ocorrer instabilidades).

Diferenças de comportamento (MS Office x LibreOffice)

...

Existem algumas situações, no qual o comportamento da suíte LibreOffice apresenta um comportamento ligeiramente diferente do Microsoft Office devido as características das soluções. Por mais que os fabricantes das soluções tendem a manter as funcionalidades equivalentes e compatíveis, é comum alguns pontos serem diferentes:


  • Abertura da ferramenta LibreOffice a partir de programas Progress: em alguns casos, a janela do documento LibreOffice pode ser apresentada atrás da janela do aplicativo Progress.
  • Espaçamento em modelos construídos no MS Office e utilizados no LibreOffice: ao se utilizar um modelo salvo do MS Word junto ao LibreOffice Writer, poderá ocorrer diferenças de espaçamentos ou alinhamentos. Para ajuste deste caso, é necessário a modificação do modelo via LibreOffice de acordo com a necessidade de espaçamento e alinhamento.
  • Diferença de casas decimais entre modelos do MS Excel e LibreOffice Calc: Para planilhas modelos de cálculos utilizadas no MS Excel, ao se utilizar as mesmas no LibreOffice Calc deverá ser ajustada as casas decimais apresentadas em cada célula que compõem a saída de resultados para o aplicativo Progress. Esta situação fica mais evidente em planilhas modelos utilizadas no módulo de Aplicações e Empréstimos (APL).
  • Geração de gráficos a partir de tabelas dinâmicas: a geração de gráficos a partir de tabelas dinâmicas utilizadas no MS Excel, no qual transforma os resultados dinâmicos em gráficos dinâmicos não está disponível no LibreOffice Calc em função do mesmo não suportar tal geração. 
  • Geração de gráficos e formatação de tabelas: poderão ocorrer diferenças visuais de formatação, tamanho e cores de gráficos e tabelas entre os documentos gerados pelas duas plataformas (MS Office x LibreOffice).

    Dica

    É possível ajustar os modelos de documentos que apresentaram diferenças visuais editando os mesmos diretamente no LibreOffice. Após efetuar os ajustes necessários salve-o com o mesmo nome e extensão para passar a utilizá-lo.



Conversão de modelos (MS Word x LibreOffice Writer)

...

Alguns programas Progress podem utilizar o recurso de modelos do MS Word para geração de documentos. Neste caso, o documento modelo é aberto pelo programa Progress, e o mesmo adiciona dados em campos específicos, gravando no final um novo documento preenchido. Para o correto funcionamento desta opção junto ao LibreOffice Writer, o modelo não poderá estar no formato ".doc", sendo necessária a sua conversão para o formato ".docx", através dos seguintes passos:

Nota
titleImportante

 Para o correto funcionamento do preenchimento de documentos através de modelos, deverá ser feita a conversão dos arquivos ".doc" para ".docx".


  • Abrir o arquivo ".doc" modelo pelo Microsoft Word
  • Sem efetuar alterações, salvar o arquivo com o mesmo nome, porém com a extensão "docx" (Documento do Word *.docx).
  • Adicionar o arquivo convertido na pasta do arquivo modelo original.
  • Indicar para a aplicação Progress utilizar o novomodelo convertido (docx).

...