1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Relatórico com campos dinâmicos

Discussão em 'Progress 4GL' iniciado por Rudy, Junho 20, 2011.

  1. Rudy

    Rudy Membro Participativo

    Aloha pessoas!

    Estou criando um programa para extrair alguns relatórios em .csv, até agora não tive problemas a não ser em determinar os campos que quero no relatório.

    Fiz o seguinte:
    1 - Armazeno em uma tt o nome dos campos que devem ter no relatório
    2 - Com um for each, criu uma string com os valores "tabela.campo1 tabela.campo2 tabela.campo3 tabela.campo4" etc...
    3 - Tento passar a string no for each que cria o relatórios desta forma:
    Código:
    OUTPUT TO C:\testeteste.csv NO-CONVERT.
        FOR EACH <tabela>:
            EXPORT DELIMITER ";"
                <string com os campos>
            SKIP.
        END.
    OUTPUT CLOSE.
    
    Mas ele esta interpretando a string como string e não como nome dos campos e acaba imprimindo varias linhas assim por exemplo:
    "tabela.campo1 tabela.campo2 tabela.campo3 tabela.campo4"

    Alguém sabe como posso fazer para reconhecer o valor da string como campos de minha tabela.
  2. rhemati

    rhemati Membro Participativo

    Re: Relatórico com campos dinâmicos

    Rudy, boa noite.

    A única forma que você pode fazer do seu jeito é usando pré-processadores. Segue em anexo dois arquivos: um .p e uma include .i, para gerar o que você quer.

    Favor conectar a base sports2000 para testar.

    Qualquer dúvida ou esclarecimentos estou a disposição.

    Arquivos Anexados:

  3. MFerreira

    MFerreira Membro Participativo

    Re: Relatórico com campos dinâmicos

    Amigo, não sei se entendi bem o seu problema!

    Mas pelo que vi, você não precisa exportar dentro de uma string (""), basta exportar os campos que você quer: tabela.campo-1 tabela.campo2.

    Porque você precisa da string, não entendi!!
  4. Rudy

    Rudy Membro Participativo

    Re: Relatórico com campos dinâmicos

    Preciso da string por que o relatório é dinâmico, o usuário decide quais campos ele quer que tenha no relatório. Pego os campos selecionados e passo para um tt e depois com for each crio uma string com os campos.
  5. Rudy

    Rudy Membro Participativo

    Re: Relatórico com campos dinâmicos

    rhemati, obrigado pela ajuda, seu exemplo funciona perfeitamentamente, mas quando passo a string por uma váriavel do tipo char, ele me retorna o nome dos campos e não com o valor dos campos.

    Alterei o exemplo que você me passou e deixei desta forma:
    Código:
    /*PROGRAMA PARA TESTE*/
    DEFINE VARIABLE c-campos AS CHARACTER  NO-UNDO.
    
    ASSIGN c-campos = "customer.custnum~ customer.name~ customer.address".
    
    {include\preprocessador.i c-campos } /*desta forma não funciona*/
    
    /*desta forma funciona*/
    /* {include\preprocessador.i "customer.custnum~ customer.name~ customer.address" } */
    
    /*PREPROCESSADOR*/
    &scoped-define p-campos {1}
    
    OUTPUT TO C:\testeteste.csv NO-CONVERT.
        FOR EACH customer:
            EXPORT DELIMITER ";"
                {&p-campos}
             SKIP.
        END.
    
    OUTPUT CLOSE.
    
  6. Rudy

    Rudy Membro Participativo

    Re: Relatórico com campos dinâmicos

    Alguém ai pode me dar uma ajuda, ou dizer se é possível fazer isso?

Compartilhe esta Página