Gerar um arquivo .doc com informações de uma tabela?

Discussão em 'Progress 4GL' iniciado por syclone, Junho 29, 2009.

  1. syclone

    syclone Sem Pontuação

    Já tentei fazer mas o máximo que consegui foi colocar os registros um do lado do outro.

    Ex (no word ficou assim):

    Registro1Registro2Registro3...

    Quero fazer um bem bonitinho um embaixo do outro com negrito no label (tanto como "down" ou "side-labels"). Quem puder me dar um modelo..
  2. marcao

    marcao Sem Pontuação

    Se você tem algum vínculo com a DataSul lá vai uma idéia:

    Existe uma API chamada utapi012 que carregando a mesma com as informações necessárias você consegue gerar em um documento Word os dados. Para isto você precisará criar um modelo com FORMS, onde estes serão substituídos pelos valores.
    Segue exemplo de utilização da API:
    Código:
    {utp/utapi012.i}              
    run utp/utapi012.p persistent set h-2.                                                  
    SYSTEM-DIALOG PRINTER-SETUP.  /*seleciona impressora*/
    os-delete value("c:\tmp\documento.doc"). 
    
    create tt-configuracao2.       
    assign tt-configuracao2.versao-integracao = 1
           tt-configuracao2.arquivo = "c:\tmp\documento.doc" /*arquivo que será gerado*/
           tt-configuracao2.modelo  = "c:\tmp\documento-padrao.dot" /*arquivo que contem o formulário*/
           tt-configuracao2.senha-modelo = ""
           tt-configuracao2.exibir-construcao = no
           tt-configuracao2.abrir-word-termino = no
           tt-configuracao2.imprimir = yes. /*imprime o documento*/
    
    create tt-dados.
    assign tt-dados.campo-nome = "Nome"
           tt-dados.campo-tipo = 3
           tt-dados.campo-valor = "Texto com o Nome".         
    create tt-dados.
    assign tt-dados.campo-nome = "Endereco"
           tt-dados.campo-tipo = 3
           tt-dados.campo-valor = "Texto com o Endereço".         
    create tt-dados.
    assign tt-dados.campo-nome = "telefone"
           tt-dados.campo-tipo = 3
           tt-dados.campo-valor = "XX XXXX XXXX".         
    
    run pi-execute in h-2 (input-output table tt-configuracao2,
                      input-output table tt-dados,
                      input-output table tt-erros).
    
    if return-value = "NOK" then do: 
        for each tt-erros: 
            disp tt-erros with 1 col width 500. 
        end.
    end.                  
    Delete procedure h-2. 
    
    Espero que ajude.
  3. valdir_fantin

    valdir_fantin Membro Participativo

    Pessoal estou tentando fazer relatório saida em Word, utilizei o mesmo codigo acima e apresenta o seguinte erro:

    upload_2015-6-2_10-9-8.png
    Alguem sabe como resolver ?
    Grato
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    a imagem não subiu, manda de novo
  5. valdir_fantin

    valdir_fantin Membro Participativo

  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Vamos as perguntas bestas, esse trecho de programa já vem de algum outro trecho que usa a tt-dados ????
    Porque essa mensagem diz que vc está tentando colocar valor para um campo que não existe no documento, pra isso acontecer é porque a sua tt-dados está com informações anteriores, já tentou fazer um empty temp-table tt-dados antes de iniciar os creates ?????
    Verificar se no seu documento o nome dos campos estão corretos em relação ao programa.

Compartilhe esta Página